/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400ec540 FUN_1400ec540 * Pseudocode, not original source. */ void FUN_1400ec540(undefined8 param_1,longlong *param_2,longlong *param_3,undefined8 param_4) { longlong *plVar1; char *pcVar2; undefined8 *puVar3; uint uVar4; undefined4 uVar5; undefined8 *puVar6; undefined8 uVar7; undefined8 **ppuVar8; undefined8 *puVar9; undefined8 *local_res10; longlong local_res18 [2]; longlong local_38 [2]; local_38[1] = 0xfffffffffffffffe; local_res10 = (undefined8 *)FUN_14006cbf0(0x400); puVar9 = (undefined8 *)0x0; puVar6 = puVar9; if (local_res10 != (undefined8 *)0x0) { param_3 = param_2; puVar6 = FUN_1400724c0(local_res10,1,param_2,param_4); } if (puVar6 == (undefined8 *)0x0) { local_res10 = (undefined8 *)0x0; } else { local_res10 = (undefined8 *)FUN_14006cbf0(0x10); local_res10[1] = 1; *local_res10 = puVar6; } puVar6 = local_res10; ppuVar8 = &local_res10; FUN_14006e8a0(param_2 + 2,(longlong *)ppuVar8); puVar3 = local_res10; if (puVar6 != (undefined8 *)0x0) { plVar1 = puVar6 + 1; *plVar1 = *plVar1 + -1; if (*plVar1 == 0) { plVar1 = (longlong *)*local_res10; if (plVar1 != (longlong *)0x0) { FUN_140072370(plVar1,ppuVar8,param_3,param_4); FUN_14006cc60(plVar1); } FUN_14006cc60(puVar3); } } puVar6 = puVar9; if ((undefined8 *)param_2[2] != (undefined8 *)0x0) { puVar6 = *(undefined8 **)param_2[2]; } uVar4 = FUN_140073740((longlong)puVar6,'\x01'); if (uVar4 == 0) { pcVar2 = (char *)param_2[1]; if (((pcVar2 == (char *)0x0) || (pcVar2 == PTR_DAT_1401ac008)) || (*(int *)(pcVar2 + -8) < 1)) { puVar6 = puVar9; if ((undefined8 *)param_2[2] != (undefined8 *)0x0) { puVar6 = *(undefined8 **)param_2[2]; } uVar5 = FUN_140074040((longlong)puVar6,pcVar2,param_3,param_4); if ((char)uVar5 == '\0') { local_38[0] = 0; FUN_14006e8a0(param_2 + 2,local_38); *(undefined4 *)(param_2 + 3) = 3; return; } } else { puVar6 = puVar9; if ((undefined8 *)param_2[2] != (undefined8 *)0x0) { puVar6 = *(undefined8 **)param_2[2]; } uVar7 = FUN_140073b00((longlong)puVar6,pcVar2,0,param_4); if ((char)uVar7 == '\0') { local_res18[1] = 0; FUN_14006e8a0(param_2 + 2,local_res18 + 1); *(undefined4 *)(param_2 + 3) = 3; return; } } if ((undefined8 *)param_2[2] != (undefined8 *)0x0) { puVar9 = *(undefined8 **)param_2[2]; } FUN_1400717a0((longlong)puVar9,'\0'); FUN_1400ebe10(param_1,(longlong)param_2); } else { local_res18[0] = 0; FUN_14006e8a0(param_2 + 2,local_res18); *(undefined4 *)(param_2 + 3) = 3; } return; }