add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
453
decomp/AgentManager_Release_x64/full/functions/0x14005efd0.c
Normal file
453
decomp/AgentManager_Release_x64/full/functions/0x14005efd0.c
Normal file
|
|
@ -0,0 +1,453 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x14005efd0 FUN_14005efd0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
void FUN_14005efd0(longlong *param_1,longlong *param_2,undefined8 param_3,double param_4)
|
||||
|
||||
{
|
||||
int *piVar1;
|
||||
uint uVar2;
|
||||
int iVar3;
|
||||
void *pvVar4;
|
||||
undefined8 uVar5;
|
||||
longlong *plVar6;
|
||||
uint uVar7;
|
||||
undefined8 *puVar8;
|
||||
uint uVar9;
|
||||
uint uVar10;
|
||||
longlong lVar11;
|
||||
uint *puVar12;
|
||||
longlong *plVar13;
|
||||
ulonglong uVar14;
|
||||
longlong lVar15;
|
||||
longlong *plVar16;
|
||||
longlong lVar17;
|
||||
uint *puVar18;
|
||||
int iVar19;
|
||||
longlong lVar20;
|
||||
ulonglong uVar21;
|
||||
ulonglong uVar22;
|
||||
ulonglong in_R9;
|
||||
int iVar23;
|
||||
int iVar24;
|
||||
longlong lVar25;
|
||||
bool bVar26;
|
||||
bool bVar27;
|
||||
undefined8 *local_e0;
|
||||
longlong local_d8;
|
||||
longlong local_d0;
|
||||
undefined8 local_c8;
|
||||
undefined8 local_c0;
|
||||
undefined8 local_b8;
|
||||
undefined8 local_b0;
|
||||
undefined8 local_a8;
|
||||
undefined8 local_a0;
|
||||
void *local_98;
|
||||
exception local_90 [88];
|
||||
|
||||
if ((int)param_3 == 0) {
|
||||
return;
|
||||
}
|
||||
local_a0 = 0xfffffffffffffffe;
|
||||
bVar26 = false;
|
||||
plVar6 = param_1 + 0x2f4;
|
||||
FUN_14004c130((longlong)plVar6,0,param_3,in_R9);
|
||||
lVar25 = param_2[1];
|
||||
iVar24 = 0;
|
||||
lVar11 = lVar25;
|
||||
local_d8 = lVar25;
|
||||
if (0 < (int)lVar25) {
|
||||
do {
|
||||
if ((iVar24 < 0) || (param_2[1] <= (longlong)iVar24)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
iVar19 = iVar24;
|
||||
if (iVar24 < (int)lVar25) {
|
||||
do {
|
||||
lVar15 = (longlong)iVar24;
|
||||
if (iVar24 == iVar19) {
|
||||
LAB_14005f108:
|
||||
bVar27 = false;
|
||||
}
|
||||
else {
|
||||
lVar11 = (longlong)iVar19;
|
||||
if ((iVar19 < 0) || (param_2[1] <= lVar11)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
if ((ulonglong)param_2[2] < 0x65) {
|
||||
puVar12 = (uint *)(param_2 + (lVar11 + 1) * 4);
|
||||
}
|
||||
else {
|
||||
puVar12 = (uint *)(lVar11 * 0x20 + *param_2);
|
||||
}
|
||||
if (param_2[1] <= lVar15) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
if ((ulonglong)param_2[2] < 0x65) {
|
||||
puVar18 = (uint *)(param_2 + (lVar15 + 1) * 4);
|
||||
}
|
||||
else {
|
||||
puVar18 = (uint *)(lVar15 * 0x20 + *param_2);
|
||||
}
|
||||
in_R9 = (ulonglong)*puVar12;
|
||||
plVar13 = FUN_14005d550((longlong)(param_1 + 0x5b),(longlong *)&local_e0,*puVar18,
|
||||
*puVar12);
|
||||
bVar26 = true;
|
||||
if ((longlong *)*plVar13 == (longlong *)0x0) {
|
||||
lVar11 = 0;
|
||||
goto LAB_14005f108;
|
||||
}
|
||||
lVar11 = *(longlong *)*plVar13;
|
||||
if (lVar11 == 0) goto LAB_14005f108;
|
||||
bVar27 = true;
|
||||
}
|
||||
puVar8 = local_e0;
|
||||
if (((bVar26) && (bVar26 = false, local_e0 != (undefined8 *)0x0)) &&
|
||||
(local_e0[1] = local_e0[1] + -1, local_e0[1] == 0)) {
|
||||
pvVar4 = (void *)*local_e0;
|
||||
local_98 = pvVar4;
|
||||
if (pvVar4 != (void *)0x0) {
|
||||
FUN_140049e40((undefined8 *)((longlong)pvVar4 + 0x148));
|
||||
FUN_140049e40((undefined8 *)((longlong)pvVar4 + 0x120));
|
||||
operator_delete(pvVar4);
|
||||
}
|
||||
FUN_14003e8b0(puVar8);
|
||||
bVar26 = false;
|
||||
lVar25 = local_d8;
|
||||
}
|
||||
if (((bVar27) && (*(char *)(lVar11 + 8) == '\0')) &&
|
||||
(*(double *)(lVar11 + 0x188) <= param_4 && param_4 != *(double *)(lVar11 + 0x188))) {
|
||||
local_c8 = CONCAT44(iVar19,iVar24);
|
||||
plVar13 = plVar6;
|
||||
local_d0 = lVar11;
|
||||
FUN_14004c860((longlong)plVar6,(int)param_1[0x2f7],(longlong)&local_d0,1);
|
||||
uVar14 = 0;
|
||||
in_R9 = (ulonglong)(int)param_1[0x2f7];
|
||||
uVar22 = uVar14;
|
||||
uVar21 = uVar14;
|
||||
if (0 < (longlong)in_R9) {
|
||||
do {
|
||||
if (((longlong)uVar21 < 0) || (iVar23 = (int)uVar22, (int)param_1[0x2f7] <= iVar23))
|
||||
{
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(plVar13,uVar22,uVar21,in_R9);
|
||||
}
|
||||
lVar15 = param_1[0x2f6];
|
||||
if (*(int *)(uVar14 + 8 + lVar15) == iVar24) {
|
||||
piVar1 = (int *)(uVar14 + 0x10 + lVar15);
|
||||
*piVar1 = *piVar1 + 1;
|
||||
}
|
||||
else if (*(int *)(uVar14 + 0xc + lVar15) == iVar24) {
|
||||
piVar1 = (int *)(uVar14 + 0x14 + lVar15);
|
||||
*piVar1 = *piVar1 + 1;
|
||||
}
|
||||
if ((int)param_1[0x2f7] <= iVar23) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(lVar15,uVar22,uVar21,in_R9);
|
||||
}
|
||||
plVar13 = (longlong *)param_1[0x2f6];
|
||||
if (*(int *)(uVar14 + 8 + (longlong)plVar13) == iVar19) {
|
||||
piVar1 = (int *)(uVar14 + 0x10 + (longlong)plVar13);
|
||||
*piVar1 = *piVar1 + 1;
|
||||
}
|
||||
else if (*(int *)(uVar14 + 0xc + (longlong)plVar13) == iVar19) {
|
||||
piVar1 = (int *)(uVar14 + 0x14 + (longlong)plVar13);
|
||||
*piVar1 = *piVar1 + 1;
|
||||
}
|
||||
uVar21 = uVar21 + 1;
|
||||
uVar14 = uVar14 + 0x18;
|
||||
uVar22 = (ulonglong)(iVar23 + 1);
|
||||
} while ((longlong)uVar21 < (longlong)in_R9);
|
||||
}
|
||||
local_d0 = 0;
|
||||
local_c8 = 0;
|
||||
local_c0 = 0;
|
||||
}
|
||||
iVar19 = iVar19 + 1;
|
||||
} while (iVar19 < (int)lVar25);
|
||||
}
|
||||
iVar24 = iVar24 + 1;
|
||||
} while (iVar24 < (int)lVar25);
|
||||
}
|
||||
lVar25 = 0;
|
||||
uVar2 = *(uint *)(param_1 + 0x2f7);
|
||||
if ((int)param_1[0x2f7] != 0) {
|
||||
lVar25 = param_1[0x2f6];
|
||||
}
|
||||
uVar22 = 0;
|
||||
if ((int)uVar2 < 0x65) {
|
||||
FUN_14004d960(lVar25,uVar2,0);
|
||||
}
|
||||
else {
|
||||
FUN_14005ccf0(lVar25,uVar2,0);
|
||||
}
|
||||
plVar16 = param_1 + 0x2f9;
|
||||
plVar13 = (longlong *)0x0;
|
||||
FUN_14004cce0((longlong)plVar16,0,uVar22);
|
||||
iVar24 = 0;
|
||||
lVar25 = 0;
|
||||
if (0 < (int)param_1[0x2f7]) {
|
||||
lVar11 = 0;
|
||||
do {
|
||||
if ((lVar25 < 0) || ((int)param_1[0x2f7] <= iVar24)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(param_1,plVar13,uVar22,in_R9);
|
||||
}
|
||||
lVar15 = param_1[0x2f6];
|
||||
local_b8 = *(undefined8 *)(lVar11 + lVar15);
|
||||
in_R9 = *(ulonglong *)(lVar11 + 8 + lVar15);
|
||||
uVar5 = *(undefined8 *)(lVar11 + 0x10 + lVar15);
|
||||
iVar19 = (int)param_1[0x2fc];
|
||||
lVar20 = (longlong)iVar19;
|
||||
local_b0._4_4_ = (uint)(in_R9 >> 0x20);
|
||||
uVar2 = local_b0._4_4_;
|
||||
plVar13 = (longlong *)0x0;
|
||||
while (iVar23 = (int)plVar13, local_b0 = in_R9, local_a8 = uVar5, iVar23 != iVar19) {
|
||||
if ((iVar23 < 0) || ((int)param_1[0x2fc] <= iVar23)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(lVar15,plVar13,uVar22,in_R9);
|
||||
}
|
||||
lVar15 = (longlong)iVar23;
|
||||
uVar9 = *(uint *)(param_1[0x2fb] + lVar15 * 4);
|
||||
uVar22 = (ulonglong)uVar9;
|
||||
uVar21 = in_R9;
|
||||
if ((uVar9 == (uint)in_R9) || (uVar21 = in_R9, uVar9 == local_b0._4_4_)) goto LAB_14005f42f;
|
||||
plVar13 = (longlong *)(ulonglong)(iVar23 + 1);
|
||||
}
|
||||
local_a8._4_4_ = (int)((ulonglong)uVar5 >> 0x20);
|
||||
if ((int)uVar5 < local_a8._4_4_) {
|
||||
if (iVar19 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
lVar15 = param_1[0x2fc];
|
||||
uVar9 = (int)lVar15 + 1;
|
||||
plVar13 = (longlong *)(ulonglong)uVar9;
|
||||
FUN_14004cce0((longlong)plVar16,uVar9,uVar22);
|
||||
iVar19 = (int)lVar15 - iVar19;
|
||||
if (0 < iVar19) {
|
||||
if ((int)param_1[0x2fc] == 0) {
|
||||
lVar15 = 0;
|
||||
lVar17 = 0;
|
||||
}
|
||||
else {
|
||||
lVar15 = param_1[0x2fb];
|
||||
lVar17 = param_1[0x2fb];
|
||||
}
|
||||
uVar22 = (longlong)iVar19 << 2;
|
||||
plVar13 = (longlong *)(lVar15 + lVar20 * 4);
|
||||
memmove((void *)(lVar17 + 4 + lVar20 * 4),plVar13,uVar22);
|
||||
}
|
||||
if ((int)param_1[0x2fc] == 0) {
|
||||
lVar15 = 0;
|
||||
}
|
||||
else {
|
||||
lVar15 = param_1[0x2fb];
|
||||
}
|
||||
*(uint *)(lVar15 + lVar20 * 4) = uVar2;
|
||||
uVar21 = local_b0;
|
||||
}
|
||||
else {
|
||||
if (iVar19 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
lVar15 = param_1[0x2fc];
|
||||
FUN_14004cce0((longlong)plVar16,(int)lVar15 + 1,uVar22);
|
||||
iVar19 = (int)lVar15 - iVar19;
|
||||
if (0 < iVar19) {
|
||||
if ((int)param_1[0x2fc] == 0) {
|
||||
lVar15 = 0;
|
||||
lVar17 = 0;
|
||||
}
|
||||
else {
|
||||
lVar15 = param_1[0x2fb];
|
||||
lVar17 = param_1[0x2fb];
|
||||
}
|
||||
uVar22 = (longlong)iVar19 << 2;
|
||||
memmove((void *)(lVar17 + 4 + lVar20 * 4),(void *)(lVar15 + lVar20 * 4),uVar22);
|
||||
}
|
||||
if ((int)param_1[0x2fc] == 0) {
|
||||
plVar13 = (longlong *)0x0;
|
||||
}
|
||||
else {
|
||||
plVar13 = (longlong *)param_1[0x2fb];
|
||||
}
|
||||
*(undefined4 *)((longlong)plVar13 + lVar20 * 4) = (undefined4)local_b0;
|
||||
uVar21 = local_b0;
|
||||
}
|
||||
LAB_14005f42f:
|
||||
local_b0 = uVar21;
|
||||
iVar24 = iVar24 + 1;
|
||||
lVar25 = lVar25 + 1;
|
||||
lVar11 = lVar11 + 0x18;
|
||||
} while (iVar24 < (int)param_1[0x2f7]);
|
||||
}
|
||||
iVar24 = 0;
|
||||
lVar11 = 0;
|
||||
lVar25 = param_1[0x2fc];
|
||||
if (0 < (longlong)(int)lVar25) {
|
||||
do {
|
||||
if ((lVar11 < 0) || ((int)param_1[0x2fc] <= iVar24)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(param_1,plVar13,uVar22,in_R9);
|
||||
}
|
||||
iVar19 = *(int *)(param_1[0x2fb] + lVar11 * 4);
|
||||
lVar15 = (longlong)iVar19;
|
||||
if ((iVar19 < 0) || (param_2[1] <= lVar15)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
if ((ulonglong)param_2[2] < 0x65) {
|
||||
plVar13 = param_2 + (lVar15 + 1) * 4;
|
||||
}
|
||||
else {
|
||||
plVar13 = (longlong *)(lVar15 * 0x20 + *param_2);
|
||||
}
|
||||
if ((plVar13[2] == 0) && (plVar13[3] == 0)) {
|
||||
lVar20 = 0;
|
||||
iVar23 = 0;
|
||||
in_R9 = 0;
|
||||
lVar15 = param_1[0x2f7];
|
||||
if (0 < (longlong)(int)lVar15) {
|
||||
uVar22 = 0;
|
||||
plVar16 = param_1;
|
||||
do {
|
||||
if ((int)param_3 <= lVar20) break;
|
||||
if (((longlong)in_R9 < 0) || ((int)param_1[0x2f7] <= iVar23)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(plVar16,plVar13,uVar22,in_R9);
|
||||
}
|
||||
lVar17 = param_1[0x2f6];
|
||||
iVar3 = *(int *)(lVar17 + 8 + uVar22);
|
||||
plVar16 = (longlong *)(longlong)iVar3;
|
||||
if (iVar19 == iVar3) {
|
||||
lVar17 = (longlong)*(int *)(lVar17 + 0xc + uVar22);
|
||||
if ((lVar17 < 0) || (param_2[1] <= lVar17)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
if ((ulonglong)param_2[2] < 0x65) {
|
||||
plVar16 = param_2 + (lVar17 + 1) * 4;
|
||||
}
|
||||
else {
|
||||
plVar16 = (longlong *)(lVar17 * 0x20 + *param_2);
|
||||
}
|
||||
if ((plVar16[2] == 0) && (plVar16[3] == 0)) {
|
||||
LAB_14005f5cd:
|
||||
plVar13[3] = (longlong)plVar16;
|
||||
plVar16[2] = (longlong)plVar13;
|
||||
lVar20 = lVar20 + 1;
|
||||
plVar13 = (longlong *)plVar13[3];
|
||||
}
|
||||
}
|
||||
else if (iVar19 == *(int *)(lVar17 + 0xc + uVar22)) {
|
||||
if (((longlong)plVar16 < 0) || (param_2[1] <= (longlong)plVar16)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
if ((ulonglong)param_2[2] < 0x65) {
|
||||
plVar16 = param_2 + ((longlong)plVar16 + 1) * 4;
|
||||
}
|
||||
else {
|
||||
plVar16 = (longlong *)((longlong)plVar16 * 0x20 + *param_2);
|
||||
}
|
||||
if ((plVar16[2] == 0) && (plVar16[3] == 0)) {
|
||||
plVar13[2] = 0;
|
||||
goto LAB_14005f5cd;
|
||||
}
|
||||
}
|
||||
iVar23 = iVar23 + 1;
|
||||
in_R9 = in_R9 + 1;
|
||||
uVar22 = uVar22 + 0x18;
|
||||
} while ((longlong)in_R9 < (longlong)(int)lVar15);
|
||||
}
|
||||
}
|
||||
iVar24 = iVar24 + 1;
|
||||
lVar11 = lVar11 + 1;
|
||||
} while (lVar11 < (int)lVar25);
|
||||
}
|
||||
FUN_14004c130((longlong)plVar6,0,uVar22,in_R9);
|
||||
iVar24 = (int)param_1[0x2fc];
|
||||
if (iVar24 == 0) {
|
||||
return;
|
||||
}
|
||||
uVar2 = *(uint *)((longlong)param_1 + 0x17e4);
|
||||
uVar22 = (ulonglong)uVar2;
|
||||
if (-1 < (int)uVar2) goto LAB_14005f731;
|
||||
iVar19 = *(int *)((longlong)param_1 + 0x17ec);
|
||||
if (iVar19 == 0) {
|
||||
uVar10 = (int)(iVar24 + (iVar24 >> 0x1f & 7U)) >> 3;
|
||||
uVar9 = 0x400;
|
||||
if ((int)uVar10 < 0x400) {
|
||||
uVar9 = uVar10;
|
||||
}
|
||||
uVar10 = 4;
|
||||
if (4 < (int)uVar9) {
|
||||
uVar10 = uVar9;
|
||||
}
|
||||
LAB_14005f6a5:
|
||||
uVar9 = *(uint *)(param_1 + 0x2fd);
|
||||
bVar27 = SBORROW4(uVar9,uVar10);
|
||||
uVar7 = uVar9 - uVar10;
|
||||
bVar26 = uVar9 == uVar10;
|
||||
}
|
||||
else {
|
||||
if (iVar19 == 1) {
|
||||
uVar9 = (int)(iVar24 + (iVar24 >> 0x1f & 7U)) >> 3;
|
||||
uVar10 = 0x10;
|
||||
if (0x10 < (int)uVar9) {
|
||||
uVar10 = uVar9;
|
||||
}
|
||||
if (uVar10 < 0x11) {
|
||||
uVar10 = 0x10;
|
||||
}
|
||||
goto LAB_14005f6a5;
|
||||
}
|
||||
if (iVar19 != 2) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
uVar9 = *(uint *)(param_1 + 0x2fd);
|
||||
uVar10 = 0;
|
||||
bVar27 = false;
|
||||
bVar26 = uVar9 == 0;
|
||||
uVar7 = uVar9;
|
||||
}
|
||||
if (!bVar26 && bVar27 == (int)uVar7 < 0) {
|
||||
uVar10 = uVar9;
|
||||
}
|
||||
plVar6 = (longlong *)param_1[0x2fa];
|
||||
if (uVar2 == 0) {
|
||||
if (plVar6 == (longlong *)0x0) {
|
||||
lVar11 = FUN_14003e840((longlong)(int)uVar10 << 2);
|
||||
}
|
||||
else {
|
||||
lVar11 = (**(code **)(*plVar6 + 8))(plVar6,(longlong)(int)uVar10 << 2);
|
||||
}
|
||||
}
|
||||
else {
|
||||
lVar25 = param_1[0x2fb];
|
||||
if (plVar6 == (longlong *)0x0) {
|
||||
lVar11 = FUN_14003e870(lVar25,(longlong)(int)uVar10 << 2);
|
||||
}
|
||||
else {
|
||||
uVar22 = (longlong)(int)uVar10 << 2;
|
||||
lVar11 = (**(code **)(*plVar6 + 0x10))(plVar6,lVar25);
|
||||
}
|
||||
if (lVar11 == 0) {
|
||||
FUN_14003db10(local_90,L"Memory allocation failure!",uVar22,lVar25);
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_90,(ThrowInfo *)&DAT_14016c210);
|
||||
}
|
||||
}
|
||||
param_1[0x2fb] = lVar11;
|
||||
*(uint *)((longlong)param_1 + 0x17e4) = uVar10;
|
||||
LAB_14005f731:
|
||||
*(undefined4 *)(param_1 + 0x2fc) = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue