52 lines
1.6 KiB
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;
|
|
}
|
|
|