/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140074ec0 FUN_140074ec0 * Pseudocode, not original source. */ longlong * FUN_140074ec0(longlong *param_1,undefined **param_2,ulonglong param_3,undefined8 param_4) { undefined *puVar1; int *piVar2; int iVar3; longlong lVar4; int *piVar5; undefined *puVar6; undefined **ppuVar7; ulonglong uVar8; uint uVar9; undefined *local_res18; undefined *local_res20; ulonglong uVar10; uVar8 = 0; local_res18 = (undefined *)((ulonglong)local_res18 & 0xffffffff00000000); ppuVar7 = param_2; lVar4 = Ordinal_52(); if ((lVar4 == 0) || (ppuVar7 = *(undefined ***)(lVar4 + 0x18), *ppuVar7 == (undefined *)0x0)) { FUN_14006cb70(param_2,ppuVar7,param_3,param_4); *param_1 = (longlong)PTR_DAT_1401ac008; iVar3 = FUN_14006ca90(&DAT_14015bf08); puVar6 = FUN_140053f20(param_1,iVar3); FUN_14006cac0(puVar6,&DAT_14015bf08,iVar3); FUN_140054010(param_1); } else { FUN_14006cb70(param_2,ppuVar7,param_3,param_4); local_res20 = PTR_DAT_1401ac008; uVar10 = uVar8; if (0 < *(short *)(lVar4 + 0x12)) { do { FUN_14006cb70(param_2,ppuVar7,param_3,param_4); local_res18 = PTR_DAT_1401ac008; if (0 < (longlong)uVar8) { FUN_140070060((longlong *)&local_res20,"."); } param_3 = (ulonglong)*(byte *)(**(longlong **)(lVar4 + 0x18) + uVar8); FUN_14006e800((longlong *)&local_res18,"%u",param_3,param_4); ppuVar7 = &local_res18; param_2 = &local_res20; FUN_14006e670((longlong *)param_2,(longlong *)ppuVar7); puVar6 = local_res18; if (((local_res18 != (undefined *)0x0) && (local_res18 != PTR_DAT_1401ac008)) && (puVar1 = local_res18 + -8, puVar1 != (undefined *)0x0)) { param_2 = (undefined **)FUN_14006cb70(param_2,ppuVar7,param_3,param_4); FUN_14006b350((int *)param_2); piVar2 = (int *)(puVar6 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14006cc60(puVar1); } FUN_14006b3e0((longlong)param_2); } uVar9 = (int)uVar10 + 1; uVar10 = (ulonglong)uVar9; uVar8 = uVar8 + 1; } while ((int)uVar9 < (int)*(short *)(lVar4 + 0x12)); } puVar1 = local_res20; FUN_14006cb70(param_2,ppuVar7,param_3,param_4); puVar6 = PTR_DAT_1401ac008; *param_1 = (longlong)PTR_DAT_1401ac008; if (puVar6 == (undefined *)0x0) { *param_1 = (longlong)PTR_DAT_1401ac008; } if (puVar1 != (undefined *)*param_1) { param_2 = (undefined **)FUN_14006cb70(param_2,ppuVar7,param_3,param_4); FUN_14006b350((int *)param_2); FUN_140008440(param_1); *param_1 = (longlong)puVar1; if (((puVar1 != PTR_DAT_1401ac008) && (puVar1 != (undefined *)0x0)) && (puVar1 != (undefined *)0x8)) { *(int *)(puVar1 + -4) = *(int *)(puVar1 + -4) + 1; } FUN_14006b3e0((longlong)param_2); } if (((puVar1 != (undefined *)0x0) && (puVar1 != PTR_DAT_1401ac008)) && (puVar1 + -8 != (undefined *)0x0)) { piVar5 = (int *)FUN_14006cb70(param_2,ppuVar7,param_3,param_4); FUN_14006b350(piVar5); piVar2 = (int *)(puVar1 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14006cc60(puVar1 + -8); } FUN_14006b3e0((longlong)piVar5); } } return param_1; }