add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
214
decomp/AgentManager_Release_x64/full/functions/0x1400d6850.c
Normal file
214
decomp/AgentManager_Release_x64/full/functions/0x1400d6850.c
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400d6850 FUN_1400d6850
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
ulonglong FUN_1400d6850(uint *param_1,uint *param_2,undefined8 *param_3,uint *param_4)
|
||||
|
||||
{
|
||||
int *piVar1;
|
||||
uint uVar2;
|
||||
uint uVar3;
|
||||
int iVar4;
|
||||
undefined8 uVar5;
|
||||
ulonglong uVar6;
|
||||
undefined4 uVar7;
|
||||
undefined4 uVar8;
|
||||
ulonglong uVar9;
|
||||
longlong lVar10;
|
||||
longlong lVar11;
|
||||
int iVar12;
|
||||
longlong lVar13;
|
||||
uint local_d8 [2];
|
||||
uint local_d0;
|
||||
longlong local_c8;
|
||||
uint local_c0;
|
||||
uint local_bc;
|
||||
uint local_b8 [2];
|
||||
undefined4 local_b0;
|
||||
longlong local_a8;
|
||||
uint local_a0 [4];
|
||||
undefined4 *local_90;
|
||||
int local_88 [4];
|
||||
longlong local_78;
|
||||
uint local_70;
|
||||
int local_68 [4];
|
||||
undefined4 *local_58;
|
||||
|
||||
if (*param_2 == 0) {
|
||||
return 0xfffffffd;
|
||||
}
|
||||
uVar5 = FUN_1400ddd70((int *)param_1,(int *)param_2);
|
||||
if ((int)uVar5 == -1) {
|
||||
uVar6 = 0;
|
||||
if (param_4 != (uint *)0x0) {
|
||||
uVar6 = FUN_1400d5ca0(param_1,param_4);
|
||||
uVar6 = uVar6 & 0xffffffff;
|
||||
}
|
||||
if (param_3 != (undefined8 *)0x0) {
|
||||
FUN_1400ddd40((undefined4 *)param_3);
|
||||
}
|
||||
return uVar6;
|
||||
}
|
||||
uVar6 = FUN_1400dfd80(local_88,*param_1 + 2);
|
||||
if ((int)uVar6 != 0) {
|
||||
return uVar6;
|
||||
}
|
||||
local_88[0] = *param_1 + 2;
|
||||
uVar6 = FUN_1400d5ba0(local_a0);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400d6d59;
|
||||
uVar6 = FUN_1400d5ba0(local_68);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 == 0) {
|
||||
uVar3 = FUN_1400ddfa0(local_d8,param_1);
|
||||
uVar9 = (ulonglong)uVar3;
|
||||
if (uVar3 == 0) {
|
||||
uVar3 = FUN_1400ddfa0(local_b8,param_2);
|
||||
uVar9 = (ulonglong)uVar3;
|
||||
if (uVar3 == 0) {
|
||||
local_b0 = 0;
|
||||
local_d0 = 0;
|
||||
local_70 = (uint)(param_1[2] != param_2[2]);
|
||||
iVar4 = FUN_1400d5e50((int *)local_b8);
|
||||
if (iVar4 % 0x1c < 0x1b) {
|
||||
uVar3 = 0x1b - iVar4 % 0x1c;
|
||||
local_c0 = uVar3;
|
||||
uVar6 = FUN_1400ddc40(local_d8,uVar3,local_d8);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 == 0) {
|
||||
uVar6 = FUN_1400ddc40(local_b8,uVar3,local_b8);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 == 0) goto LAB_1400d69ca;
|
||||
}
|
||||
}
|
||||
else {
|
||||
local_c0 = 0;
|
||||
LAB_1400d69ca:
|
||||
iVar4 = local_b8[0] - 1;
|
||||
iVar12 = local_d8[0] - 1;
|
||||
uVar6 = FUN_1400dfcf0((int *)local_b8,iVar12 - iVar4);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 == 0) {
|
||||
lVar11 = (longlong)iVar12;
|
||||
lVar13 = (longlong)iVar4;
|
||||
uVar5 = FUN_1400d5df0((int *)local_d8,(int *)local_b8);
|
||||
if ((int)uVar5 != -1) {
|
||||
do {
|
||||
piVar1 = (int *)(local_78 + (lVar11 - lVar13) * 4);
|
||||
*piVar1 = *piVar1 + 1;
|
||||
uVar3 = FUN_1400d64a0(local_d8,local_b8,local_d8);
|
||||
uVar9 = (ulonglong)uVar3;
|
||||
if (uVar3 != 0) goto LAB_1400d6d35;
|
||||
uVar5 = FUN_1400d5df0((int *)local_d8,(int *)local_b8);
|
||||
} while ((int)uVar5 != -1);
|
||||
}
|
||||
FUN_1400dfc70((int *)local_b8,iVar12 - iVar4);
|
||||
local_bc = local_b8[0];
|
||||
uVar3 = local_b8[0];
|
||||
if ((int)local_b8[0] <= iVar12) {
|
||||
do {
|
||||
if (iVar12 <= (int)local_d8[0]) {
|
||||
uVar3 = *(uint *)(local_c8 + lVar11 * 4);
|
||||
uVar2 = *(uint *)(local_a8 + lVar13 * 4);
|
||||
if (uVar3 == uVar2) {
|
||||
lVar10 = (lVar11 - lVar13) * 4 + -4;
|
||||
*(undefined4 *)(lVar10 + local_78) = 0xfffffff;
|
||||
}
|
||||
else {
|
||||
uVar6 = ((ulonglong)uVar3 << 0x1c |
|
||||
(ulonglong)*(uint *)(local_c8 + -4 + lVar11 * 4)) / (ulonglong)uVar2;
|
||||
if (0xfffffff < uVar6) {
|
||||
uVar6 = 0xfffffff;
|
||||
}
|
||||
lVar10 = (lVar11 - lVar13) * 4 + -4;
|
||||
*(uint *)(lVar10 + local_78) = (uint)uVar6 & 0xfffffff;
|
||||
}
|
||||
*(uint *)(lVar10 + local_78) = *(int *)(lVar10 + local_78) + 1U & 0xfffffff;
|
||||
do {
|
||||
*(uint *)(lVar10 + local_78) = *(int *)(lVar10 + local_78) - 1U & 0xfffffff;
|
||||
FUN_1400ddd40(local_a0);
|
||||
uVar7 = 0;
|
||||
if (-1 < (int)(local_b8[0] - 2)) {
|
||||
uVar7 = *(undefined4 *)(local_a8 + -4 + lVar13 * 4);
|
||||
}
|
||||
*local_90 = uVar7;
|
||||
local_90[1] = *(undefined4 *)(local_a8 + lVar13 * 4);
|
||||
local_a0[0] = 2;
|
||||
uVar6 = FUN_1400d6710((int *)local_a0,*(uint *)(lVar10 + local_78),
|
||||
(int *)local_a0);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400d6d35;
|
||||
uVar7 = 0;
|
||||
uVar8 = uVar7;
|
||||
if (-1 < iVar12 + -2) {
|
||||
uVar8 = *(undefined4 *)(local_c8 + -8 + lVar11 * 4);
|
||||
}
|
||||
*local_58 = uVar8;
|
||||
if (-1 < iVar12 + -1) {
|
||||
uVar7 = *(undefined4 *)(local_c8 + -4 + lVar11 * 4);
|
||||
}
|
||||
local_58[1] = uVar7;
|
||||
local_58[2] = *(undefined4 *)(local_c8 + lVar11 * 4);
|
||||
local_68[0] = 3;
|
||||
uVar5 = FUN_1400ddd70((int *)local_a0,local_68);
|
||||
} while ((int)uVar5 == 1);
|
||||
uVar6 = FUN_1400d6710((int *)local_b8,*(uint *)(lVar10 + local_78),(int *)local_a0
|
||||
);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400d6d35;
|
||||
uVar6 = FUN_1400dfcf0((int *)local_a0,(iVar12 - iVar4) - 1);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400d6d35;
|
||||
uVar3 = FUN_1400d64a0(local_d8,local_a0,local_d8);
|
||||
uVar9 = (ulonglong)uVar3;
|
||||
if (uVar3 != 0) goto LAB_1400d6d35;
|
||||
uVar3 = local_bc;
|
||||
if (local_d0 == 1) {
|
||||
uVar6 = FUN_1400d5ca0(local_b8,local_a0);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400d6d35;
|
||||
uVar6 = FUN_1400dfcf0((int *)local_a0,(iVar12 - iVar4) - 1);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400d6d35;
|
||||
uVar3 = FUN_1400d62e0(local_d8,local_a0,local_d8);
|
||||
uVar9 = (ulonglong)uVar3;
|
||||
if (uVar3 != 0) goto LAB_1400d6d35;
|
||||
*(uint *)(lVar10 + local_78) = *(int *)(lVar10 + local_78) - 1U & 0xfffffff;
|
||||
uVar3 = local_bc;
|
||||
}
|
||||
}
|
||||
iVar12 = iVar12 + -1;
|
||||
lVar11 = lVar11 + -1;
|
||||
} while ((int)uVar3 <= iVar12);
|
||||
}
|
||||
if (local_d8[0] == 0) {
|
||||
local_d0 = 0;
|
||||
}
|
||||
else {
|
||||
local_d0 = param_1[2];
|
||||
}
|
||||
if (param_3 != (undefined8 *)0x0) {
|
||||
FUN_1400ddc00(local_88);
|
||||
FUN_1400dfc40((undefined8 *)local_88,param_3);
|
||||
*(uint *)(param_3 + 1) = local_70;
|
||||
}
|
||||
if (param_4 != (uint *)0x0) {
|
||||
FUN_1400ddfd0(local_d8,local_c0,local_d8,(undefined8 *)0x0);
|
||||
FUN_1400dfc40((undefined8 *)local_d8,(undefined8 *)param_4);
|
||||
}
|
||||
uVar9 = 0;
|
||||
}
|
||||
}
|
||||
LAB_1400d6d35:
|
||||
FUN_1400d5c00((int *)local_b8);
|
||||
}
|
||||
FUN_1400d5c00((int *)local_d8);
|
||||
}
|
||||
FUN_1400d5c00(local_68);
|
||||
}
|
||||
FUN_1400d5c00((int *)local_a0);
|
||||
LAB_1400d6d59:
|
||||
FUN_1400d5c00(local_88);
|
||||
return uVar9;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue