54 lines
2 KiB
C
54 lines
2 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x14003ef50 FUN_14003ef50
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14003ef50(longlong param_1,longlong param_2,short *param_3)
|
|
|
|
{
|
|
undefined1 auVar1 [16];
|
|
undefined1 auVar2 [16];
|
|
ulonglong uVar3;
|
|
ulonglong uVar4;
|
|
ulonglong uVar5;
|
|
longlong *plVar6;
|
|
exception local_58 [88];
|
|
|
|
if (*(int *)(param_1 + 0x40) != 2) {
|
|
FUN_14003e110(
|
|
L"CFastHeap.Free(): Attempt Free after Heap destruction! Doing Free before WinMain returns in highly recommended. Refer the manual for the resolution."
|
|
);
|
|
return;
|
|
}
|
|
if ((param_2 == 0) || (param_3 = (short *)(param_2 + -0x10), *param_3 != 0x71a)) {
|
|
FUN_14003db10(local_58,
|
|
L"Not CFastHeap-allocated block! Refer to ProudNet help \'ProudNet Technical Note\' for more help."
|
|
,param_3,param_1);
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210);
|
|
}
|
|
*param_3 = 0xb0c;
|
|
if (*(longlong *)(param_2 + -8) != 0) {
|
|
uVar5 = *(ulonglong *)(param_1 + 0x60) >> 7;
|
|
uVar3 = *(longlong *)(param_2 + -8) - 1;
|
|
auVar1._8_8_ = 0;
|
|
auVar1._0_8_ = uVar5;
|
|
auVar2._8_8_ = 0;
|
|
auVar2._0_8_ = uVar3;
|
|
uVar4 = SUB168(auVar2 / auVar1,0);
|
|
if (0xffffffff < uVar4) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14003df20(L"Proud::CFastHeapImpl::GetAllocByGroundSize",uVar3 % uVar5,param_3,param_1);
|
|
}
|
|
if ((uVar4 < 0x80) &&
|
|
(plVar6 = *(longlong **)
|
|
(*(longlong *)(param_1 + 0x68) + (longlong)SUB164(auVar2 / auVar1,0) * 8),
|
|
plVar6 != (longlong *)0x0)) goto LAB_14003efd8;
|
|
}
|
|
plVar6 = *(longlong **)(param_1 + 0x48);
|
|
LAB_14003efd8:
|
|
/* WARNING: Could not recover jumptable at 0x00014003efe2. Too many branches */
|
|
/* WARNING: Treating indirect jump as call */
|
|
(**(code **)(*plVar6 + 0x10))(plVar6,param_3);
|
|
return;
|
|
}
|
|
|