/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14006ee00 FUN_14006ee00 * Pseudocode, not original source. */ void FUN_14006ee00(undefined4 *param_1,undefined8 param_2,longlong *param_3,undefined8 param_4) { undefined *puVar1; longlong *plVar2; undefined8 *puVar3; undefined4 uVar4; undefined8 *puVar5; longlong lVar6; undefined8 **ppuVar7; undefined8 uVar8; undefined8 *local_res8; longlong local_res10 [2]; puVar1 = *(undefined **)(param_1 + 2); if (((puVar1 != (undefined *)0x0) && (puVar1 != PTR_DAT_1401ac010)) && (*(int *)(puVar1 + -8) != 0)) { local_res8 = (undefined8 *)FUN_14006cbf0(0x400); if (local_res8 == (undefined8 *)0x0) { puVar5 = (undefined8 *)0x0; } else { param_3 = (longlong *)(param_1 + 6); puVar5 = FUN_1400724c0(local_res8,0,param_3,param_4); } if (puVar5 == (undefined8 *)0x0) { local_res8 = (undefined8 *)0x0; } else { local_res8 = (undefined8 *)FUN_14006cbf0(0x10); local_res8[1] = 1; *local_res8 = puVar5; } puVar5 = local_res8; ppuVar7 = &local_res8; FUN_14006e8a0((longlong *)(param_1 + 4),(longlong *)ppuVar7); puVar3 = local_res8; if (puVar5 != (undefined8 *)0x0) { plVar2 = puVar5 + 1; *plVar2 = *plVar2 + -1; if (*plVar2 == 0) { plVar2 = (longlong *)*local_res8; if (plVar2 != (longlong *)0x0) { FUN_140072370(plVar2,ppuVar7,param_3,param_4); FUN_14006cc60(plVar2); } FUN_14006cc60(puVar3); } } if (*(longlong **)(param_1 + 4) == (longlong *)0x0) { lVar6 = 0; } else { lVar6 = **(longlong **)(param_1 + 4); } uVar4 = FUN_140074040(lVar6,ppuVar7,param_3,param_4); if ((char)uVar4 == '\0') { local_res10[0] = 0; FUN_14006e8a0((longlong *)(param_1 + 4),local_res10); *param_1 = 3; } else { if (*(longlong **)(param_1 + 4) == (longlong *)0x0) { lVar6 = 0; } else { lVar6 = **(longlong **)(param_1 + 4); } uVar8 = 0; FUN_1400717a0(lVar6,'\0'); lVar6 = FUN_14006e930((longlong)param_1,uVar8,param_3,param_4); if ((char)lVar6 == '\0') { local_res10[1] = 0; FUN_14006e8a0((longlong *)(param_1 + 4),local_res10 + 1); *param_1 = 3; } else { *param_1 = 1; } } } return; }