add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
269
decomp/AgentManager_Release_x64/full/functions/0x1400ab050.c
Normal file
269
decomp/AgentManager_Release_x64/full/functions/0x1400ab050.c
Normal file
|
|
@ -0,0 +1,269 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400ab050 FUN_1400ab050
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
void FUN_1400ab050(undefined ***param_1,longlong param_2,undefined8 param_3,longlong param_4,
|
||||
uint *param_5,uint *param_6)
|
||||
|
||||
{
|
||||
int iVar1;
|
||||
uint uVar2;
|
||||
uint uVar3;
|
||||
uint uVar4;
|
||||
undefined8 *puVar5;
|
||||
uint *puVar6;
|
||||
longlong *plVar7;
|
||||
int *piVar8;
|
||||
undefined ***pppuVar9;
|
||||
undefined ***pppuVar10;
|
||||
undefined ***pppuVar11;
|
||||
uint *puVar12;
|
||||
undefined ****ppppuVar13;
|
||||
longlong lVar14;
|
||||
longlong lVar15;
|
||||
uint uVar16;
|
||||
longlong lVar17;
|
||||
undefined **ppuVar18;
|
||||
uint **ppuVar19;
|
||||
uint uVar20;
|
||||
ulonglong uVar21;
|
||||
ulonglong uVar22;
|
||||
double dVar23;
|
||||
undefined8 uVar24;
|
||||
undefined ***local_res10;
|
||||
undefined **local_c8;
|
||||
undefined4 local_c0;
|
||||
undefined2 local_bc;
|
||||
undefined **local_b8;
|
||||
undefined8 local_b0;
|
||||
undefined8 local_a8;
|
||||
undefined8 local_a0;
|
||||
undefined8 local_98;
|
||||
longlong local_90;
|
||||
undefined4 local_88;
|
||||
uint *local_80;
|
||||
undefined4 local_78;
|
||||
undefined4 local_74;
|
||||
longlong local_68 [2];
|
||||
int *local_58;
|
||||
undefined1 local_50;
|
||||
|
||||
puVar6 = param_5;
|
||||
local_68[1] = 0xfffffffffffffffe;
|
||||
uVar24 = param_3;
|
||||
lVar15 = param_4;
|
||||
FUN_14007e740((longlong)param_5,0,param_3,param_4);
|
||||
uVar21 = (ulonglong)(int)puVar6[6];
|
||||
FUN_140093730(&local_90);
|
||||
local_88 = (undefined4)param_3;
|
||||
local_80 = puVar6;
|
||||
lVar17 = 0;
|
||||
local_78 = 0;
|
||||
local_74 = *(undefined4 *)((longlong)param_1 + 0x6a4);
|
||||
plVar7 = &local_90;
|
||||
puVar12 = param_6;
|
||||
local_90 = param_2;
|
||||
puVar5 = FUN_1400941c0(plVar7,param_6,uVar24,lVar15);
|
||||
iVar1 = (int)puVar5;
|
||||
if (-1 < iVar1) {
|
||||
local_c8 = Proud::AddrPort::vftable;
|
||||
local_c0 = *(undefined4 *)(param_4 + 8);
|
||||
local_bc = *(undefined2 *)(param_4 + 0xc);
|
||||
pppuVar9 = &local_c8;
|
||||
ppppuVar13 = &local_res10;
|
||||
pppuVar10 = param_1;
|
||||
plVar7 = FUN_1400a5f70((longlong)param_1,ppppuVar13,(longlong)pppuVar9);
|
||||
lVar15 = lVar17;
|
||||
if ((longlong *)*plVar7 != (longlong *)0x0) {
|
||||
lVar15 = *(longlong *)*plVar7;
|
||||
}
|
||||
if (local_res10 != (undefined ***)0x0) {
|
||||
local_res10[1] = (undefined **)((longlong)local_res10[1] + -1);
|
||||
pppuVar10 = (undefined ***)local_res10[1];
|
||||
if ((undefined ***)local_res10[1] == (undefined ***)0x0) {
|
||||
if (*local_res10 != (undefined **)0x0) {
|
||||
ppppuVar13 = (undefined ****)0x1;
|
||||
(**(code **)**local_res10)();
|
||||
}
|
||||
FUN_14003e8b0(local_res10);
|
||||
pppuVar10 = local_res10;
|
||||
}
|
||||
}
|
||||
if (iVar1 < 1) {
|
||||
return;
|
||||
}
|
||||
lVar14 = uVar21 * 0x48;
|
||||
uVar22 = uVar21;
|
||||
do {
|
||||
pppuVar11 = (undefined ***)0x0;
|
||||
if (((longlong)(uVar21 + lVar17) < 0) || ((int)puVar6[6] <= (int)uVar22)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(pppuVar10,ppppuVar13,pppuVar9,0);
|
||||
}
|
||||
ppppuVar13 = *(undefined *****)(puVar6 + 4);
|
||||
*(undefined4 *)(lVar14 + 0x38 + (longlong)ppppuVar13) = *(undefined4 *)(param_4 + 8);
|
||||
*(undefined2 *)(lVar14 + 0x3c + (longlong)ppppuVar13) = *(undefined2 *)(param_4 + 0xc);
|
||||
if (lVar15 == 0) {
|
||||
if (param_1[0x2ae] != (undefined **)0x0) {
|
||||
pppuVar11 = (undefined ***)*param_1[0x2ae];
|
||||
}
|
||||
pppuVar9 = param_1;
|
||||
if ((*(int *)(param_4 + 8) == *(int *)(pppuVar11 + 0x1a)) &&
|
||||
(*(short *)(param_4 + 0xc) == *(short *)((longlong)pppuVar11 + 0xd4))) {
|
||||
*(undefined4 *)(lVar14 + 0x28 + (longlong)ppppuVar13) = 1;
|
||||
pppuVar11 = param_1;
|
||||
FUN_14009c110((longlong)param_1);
|
||||
}
|
||||
else {
|
||||
*(undefined4 *)(lVar14 + 0x28 + (longlong)ppppuVar13) = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
*(undefined4 *)(lVar14 + 0x28 + (longlong)ppppuVar13) = *(undefined4 *)(lVar15 + 0x56c);
|
||||
dVar23 = (double)(*(code *)param_1[0xe][0x38])(param_1 + 0xe);
|
||||
dVar23 = dVar23 - *(double *)(lVar15 + 0xc0);
|
||||
if (0.0 < dVar23) {
|
||||
*(double *)(lVar15 + 0x140) = dVar23;
|
||||
}
|
||||
pppuVar11 = param_1 + 0xe;
|
||||
uVar24 = (*(code *)param_1[0xe][0x38])();
|
||||
*(undefined8 *)(lVar15 + 0xc0) = uVar24;
|
||||
*(int *)(lVar15 + 0x100) = *(int *)(lVar15 + 0x100) + 1;
|
||||
}
|
||||
uVar22 = (ulonglong)((int)uVar22 + 1);
|
||||
lVar17 = lVar17 + 1;
|
||||
lVar14 = lVar14 + 0x48;
|
||||
pppuVar10 = pppuVar11;
|
||||
} while (lVar17 < iVar1);
|
||||
return;
|
||||
}
|
||||
FUN_14003e7c0(plVar7,puVar12,uVar24,lVar15);
|
||||
param_5 = (uint *)PTR_DAT_14016f010;
|
||||
uVar2 = FUN_14003e620(L"ExtractMessageFromUdpRecvQueue : addedCount < 0");
|
||||
uVar20 = 0;
|
||||
uVar4 = 0;
|
||||
uVar21 = 0;
|
||||
if ((param_5 != (uint *)0x0) && (uVar21 = 0, param_5 != (uint *)PTR_DAT_14016f010)) {
|
||||
uVar21 = (ulonglong)param_5[-2];
|
||||
}
|
||||
uVar3 = uVar2;
|
||||
if ((((int)uVar2 <= (int)uVar21) && (uVar3 = uVar4, param_5 != (uint *)0x0)) &&
|
||||
(param_5 != (uint *)PTR_DAT_14016f010)) {
|
||||
uVar3 = param_5[-2];
|
||||
}
|
||||
uVar16 = 1;
|
||||
if (1 < (int)uVar3) {
|
||||
uVar16 = uVar3;
|
||||
}
|
||||
uVar3 = uVar4;
|
||||
if ((param_5 != (uint *)0x0) && (param_5 != (uint *)PTR_DAT_14016f010)) {
|
||||
uVar3 = param_5[-2];
|
||||
}
|
||||
if ((int)uVar3 < (int)uVar16) {
|
||||
if (param_5 == (uint *)0x0) {
|
||||
param_5 = (uint *)PTR_DAT_14016f010;
|
||||
}
|
||||
if ((int)uVar16 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
if (uVar16 == 0) {
|
||||
FUN_140002190((longlong *)¶m_5,PTR_DAT_14016f010,uVar21,lVar15);
|
||||
}
|
||||
else {
|
||||
uVar3 = uVar4;
|
||||
if ((param_5 != (uint *)0x0) && (param_5 != (uint *)PTR_DAT_14016f010)) {
|
||||
uVar3 = param_5[-2];
|
||||
}
|
||||
if (uVar16 != uVar3) {
|
||||
puVar6 = (uint *)FUN_14003e840((longlong)(int)uVar16 * 2 + 10);
|
||||
if (puVar6 != (uint *)0x0) {
|
||||
*puVar6 = 0;
|
||||
puVar6[1] = 1;
|
||||
}
|
||||
*puVar6 = uVar16;
|
||||
uVar3 = uVar4;
|
||||
if ((param_5 != (uint *)0x0) && (param_5 != (uint *)PTR_DAT_14016f010)) {
|
||||
uVar3 = param_5[-2];
|
||||
}
|
||||
puVar12 = (uint *)PTR_DAT_14016f010;
|
||||
if ((int)uVar16 < (int)uVar3) {
|
||||
LAB_1400ab1d2:
|
||||
if (param_5 != (uint *)0x0) {
|
||||
puVar12 = param_5;
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar16 = uVar4;
|
||||
if (param_5 != (uint *)0x0) {
|
||||
if (param_5 != (uint *)PTR_DAT_14016f010) {
|
||||
uVar16 = param_5[-2];
|
||||
}
|
||||
goto LAB_1400ab1d2;
|
||||
}
|
||||
}
|
||||
uVar21 = (ulonglong)uVar16;
|
||||
FUN_14003e650(puVar6 + 2,puVar12,uVar16);
|
||||
FUN_140002190((longlong *)¶m_5,puVar12,uVar21,lVar15);
|
||||
param_5 = puVar6 + 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
FUN_140001df0((longlong *)¶m_5);
|
||||
puVar6 = param_5;
|
||||
if (param_5 == (uint *)0x0) {
|
||||
puVar6 = (uint *)PTR_DAT_14016f010;
|
||||
}
|
||||
FUN_14003e650(puVar6,L"ExtractMessageFromUdpRecvQueue : addedCount < 0",uVar2);
|
||||
puVar6 = param_5;
|
||||
if (param_5 == (uint *)0x0) {
|
||||
puVar6 = (uint *)PTR_DAT_14016f010;
|
||||
}
|
||||
uVar4 = FUN_14003e620((short *)puVar6);
|
||||
uVar2 = uVar20;
|
||||
if (0 < (int)uVar4) {
|
||||
uVar2 = uVar4;
|
||||
}
|
||||
uVar4 = uVar20;
|
||||
if ((param_5 != (uint *)0x0) && (param_5 != (uint *)PTR_DAT_14016f010)) {
|
||||
uVar4 = param_5[-2];
|
||||
}
|
||||
if (((int)uVar4 <= (int)uVar2) && (uVar2 = uVar20, param_5 != (uint *)0x0)) {
|
||||
if (param_5 == (uint *)PTR_DAT_14016f010) goto LAB_1400ab28a;
|
||||
uVar2 = param_5[-2];
|
||||
}
|
||||
if (((param_5 != (uint *)PTR_DAT_14016f010) && (param_5 != (uint *)0x0)) &&
|
||||
(param_5 + -2 != (uint *)0x0)) {
|
||||
param_5[-2] = uVar2;
|
||||
*(undefined2 *)((longlong)param_5 + (longlong)(int)uVar2 * 2) = 0;
|
||||
}
|
||||
LAB_1400ab28a:
|
||||
local_b0 = 0;
|
||||
local_a8 = 0;
|
||||
local_a0 = 0;
|
||||
local_98 = 0;
|
||||
local_b8 = Proud::ByteArray::vftable;
|
||||
ppuVar19 = ¶m_5;
|
||||
plVar7 = FUN_140071c20(local_68,(ulonglong)*param_6,(ulonglong)*(uint *)(param_1 + 0x2af),
|
||||
(longlong *)ppuVar19,(longlong)&local_b8);
|
||||
ppuVar18 = *param_1;
|
||||
(*(code *)ppuVar18[0x11])(param_1);
|
||||
pppuVar9 = &local_b8;
|
||||
FUN_140049e40(pppuVar9);
|
||||
puVar6 = param_5;
|
||||
if (((param_5 != (uint *)0x0) && (param_5 != (uint *)PTR_DAT_14016f010)) &&
|
||||
(puVar12 = param_5 + -2, puVar12 != (uint *)0x0)) {
|
||||
piVar8 = (int *)FUN_14003e7c0(pppuVar9,plVar7,ppuVar18,ppuVar19);
|
||||
local_58 = piVar8;
|
||||
FUN_14003d040(piVar8);
|
||||
local_50 = 1;
|
||||
puVar6 = puVar6 + -1;
|
||||
*puVar6 = *puVar6 - 1;
|
||||
if (*puVar6 == 0) {
|
||||
FUN_14003e8b0(puVar12);
|
||||
}
|
||||
FUN_14003d0d0((longlong)piVar8);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue