50 lines
1.5 KiB
C
50 lines
1.5 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x14006d570 FUN_14006d570
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 *
|
|
FUN_14006d570(undefined8 *param_1,ulonglong param_2,longlong *param_3,undefined8 param_4)
|
|
|
|
{
|
|
undefined8 *puVar1;
|
|
void *pvVar2;
|
|
ulonglong uVar3;
|
|
longlong lVar4;
|
|
longlong *plVar5;
|
|
exception local_a0 [72];
|
|
exception local_58 [80];
|
|
|
|
uVar3 = param_2;
|
|
plVar5 = param_3;
|
|
FUN_14006cbd0(param_1);
|
|
*param_1 = Proud::CFastHeapImpl::vftable;
|
|
puVar1 = param_1 + 9;
|
|
FUN_14006fb50(puVar1);
|
|
FUN_14006d4a0(puVar1,uVar3,plVar5,param_4);
|
|
if (param_2 < 0x80) {
|
|
FUN_14006ba50(local_a0,L"bad AccelBlockSizeLimit value",plVar5,param_4);
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(local_a0,(ThrowInfo *)&DAT_1401a93e8);
|
|
}
|
|
if (param_1[9] == 0) {
|
|
puVar1 = FUN_14006d4a0(puVar1,uVar3,plVar5,param_4);
|
|
param_1[9] = *puVar1;
|
|
}
|
|
param_1[0xc] = param_2;
|
|
pvVar2 = malloc(0x400);
|
|
param_1[0xd] = pvVar2;
|
|
if (pvVar2 == (void *)0x0) {
|
|
FUN_14006ba50(local_58,L"Cannot allocate FastHeap buckets! FATAL!",plVar5,param_4);
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(local_58,(ThrowInfo *)&DAT_1401a93e8);
|
|
}
|
|
lVar4 = 0;
|
|
do {
|
|
puVar1 = FUN_14006fac0(param_3,uVar3,plVar5,param_4);
|
|
*(undefined8 **)(lVar4 + param_1[0xd]) = puVar1;
|
|
lVar4 = lVar4 + 8;
|
|
} while (lVar4 < 0x400);
|
|
*(undefined4 *)(param_1 + 8) = 2;
|
|
return param_1;
|
|
}
|
|
|