server-re/decomp/MessageServer_Release_x64/full/functions/0x14006d3c0.c

52 lines
1.6 KiB
C

/* 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;
}