add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
102
decomp/AgentManager_Release_x64/full/functions/0x14003ed40.c
Normal file
102
decomp/AgentManager_Release_x64/full/functions/0x14003ed40.c
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x14003ed40 FUN_14003ed40
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
short * FUN_14003ed40(longlong *param_1,longlong param_2,ulonglong param_3,undefined8 param_4)
|
||||
|
||||
{
|
||||
undefined1 auVar1 [16];
|
||||
undefined1 auVar2 [16];
|
||||
ulonglong uVar3;
|
||||
ulonglong uVar4;
|
||||
longlong *plVar5;
|
||||
short *psVar6;
|
||||
short *psVar7;
|
||||
longlong lVar8;
|
||||
ulonglong uVar9;
|
||||
longlong *plVar10;
|
||||
ulonglong uVar11;
|
||||
exception local_68 [80];
|
||||
|
||||
if ((int)param_1[8] != 2) {
|
||||
FUN_14003e110(L"CFastHeapImpl::Realloc() is called after the allocator is already disposed!");
|
||||
return (short *)0x0;
|
||||
}
|
||||
if (param_3 == 0) {
|
||||
(**(code **)(*param_1 + 0x18))();
|
||||
return (short *)0x0;
|
||||
}
|
||||
if ((param_2 == 0) || (psVar6 = (short *)(param_2 + -0x10), *psVar6 != 0x71a)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
uVar9 = (ulonglong)param_1[0xc] >> 7;
|
||||
uVar11 = ((param_3 - 1) / uVar9 + 1) * uVar9;
|
||||
if (*(longlong *)(param_2 + -8) == 0) {
|
||||
LAB_14003ee08:
|
||||
plVar10 = (longlong *)0x0;
|
||||
}
|
||||
else {
|
||||
uVar3 = *(longlong *)(param_2 + -8) - 1;
|
||||
auVar1._8_8_ = 0;
|
||||
auVar1._0_8_ = uVar9;
|
||||
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 % uVar9,param_3,param_4);
|
||||
}
|
||||
if (0x7f < uVar4) goto LAB_14003ee08;
|
||||
plVar10 = *(longlong **)(param_1[0xd] + (longlong)SUB164(auVar2 / auVar1,0) * 8);
|
||||
}
|
||||
plVar5 = (longlong *)FUN_14003ebf0((longlong)param_1,uVar11,param_3,param_4);
|
||||
if (plVar10 == (longlong *)0x0) {
|
||||
if (plVar5 == (longlong *)0x0) {
|
||||
psVar6 = (short *)(**(code **)(*(longlong *)param_1[9] + 8))
|
||||
((longlong *)param_1[9],psVar6,param_3 + 0x10);
|
||||
*(ulonglong *)(psVar6 + 4) = uVar11;
|
||||
goto LAB_14003ef1d;
|
||||
}
|
||||
psVar7 = (short *)(**(code **)(*plVar5 + 8))(plVar5,uVar11 + 0x10);
|
||||
uVar9 = uVar11;
|
||||
if (*(ulonglong *)(param_2 + -8) < uVar11) {
|
||||
uVar9 = *(ulonglong *)(param_2 + -8);
|
||||
}
|
||||
FUN_140006fb0((undefined8 *)psVar7,(undefined8 *)psVar6,uVar9 + 0x10);
|
||||
*(ulonglong *)(psVar7 + 4) = uVar11;
|
||||
plVar10 = (longlong *)param_1[9];
|
||||
lVar8 = *plVar10;
|
||||
}
|
||||
else {
|
||||
if (plVar5 == (longlong *)0x0) {
|
||||
psVar7 = (short *)(*(code *)**(undefined8 **)param_1[9])
|
||||
((undefined8 *)param_1[9],param_3 + 0x10);
|
||||
if (psVar7 == (short *)0x0) {
|
||||
FUN_14003db10(local_68,L"CRT malloc returned NULL at %s!",L"Proud::CFastHeapImpl::Realloc",
|
||||
param_4);
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_68,(ThrowInfo *)&DAT_14016c210);
|
||||
}
|
||||
if (*(ulonglong *)(param_2 + -8) < param_3) {
|
||||
param_3 = *(ulonglong *)(param_2 + -8);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (plVar10 == plVar5) goto LAB_14003ef1d;
|
||||
psVar7 = (short *)(**(code **)(*plVar5 + 8))(plVar5,uVar11 + 0x10);
|
||||
param_3 = uVar11;
|
||||
if (*(ulonglong *)(param_2 + -8) < uVar11) {
|
||||
param_3 = *(ulonglong *)(param_2 + -8);
|
||||
}
|
||||
}
|
||||
FUN_140006fb0((undefined8 *)psVar7,(undefined8 *)psVar6,param_3 + 0x10);
|
||||
*(ulonglong *)(psVar7 + 4) = uVar11;
|
||||
lVar8 = *plVar10;
|
||||
}
|
||||
(**(code **)(lVar8 + 0x10))(plVar10,psVar6);
|
||||
psVar6 = psVar7;
|
||||
LAB_14003ef1d:
|
||||
return psVar6 + 8;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue