/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140070c90 FUN_140070c90 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ longlong * FUN_140070c90(longlong *param_1,undefined8 param_2,ulonglong param_3,undefined8 param_4) { undefined *puVar1; int *piVar2; LPCSTR pCVar3; int iVar4; longlong lVar5; LPCSTR *ppCVar6; undefined *puVar7; int *piVar8; short **ppsVar9; short *psVar10; undefined **ppuVar11; LPCSTR pCVar12; short *psVar13; uint uVar14; ulonglong uVar15; ulonglong uVar16; undefined8 uVar17; undefined1 auStack_208 [32]; undefined *local_1e8; LPCSTR local_1e0; LPCSTR *local_1d8; undefined1 local_1d0; undefined8 local_1c8; short *local_1b8; short local_1b0 [132]; LPCSTR local_a8 [16]; ulonglong local_28; local_1c8 = 0xfffffffffffffffe; local_28 = DAT_1401ac5a0 ^ (ulonglong)auStack_208; uVar15 = 0; local_1e8 = (undefined *)((ulonglong)local_1e8 & 0xffffffff00000000); ppuVar11 = (undefined **)0x80; ppCVar6 = local_a8; iVar4 = Ordinal_57(); if (iVar4 == 0) { ppCVar6 = local_a8; lVar5 = Ordinal_52(); if ((lVar5 != 0) && (ppCVar6 = *(LPCSTR **)(lVar5 + 0x18), *ppCVar6 != (LPCSTR)0x0)) { FUN_14006cb70(ppCVar6,ppuVar11,param_3,param_4); local_1e0 = PTR_DAT_1401ac008; uVar16 = uVar15; if (0 < *(short *)(lVar5 + 0x12)) { do { FUN_14006cb70(ppCVar6,ppuVar11,param_3,param_4); local_1e8 = PTR_DAT_1401ac008; if (0 < (longlong)uVar16) { FUN_140070060((longlong *)&local_1e0,"."); } param_3 = (ulonglong)*(byte *)(**(longlong **)(lVar5 + 0x18) + uVar16); FUN_14006e800((longlong *)&local_1e8,"%u",param_3,param_4); ppuVar11 = &local_1e8; ppCVar6 = &local_1e0; FUN_14006e670((longlong *)ppCVar6,(longlong *)ppuVar11); puVar7 = local_1e8; if (((local_1e8 != (undefined *)0x0) && (local_1e8 != PTR_DAT_1401ac008)) && (puVar1 = local_1e8 + -8, puVar1 != (undefined *)0x0)) { ppCVar6 = (LPCSTR *)FUN_14006cb70(ppCVar6,ppuVar11,param_3,param_4); local_1d8 = ppCVar6; FUN_14006b350((int *)ppCVar6); local_1d0 = 1; piVar2 = (int *)(puVar7 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14006cc60(puVar1); } FUN_14006b3e0((longlong)ppCVar6); local_1d0 = 0; } uVar14 = (int)uVar15 + 1; uVar15 = (ulonglong)uVar14; uVar16 = uVar16 + 1; } while ((int)uVar14 < (int)*(short *)(lVar5 + 0x12)); } pCVar3 = local_1e0; pCVar12 = local_1e0; if (local_1e0 == (LPCSTR)0x0) { pCVar12 = PTR_DAT_1401ac008; } local_1b8 = local_1b0; uVar17 = 3; ppsVar9 = &local_1b8; FUN_1400626b0((longlong *)ppsVar9,pCVar12,3); psVar13 = local_1b8; FUN_14006cb70(ppsVar9,pCVar12,uVar17,param_4); *param_1 = (longlong)PTR_DAT_1401ac010; uVar14 = FUN_14006c9f0(psVar13); puVar7 = FUN_140002f30(param_1,uVar14); uVar15 = (ulonglong)uVar14; FUN_14006ca20(puVar7,psVar13,uVar14); FUN_140003010(param_1); psVar10 = local_1b8; if (local_1b8 != local_1b0) { free(local_1b8); } if (pCVar3 == (LPCSTR)0x0) { return param_1; } if (pCVar3 == PTR_DAT_1401ac008) { return param_1; } if (pCVar3 + -8 == (LPCSTR)0x0) { return param_1; } piVar8 = (int *)FUN_14006cb70(psVar10,psVar13,uVar15,param_4); local_1d8 = (LPCSTR *)piVar8; FUN_14006b350(piVar8); local_1d0 = 1; piVar2 = (int *)(pCVar3 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14006cc60(pCVar3 + -8); } FUN_14006b3e0((longlong)piVar8); return param_1; } } FUN_14006cb70(ppCVar6,ppuVar11,param_3,param_4); *param_1 = (longlong)PTR_DAT_1401ac010; iVar4 = FUN_14006c9f0(&DAT_14015cd00); puVar7 = FUN_140002f30(param_1,iVar4); FUN_14006ca20(puVar7,&DAT_14015cd00,iVar4); FUN_140003010(param_1); return param_1; }