/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400ae950 FUN_1400ae950 * Pseudocode, not original source. */ undefined8 FUN_1400ae950(longlong param_1,undefined8 param_2,undefined8 param_3,uint *param_4,longlong param_5, longlong param_6) { int *piVar1; longlong *plVar2; undefined8 *puVar3; undefined8 *puVar4; undefined8 uVar5; undefined8 *puVar6; undefined8 *puVar7; longlong *local_res8; piVar1 = (int *)(**(code **)(**(longlong **)(param_1 + 0x20) + 0x58))(); FUN_14006b350(piVar1); plVar2 = FUN_1400aca90(*(longlong **)(param_1 + 0x20),(longlong *)&local_res8,*param_4); puVar7 = (undefined8 *)0x0; puVar6 = puVar7; if ((undefined8 *)*plVar2 != (undefined8 *)0x0) { puVar6 = *(undefined8 **)*plVar2; } if ((local_res8 != (longlong *)0x0) && (local_res8[1] = local_res8[1] + -1, local_res8[1] == 0)) { puVar4 = (undefined8 *)*local_res8; if (puVar4 != (undefined8 *)0x0) { (**(code **)*puVar4)(puVar4,1); } FUN_14006cc60(local_res8); } if ((((puVar6 != (undefined8 *)0x0) && (*(char *)((longlong)puVar6 + 0x684) == '\0')) && ((longlong *)puVar6[5] != (longlong *)0x0)) && (*(longlong *)puVar6[5] != 0)) { *(undefined4 *)(puVar6 + 0xaf) = *(undefined4 *)(param_6 + 8); *(undefined2 *)((longlong)puVar6 + 0x57c) = *(undefined2 *)(param_6 + 0xc); *(undefined4 *)(puVar6 + 0xb1) = *(undefined4 *)(param_5 + 8); *(undefined2 *)((longlong)puVar6 + 0x58c) = *(undefined2 *)(param_5 + 0xc); plVar2 = (longlong *)puVar6[5]; puVar4 = puVar7; if (plVar2 != (longlong *)0x0) { puVar4 = (undefined8 *)*plVar2; } if (puVar4[2] != 0) { puVar4 = puVar7; if (plVar2 != (longlong *)0x0) { puVar4 = (undefined8 *)*plVar2; } if (*(int *)(puVar4[2] + 8) == 1) goto LAB_1400aeaf1; } puVar4 = puVar7; if (plVar2 != (longlong *)0x0) { puVar4 = (undefined8 *)*plVar2; } puVar3 = (undefined8 *)puVar4[2]; if (puVar3 != (undefined8 *)0x0) { (**(code **)*puVar3)(puVar3,1); } puVar4[2] = 0; puVar3 = operator_new(0x38); puVar4 = puVar7; if (puVar3 != (undefined8 *)0x0) { puVar4 = FUN_1400a0860(puVar3); } *(undefined2 *)((longlong)puVar4 + 0x34) = *(undefined2 *)(param_6 + 0xc); if ((undefined8 *)puVar6[5] != (undefined8 *)0x0) { puVar7 = *(undefined8 **)puVar6[5]; } puVar7[2] = puVar4; } LAB_1400aeaf1: uVar5 = FUN_14006b3e0((longlong)piVar1); return CONCAT71((int7)((ulonglong)uVar5 >> 8),1); }