add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
293
decomp/AgentManager_Release_x64/full/functions/0x1400d4350.c
Normal file
293
decomp/AgentManager_Release_x64/full/functions/0x1400d4350.c
Normal file
|
|
@ -0,0 +1,293 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400d4350 FUN_1400d4350
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
ulonglong FUN_1400d4350(longlong *param_1,uint *param_2,ulonglong param_3,undefined4 *param_4)
|
||||
|
||||
{
|
||||
undefined8 *puVar1;
|
||||
longlong *plVar2;
|
||||
longlong *plVar3;
|
||||
undefined8 uVar4;
|
||||
ulonglong uVar5;
|
||||
longlong *plVar6;
|
||||
longlong *plVar7;
|
||||
longlong *plVar8;
|
||||
uint *puVar9;
|
||||
uint ***pppuVar10;
|
||||
int iVar11;
|
||||
SIZE_T SVar12;
|
||||
undefined4 *puVar13;
|
||||
uint **local_res8;
|
||||
undefined8 local_d8;
|
||||
uint *local_d0;
|
||||
longlong *local_c8;
|
||||
undefined8 local_c0;
|
||||
longlong *local_b8;
|
||||
longlong *local_b0;
|
||||
undefined4 local_a8;
|
||||
undefined4 local_a4;
|
||||
longlong *local_a0;
|
||||
longlong *local_98;
|
||||
undefined8 local_90;
|
||||
exception local_88 [80];
|
||||
|
||||
local_90 = 0xfffffffffffffffe;
|
||||
uVar5 = param_3;
|
||||
puVar13 = param_4;
|
||||
local_b0 = (longlong *)(**(code **)(*param_1 + 0x38))();
|
||||
plVar8 = (longlong *)0x0;
|
||||
local_c0 = 0;
|
||||
local_c8 = (longlong *)0x0;
|
||||
local_d0 = (uint *)0x0;
|
||||
local_b8 = (longlong *)0x0;
|
||||
local_d8 = 0;
|
||||
local_a4 = 0;
|
||||
uVar4 = FUN_140075810(param_2,(uint *)&local_d8,uVar5,puVar13);
|
||||
if ((char)uVar4 == '\0') {
|
||||
if (local_b8 != (longlong *)0x0) {
|
||||
plVar8 = local_b8 + 1;
|
||||
*plVar8 = *plVar8 + -1;
|
||||
if (*plVar8 == 0) {
|
||||
FUN_1400512a0((longlong)&local_b8,local_b8);
|
||||
}
|
||||
}
|
||||
local_res8 = &local_d0;
|
||||
uVar5 = FUN_14008a320((longlong *)&local_d0);
|
||||
if ((local_c8 != (longlong *)0x0) && (local_c0 < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ((uint)local_d8 != 1) {
|
||||
if ((uint)local_d8 == 2) {
|
||||
plVar6 = (longlong *)
|
||||
(**(code **)(*(longlong *)(*(longlong *)(param_1[2] + 0x670) + 0x88) + 0x18))();
|
||||
plVar7 = FUN_14005b3e0((longlong *)&local_a0,plVar6,uVar5,puVar13);
|
||||
plVar3 = local_b0;
|
||||
plVar2 = local_b8;
|
||||
plVar6 = (longlong *)*plVar7;
|
||||
if (plVar6 != (longlong *)0x0) {
|
||||
plVar6[1] = plVar6[1] + 1;
|
||||
plVar8 = plVar6;
|
||||
}
|
||||
if (local_b8 != (longlong *)0x0) {
|
||||
plVar6 = local_b8 + 1;
|
||||
*plVar6 = *plVar6 + -1;
|
||||
if (*plVar6 == 0) {
|
||||
puVar1 = (undefined8 *)*local_b8;
|
||||
*puVar1 = Proud::CFastArray<Proud::CCompressedFrameNumbers::Elem,1>::vftable;
|
||||
if ((LPVOID)puVar1[2] != (LPVOID)0x0) {
|
||||
if ((longlong *)puVar1[1] == (longlong *)0x0) {
|
||||
FUN_14003e8b0((LPVOID)puVar1[2]);
|
||||
}
|
||||
else {
|
||||
(**(code **)(*(longlong *)puVar1[1] + 0x18))();
|
||||
}
|
||||
}
|
||||
(**(code **)(*plVar3 + 0x18))(plVar3,puVar1);
|
||||
(**(code **)(*local_b0 + 0x18))(local_b0,plVar2);
|
||||
}
|
||||
}
|
||||
plVar6 = local_98;
|
||||
local_b0 = (longlong *)plVar7[1];
|
||||
local_b8 = plVar8;
|
||||
if (local_a0 != (longlong *)0x0) {
|
||||
plVar8 = local_a0 + 1;
|
||||
*plVar8 = *plVar8 + -1;
|
||||
if (*plVar8 == 0) {
|
||||
puVar1 = (undefined8 *)*local_a0;
|
||||
*puVar1 = Proud::CFastArray<Proud::CCompressedFrameNumbers::Elem,1>::vftable;
|
||||
if ((LPVOID)puVar1[2] != (LPVOID)0x0) {
|
||||
if ((longlong *)puVar1[1] == (longlong *)0x0) {
|
||||
FUN_14003e8b0((LPVOID)puVar1[2]);
|
||||
}
|
||||
else {
|
||||
(**(code **)(*(longlong *)puVar1[1] + 0x18))();
|
||||
}
|
||||
}
|
||||
(**(code **)(*plVar6 + 0x18))(plVar6,puVar1);
|
||||
(**(code **)(*local_98 + 0x18))(local_98,local_a0);
|
||||
}
|
||||
}
|
||||
if (local_b8 == (longlong *)0x0) {
|
||||
puVar9 = (uint *)0x0;
|
||||
}
|
||||
else {
|
||||
puVar9 = (uint *)*local_b8;
|
||||
}
|
||||
uVar5 = FUN_140097e40(puVar9,param_2,uVar5,puVar13);
|
||||
if ((char)uVar5 == '\0') {
|
||||
if (local_b8 != (longlong *)0x0) {
|
||||
plVar8 = local_b8 + 1;
|
||||
*plVar8 = *plVar8 + -1;
|
||||
if (*plVar8 == 0) {
|
||||
FUN_1400512a0((longlong)&local_b8,local_b8);
|
||||
}
|
||||
}
|
||||
local_res8 = &local_d0;
|
||||
uVar5 = FUN_14008a320((longlong *)&local_d0);
|
||||
if ((local_c8 != (longlong *)0x0) && (local_c0 < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar4 = FUN_140074ee0(param_2,&local_res8,4);
|
||||
if ((char)uVar4 == '\0') {
|
||||
local_a4 = 0;
|
||||
if (local_b8 != (longlong *)0x0) {
|
||||
plVar8 = local_b8 + 1;
|
||||
*plVar8 = *plVar8 + -1;
|
||||
if (*plVar8 == 0) {
|
||||
FUN_1400512a0((longlong)&local_b8,local_b8);
|
||||
}
|
||||
}
|
||||
local_res8 = &local_d0;
|
||||
uVar5 = FUN_14008a320((longlong *)&local_d0);
|
||||
if ((local_c8 != (longlong *)0x0) && (local_c0 < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
}
|
||||
else {
|
||||
local_a4 = local_res8._0_4_;
|
||||
uVar5 = 4;
|
||||
uVar4 = FUN_140074ee0(param_2,&local_res8,4);
|
||||
if ((char)uVar4 != '\0') {
|
||||
local_a8 = local_res8._0_4_;
|
||||
goto LAB_1400d4761;
|
||||
}
|
||||
if (local_b8 != (longlong *)0x0) {
|
||||
plVar8 = local_b8 + 1;
|
||||
*plVar8 = *plVar8 + -1;
|
||||
if (*plVar8 == 0) {
|
||||
FUN_1400512a0((longlong)&local_b8,local_b8);
|
||||
}
|
||||
}
|
||||
local_res8 = &local_d0;
|
||||
uVar5 = FUN_14008a320((longlong *)&local_d0);
|
||||
if ((local_c8 != (longlong *)0x0) && (local_c0 < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
}
|
||||
}
|
||||
goto LAB_1400d488d;
|
||||
}
|
||||
LAB_1400d4761:
|
||||
FUN_14007e740(param_3,0,uVar5,puVar13);
|
||||
FUN_1400d3930(param_1[1],&local_d8,uVar5,puVar13);
|
||||
plVar8 = (longlong *)FUN_1400d38a0(param_1[1]);
|
||||
uVar5 = FUN_1400947a0(plVar8,param_3,(ulonglong)*(uint *)(param_1[2] + 0x56c),
|
||||
(ulonglong)*(uint *)(*(longlong *)(param_1[2] + 0x670) + 0x6a4),param_4)
|
||||
;
|
||||
if ((int)uVar5 < 0) {
|
||||
*(undefined1 *)(param_1 + 3) = 1;
|
||||
}
|
||||
if (local_b8 != (longlong *)0x0) {
|
||||
plVar8 = local_b8 + 1;
|
||||
*plVar8 = *plVar8 + -1;
|
||||
if (*plVar8 == 0) {
|
||||
FUN_1400512a0((longlong)&local_b8,local_b8);
|
||||
}
|
||||
}
|
||||
local_res8 = &local_d0;
|
||||
uVar4 = FUN_14008a320((longlong *)&local_d0);
|
||||
if ((local_c8 != (longlong *)0x0) && (local_c0 < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
return CONCAT71((int7)((ulonglong)uVar4 >> 8),1);
|
||||
}
|
||||
SVar12 = 4;
|
||||
pppuVar10 = &local_res8;
|
||||
puVar9 = param_2;
|
||||
uVar4 = FUN_140074ee0(param_2,pppuVar10,4);
|
||||
if ((char)uVar4 == '\0') {
|
||||
local_d8 = local_d8 & 0xffffffff;
|
||||
if (local_b8 != (longlong *)0x0) {
|
||||
plVar8 = local_b8 + 1;
|
||||
*plVar8 = *plVar8 + -1;
|
||||
if (*plVar8 == 0) {
|
||||
FUN_1400512a0((longlong)&local_b8,local_b8);
|
||||
}
|
||||
}
|
||||
local_res8 = &local_d0;
|
||||
uVar5 = FUN_14008a320((longlong *)&local_d0);
|
||||
if ((local_c8 != (longlong *)0x0) && (local_c0 < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
goto LAB_1400d488d;
|
||||
}
|
||||
local_d8 = CONCAT44(local_res8._0_4_,(uint)local_d8);
|
||||
if (local_c8 != (longlong *)0x0) {
|
||||
FUN_14003db10(local_88,(wchar_t *)PTR_u_Cannot_use_internal_buffer_becau_140170560,SVar12,
|
||||
puVar13);
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_88,(ThrowInfo *)&DAT_14016c210);
|
||||
}
|
||||
if (local_d0 == (uint *)0x0) {
|
||||
local_d0 = (uint *)FUN_14008a360(puVar9,pppuVar10,SVar12);
|
||||
local_d0[10] = 1;
|
||||
local_d0[0xb] = 0;
|
||||
}
|
||||
puVar9 = param_2;
|
||||
uVar5 = FUN_140075580(param_2,&local_res8,SVar12,puVar13);
|
||||
if ((((char)uVar5 != '\0') && (iVar11 = (int)local_res8, -1 < iVar11)) &&
|
||||
(iVar11 <= DAT_14016f140)) {
|
||||
if (local_c8 == (longlong *)0x0) {
|
||||
puVar9 = local_d0;
|
||||
if (iVar11 < 1) {
|
||||
if (local_d0 == (uint *)0x0) goto LAB_1400d4800;
|
||||
iVar11 = 0;
|
||||
}
|
||||
else if (local_d0 == (uint *)0x0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420(0,0,SVar12,puVar13);
|
||||
}
|
||||
FUN_14002a050((longlong)local_d0,iVar11,SVar12);
|
||||
}
|
||||
else {
|
||||
if (local_c0._4_4_ < iVar11) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
local_c0 = CONCAT44(local_c0._4_4_,iVar11);
|
||||
}
|
||||
plVar6 = local_c8;
|
||||
if (local_c8 == (longlong *)0x0) {
|
||||
if (local_d0 == (uint *)0x0) {
|
||||
LAB_1400d4800:
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420(puVar9,0,SVar12,puVar13);
|
||||
}
|
||||
plVar6 = plVar8;
|
||||
if (local_d0[6] != 0) {
|
||||
plVar6 = *(longlong **)(local_d0 + 4);
|
||||
}
|
||||
}
|
||||
uVar5 = (ulonglong)local_res8 & 0xffffffff;
|
||||
uVar4 = FUN_140074ee0(param_2,plVar6,uVar5);
|
||||
if ((char)uVar4 != '\0') goto LAB_1400d4761;
|
||||
}
|
||||
if (local_b8 != (longlong *)0x0) {
|
||||
plVar8 = local_b8 + 1;
|
||||
*plVar8 = *plVar8 + -1;
|
||||
if (*plVar8 == 0) {
|
||||
FUN_1400512a0((longlong)&local_b8,local_b8);
|
||||
}
|
||||
}
|
||||
local_res8 = &local_d0;
|
||||
uVar5 = FUN_14008a320((longlong *)&local_d0);
|
||||
if ((local_c8 != (longlong *)0x0) && (local_c0 < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
}
|
||||
LAB_1400d488d:
|
||||
return uVar5 & 0xffffffffffffff00;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue