decompiled agent_release
This commit is contained in:
parent
baac905ef2
commit
11a3488883
6439 changed files with 229565 additions and 1 deletions
214
decomp/Agent_Release_x64/full/functions/0x1400c7a20.c
Normal file
214
decomp/Agent_Release_x64/full/functions/0x1400c7a20.c
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400c7a20 FUN_1400c7a20
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
ulonglong FUN_1400c7a20(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_1400cd060((int *)param_1,(int *)param_2);
|
||||
if ((int)uVar5 == -1) {
|
||||
uVar6 = 0;
|
||||
if (param_4 != (uint *)0x0) {
|
||||
uVar6 = FUN_1400c6e70(param_1,param_4);
|
||||
uVar6 = uVar6 & 0xffffffff;
|
||||
}
|
||||
if (param_3 != (undefined8 *)0x0) {
|
||||
FUN_1400cd030((undefined4 *)param_3);
|
||||
}
|
||||
return uVar6;
|
||||
}
|
||||
uVar6 = FUN_1400cf070(local_88,*param_1 + 2);
|
||||
if ((int)uVar6 != 0) {
|
||||
return uVar6;
|
||||
}
|
||||
local_88[0] = *param_1 + 2;
|
||||
uVar6 = FUN_1400c6d70(local_a0);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400c7f29;
|
||||
uVar6 = FUN_1400c6d70(local_68);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 == 0) {
|
||||
uVar3 = FUN_1400cd290(local_d8,param_1);
|
||||
uVar9 = (ulonglong)uVar3;
|
||||
if (uVar3 == 0) {
|
||||
uVar3 = FUN_1400cd290(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_1400c7020((int *)local_b8);
|
||||
if (iVar4 % 0x1c < 0x1b) {
|
||||
uVar3 = 0x1b - iVar4 % 0x1c;
|
||||
local_c0 = uVar3;
|
||||
uVar6 = FUN_1400ccf30(local_d8,uVar3,local_d8);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 == 0) {
|
||||
uVar6 = FUN_1400ccf30(local_b8,uVar3,local_b8);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 == 0) goto LAB_1400c7b9a;
|
||||
}
|
||||
}
|
||||
else {
|
||||
local_c0 = 0;
|
||||
LAB_1400c7b9a:
|
||||
iVar4 = local_b8[0] - 1;
|
||||
iVar12 = local_d8[0] - 1;
|
||||
uVar6 = FUN_1400cefe0((int *)local_b8,iVar12 - iVar4);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 == 0) {
|
||||
lVar11 = (longlong)iVar12;
|
||||
lVar13 = (longlong)iVar4;
|
||||
uVar5 = FUN_1400c6fc0((int *)local_d8,(int *)local_b8);
|
||||
if ((int)uVar5 != -1) {
|
||||
do {
|
||||
piVar1 = (int *)(local_78 + (lVar11 - lVar13) * 4);
|
||||
*piVar1 = *piVar1 + 1;
|
||||
uVar3 = FUN_1400c7670(local_d8,local_b8,local_d8);
|
||||
uVar9 = (ulonglong)uVar3;
|
||||
if (uVar3 != 0) goto LAB_1400c7f05;
|
||||
uVar5 = FUN_1400c6fc0((int *)local_d8,(int *)local_b8);
|
||||
} while ((int)uVar5 != -1);
|
||||
}
|
||||
FUN_1400cef60((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_1400cd030(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_1400c78e0((int *)local_a0,*(uint *)(lVar10 + local_78),
|
||||
(int *)local_a0);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400c7f05;
|
||||
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_1400cd060((int *)local_a0,local_68);
|
||||
} while ((int)uVar5 == 1);
|
||||
uVar6 = FUN_1400c78e0((int *)local_b8,*(uint *)(lVar10 + local_78),(int *)local_a0
|
||||
);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400c7f05;
|
||||
uVar6 = FUN_1400cefe0((int *)local_a0,(iVar12 - iVar4) - 1);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400c7f05;
|
||||
uVar3 = FUN_1400c7670(local_d8,local_a0,local_d8);
|
||||
uVar9 = (ulonglong)uVar3;
|
||||
if (uVar3 != 0) goto LAB_1400c7f05;
|
||||
uVar3 = local_bc;
|
||||
if (local_d0 == 1) {
|
||||
uVar6 = FUN_1400c6e70(local_b8,local_a0);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400c7f05;
|
||||
uVar6 = FUN_1400cefe0((int *)local_a0,(iVar12 - iVar4) - 1);
|
||||
uVar9 = uVar6 & 0xffffffff;
|
||||
if ((int)uVar6 != 0) goto LAB_1400c7f05;
|
||||
uVar3 = FUN_1400c74b0(local_d8,local_a0,local_d8);
|
||||
uVar9 = (ulonglong)uVar3;
|
||||
if (uVar3 != 0) goto LAB_1400c7f05;
|
||||
*(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_1400ccef0(local_88);
|
||||
FUN_1400cef30((undefined8 *)local_88,param_3);
|
||||
*(uint *)(param_3 + 1) = local_70;
|
||||
}
|
||||
if (param_4 != (uint *)0x0) {
|
||||
FUN_1400cd2c0(local_d8,local_c0,local_d8,(undefined8 *)0x0);
|
||||
FUN_1400cef30((undefined8 *)local_d8,(undefined8 *)param_4);
|
||||
}
|
||||
uVar9 = 0;
|
||||
}
|
||||
}
|
||||
LAB_1400c7f05:
|
||||
FUN_1400c6dd0((int *)local_b8);
|
||||
}
|
||||
FUN_1400c6dd0((int *)local_d8);
|
||||
}
|
||||
FUN_1400c6dd0(local_68);
|
||||
}
|
||||
FUN_1400c6dd0((int *)local_a0);
|
||||
LAB_1400c7f29:
|
||||
FUN_1400c6dd0(local_88);
|
||||
return uVar9;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue