/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400d9010 FUN_1400d9010 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ longlong * FUN_1400d9010(longlong param_1,longlong *param_2,ulonglong param_3,undefined8 param_4) { undefined *puVar1; int *piVar2; undefined *puVar3; undefined8 *puVar4; longlong *plVar5; int *piVar6; ulonglong uVar7; longlong lVar8; char *pcVar9; LPCWSTR pWVar10; char *pcVar11; ulonglong uVar12; undefined8 uVar13; undefined1 auStack_128 [32]; undefined *local_108; undefined4 local_100; int *local_f8; undefined1 local_f0; longlong *local_e8; undefined8 local_e0; undefined8 local_d8 [2]; undefined8 local_c8 [2]; char *local_b8; char local_b0 [136]; ulonglong local_28; local_e0 = 0xfffffffffffffffe; local_28 = DAT_1401ac5a0 ^ (ulonglong)auStack_128; lVar8 = 0; local_100 = 0; if (*(longlong **)(param_1 + 0x150) != (longlong *)0x0) { lVar8 = **(longlong **)(param_1 + 0x150); } uVar12 = param_3; local_e8 = param_2; puVar4 = FUN_140071560(lVar8,local_d8); FUN_140070a20(param_2,(longlong)puVar4,uVar12,param_4); local_100 = 1; puVar4 = FUN_140071560(*(longlong *)(*(longlong *)(param_3 + 0x748) + 0x110),local_c8); plVar5 = FUN_140070930((longlong)puVar4,(longlong *)&local_108,uVar12,param_4); pcVar9 = (char *)*plVar5; if ((char *)*plVar5 == (char *)0x0) { pcVar9 = PTR_DAT_1401ac008; } plVar5 = param_2; FUN_140070c50(param_2,pcVar9); puVar3 = local_108; if (((local_108 != (undefined *)0x0) && (local_108 != PTR_DAT_1401ac008)) && (puVar1 = local_108 + -8, puVar1 != (undefined *)0x0)) { piVar6 = (int *)FUN_14006cb70(plVar5,pcVar9,uVar12,param_4); local_f8 = piVar6; FUN_14006b350(piVar6); local_f0 = 1; piVar2 = (int *)(puVar3 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14006cc60(puVar1); } FUN_14006b3e0((longlong)piVar6); } pcVar9 = *(char **)(*(longlong *)(param_1 + 0x148) + 0x218); if (pcVar9 == (char *)0x0) { pcVar9 = PTR_DAT_1401ac008; } FUN_140070c50(param_2,pcVar9); pcVar9 = *(char **)(*(longlong *)(param_1 + 0x148) + 0x210); if (pcVar9 == (char *)0x0) { pcVar9 = PTR_DAT_1401ac008; } FUN_140070c50(param_2,pcVar9); uVar7 = FUN_140071070(param_2,pcVar9,uVar12,param_4); if ((char)uVar7 == '\0') { plVar5 = FUN_140070c90((longlong *)&local_108,pcVar9,uVar12,param_4); pWVar10 = (LPCWSTR)*plVar5; if ((LPCWSTR)*plVar5 == (LPCWSTR)0x0) { pWVar10 = (LPCWSTR)PTR_DAT_1401ac010; } local_b8 = local_b0; uVar13 = 3; FUN_14006b570((longlong *)&local_b8,pWVar10,3); pcVar11 = local_b8; FUN_14006b850(param_2,local_b8); pcVar9 = local_b8; if (local_b8 != local_b0) { free(local_b8); } if (((local_108 != (undefined *)0x0) && (local_108 != PTR_DAT_1401ac010)) && (local_108 + -8 != (undefined *)0x0)) { piVar6 = (int *)FUN_14006cb70(pcVar9,pcVar11,uVar13,param_4); local_f8 = piVar6; FUN_14006b350(piVar6); local_f0 = 1; piVar2 = (int *)(local_108 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14006cc60(local_108 + -8); } FUN_14006b3e0((longlong)piVar6); } } return param_2; }