/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14006d3c0 FUN_14006d3c0 * Pseudocode, not original source. */ undefined8 * FUN_14006d3c0(undefined1 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { uint uVar1; undefined8 *puVar2; HANDLE pvVar3; undefined *puVar4; undefined **ppuVar5; wchar_t *pwVar6; ulonglong uVar7; undefined4 local_res8 [2]; undefined *local_res10; puVar2 = operator_new(0x18); if (puVar2 == (undefined8 *)0x0) { puVar2 = (undefined8 *)0x0; } else { *puVar2 = Proud::CMemoryHeapImpl::vftable; } pwVar6 = (wchar_t *)0x0; uVar7 = 0; ppuVar5 = (undefined **)0x4; pvVar3 = HeapCreate(4,0,0); puVar2[1] = pvVar3; if (pvVar3 == (HANDLE)0x0) { FUN_14006cb70(ppuVar5,pwVar6,uVar7,param_4); local_res10 = PTR_DAT_1401ac010; uVar1 = FUN_14006c9f0(L"FATAL: HeapCreate failed!"); puVar4 = FUN_140002f30((longlong *)&local_res10,uVar1); pwVar6 = L"FATAL: HeapCreate failed!"; uVar7 = (ulonglong)uVar1; FUN_14006ca20(puVar4,L"FATAL: HeapCreate failed!",uVar1); FUN_140003010((longlong *)&local_res10); ppuVar5 = &local_res10; FUN_14006fa80((longlong *)ppuVar5,pwVar6,uVar7,param_4); } local_res8[0] = 2; puVar4 = FUN_14006c230(ppuVar5,pwVar6,uVar7,param_4); if (*(longlong *)(puVar4 + 8) != 0) { puVar4 = FUN_14006c230(ppuVar5,pwVar6,uVar7,param_4); (**(code **)(puVar4 + 8))(puVar2[1],0,local_res8,4); } *(undefined1 *)(puVar2 + 2) = param_1; return puVar2; }