/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140097e70 FUN_140097e70 * Pseudocode, not original source. */ void FUN_140097e70(longlong param_1,undefined4 *param_2,SIZE_T param_3,undefined8 param_4) { undefined8 uVar1; undefined8 *puVar2; undefined4 local_128 [2]; longlong local_120; longlong local_118; int local_10c; undefined4 local_100 [58]; if (*(longlong *)(param_1 + 0x3e0) != 0) { FUN_1400bca00(local_128); FUN_140094eb0(local_100,param_2,param_3,param_4); uVar1 = *(undefined8 *)(param_1 + 0x468); if (*(longlong **)(param_1 + 0x458) == (longlong *)0x0) { puVar2 = (undefined8 *)FUN_14006cbf0(0x128); } else { param_2 = (undefined4 *)0x128; puVar2 = (undefined8 *)(**(code **)(**(longlong **)(param_1 + 0x458) + 8))(); } if (puVar2 != (undefined8 *)0x0) { *(undefined4 *)(puVar2 + 2) = 0; FUN_1400bca30((undefined4 *)(puVar2 + 3),local_128); param_2 = local_100; FUN_140094eb0((undefined4 *)(puVar2 + 8),param_2,param_3,param_4); } puVar2[1] = uVar1; *puVar2 = 0; *(longlong *)(param_1 + 0x470) = *(longlong *)(param_1 + 0x470) + 1; if (*(undefined8 **)(param_1 + 0x468) == (undefined8 *)0x0) { *(undefined8 **)(param_1 + 0x460) = puVar2; } else { **(undefined8 **)(param_1 + 0x468) = puVar2; } *(undefined8 **)(param_1 + 0x468) = puVar2; FUN_1400933c0((longlong)local_100,param_2,param_3,param_4); FUN_1400d1800(&local_120); if ((local_118 != 0) && (local_10c < 0)) { /* WARNING: Subroutine does not return */ FUN_14006be00(); } FUN_1400dec90(*(longlong *)(param_1 + 0x3e0) + 0x160,param_1 + 0x78,param_3,param_4); } return; }