/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14003f1c0 FUN_14003f1c0 * Pseudocode, not original source. */ undefined8 * FUN_14003f1c0(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_14003e820(param_1); *param_1 = Proud::CFastHeapImpl::vftable; puVar1 = param_1 + 9; FUN_1400417c0(puVar1); FUN_14003f0f0(puVar1,uVar3,plVar5,param_4); if (param_2 < 0x80) { FUN_14003db10(local_a0,L"bad AccelBlockSizeLimit value",plVar5,param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_a0,(ThrowInfo *)&DAT_14016c210); } if (param_1[9] == 0) { puVar1 = FUN_14003f0f0(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_14003db10(local_58,L"Cannot allocate FastHeap buckets! FATAL!",plVar5,param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210); } lVar4 = 0; do { puVar1 = FUN_140041730(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; }