/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14005ff50 FUN_14005ff50 * Pseudocode, not original source. */ void FUN_14005ff50(longlong param_1,undefined4 *param_2,byte param_3) { longlong *plVar1; undefined8 *puVar2; ulonglong *puVar3; ulonglong *puVar4; ulonglong *local_b0; ulonglong *local_a8; undefined8 local_a0; ulonglong *local_90; ulonglong *local_88; undefined8 local_80; byte local_70 [8]; ulonglong *local_68; ulonglong *local_60; undefined8 local_58; undefined8 local_48; longlong local_40 [3]; longlong local_28 [4]; local_48 = 0xfffffffffffffffe; plVar1 = (longlong *)(param_1 + 0x1a8); if (*(longlong *)(param_1 + 0x1c8) != 0) { for (puVar2 = *(undefined8 **) (*plVar1 + ((ulonglong)param_3 % *(ulonglong *)(param_1 + 0x1b0)) * 8); puVar2 != (undefined8 *)0x0; puVar2 = (undefined8 *)*puVar2) { if (param_3 == *(byte *)(puVar2 + 1)) { if (puVar2 != (undefined8 *)0x0) { FUN_140060ce0(puVar2 + 2,param_2); return; } break; } } } local_90 = (ulonglong *)0x0; local_88 = (ulonglong *)0x0; local_80 = 0; FUN_140060ce0((ulonglong *)&local_90,param_2); FUN_140061c40(&local_b0,(longlong *)&local_90); puVar4 = local_a8; puVar3 = local_b0; local_68 = local_b0; local_60 = local_a8; local_58 = local_a0; local_b0 = (ulonglong *)0x0; local_a8 = (ulonglong *)0x0; local_a0 = 0; local_70[0] = param_3; if (*(longlong *)(param_1 + 0x1c8) == 0) { FUN_140061960(plVar1,local_40,local_70); } else { FUN_140061840(plVar1,local_28,local_70,local_70); } if (puVar3 != (ulonglong *)0x0) { FUN_140061ab0(puVar3,puVar4); operator_delete(puVar3); } puVar3 = local_90; if (local_90 != (ulonglong *)0x0) { FUN_140061ab0(local_90,local_88); operator_delete(puVar3); } return; }