server-re/decomp/DBCServer_Release_x64/full/functions/0x14019b330.c

45 lines
1.3 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14019b330 FUN_14019b330
* Pseudocode, not original source. */
undefined8 * FUN_14019b330(undefined8 *param_1,ulonglong param_2,undefined8 param_3)
{
undefined8 *puVar1;
void *pvVar2;
undefined8 uVar3;
longlong lVar4;
undefined1 local_a0 [72];
undefined1 local_58 [80];
FUN_14016d920();
*param_1 = Proud::CFastHeapImpl::vftable;
FUN_1401b3aa0(param_1 + 9);
FUN_14019b260();
if (param_2 < 0x80) {
FUN_14016d300(local_a0,L"bad AccelBlockSizeLimit value");
/* WARNING: Subroutine does not return */
_CxxThrowException(local_a0,(ThrowInfo *)&DAT_1403417f8);
}
if (param_1[9] == 0) {
puVar1 = (undefined8 *)FUN_14019b260();
param_1[9] = *puVar1;
}
param_1[0xc] = param_2;
pvVar2 = malloc(0x400);
param_1[0xd] = pvVar2;
if (pvVar2 == (void *)0x0) {
FUN_14016d300(local_58,L"Cannot allocate FastHeap buckets! FATAL!");
/* WARNING: Subroutine does not return */
_CxxThrowException(local_58,(ThrowInfo *)&DAT_1403417f8);
}
lVar4 = 0;
do {
uVar3 = FUN_1401b3a10(param_3);
*(undefined8 *)(lVar4 + param_1[0xd]) = uVar3;
lVar4 = lVar4 + 8;
} while (lVar4 < 0x400);
*(undefined4 *)(param_1 + 8) = 2;
return param_1;
}