add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
310
decomp/AgentManager_Release_x64/full/functions/0x1400c2230.c
Normal file
310
decomp/AgentManager_Release_x64/full/functions/0x1400c2230.c
Normal file
|
|
@ -0,0 +1,310 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400c2230 FUN_1400c2230
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
ulonglong FUN_1400c2230(longlong param_1,IMAGE_DOS_HEADER *param_2,uint *param_3,
|
||||
undefined ***param_4)
|
||||
|
||||
{
|
||||
undefined1 uVar1;
|
||||
ushort uVar2;
|
||||
ulonglong in_RAX;
|
||||
ulonglong uVar3;
|
||||
undefined8 uVar4;
|
||||
longlong *plVar5;
|
||||
longlong *plVar6;
|
||||
longlong *plVar7;
|
||||
undefined1 *puVar8;
|
||||
longlong **pplVar9;
|
||||
longlong **pplVar10;
|
||||
longlong **pplVar11;
|
||||
longlong **pplVar12;
|
||||
uint *puVar13;
|
||||
SIZE_T SVar14;
|
||||
int iVar15;
|
||||
longlong **pplVar16;
|
||||
int iVar17;
|
||||
uint uVar18;
|
||||
longlong **pplVar20;
|
||||
double dVar21;
|
||||
uint local_res18 [2];
|
||||
longlong *local_res20;
|
||||
undefined8 local_178;
|
||||
longlong local_170;
|
||||
longlong local_168;
|
||||
undefined4 local_160;
|
||||
int local_15c;
|
||||
undefined **local_150;
|
||||
undefined8 local_148;
|
||||
longlong **local_140;
|
||||
ulonglong local_138;
|
||||
undefined8 local_130;
|
||||
undefined **local_128;
|
||||
longlong **local_120;
|
||||
longlong **local_118;
|
||||
undefined8 local_110;
|
||||
undefined8 local_108;
|
||||
longlong **local_100;
|
||||
undefined1 local_f8 [56];
|
||||
word local_c0 [2];
|
||||
undefined2 local_bc;
|
||||
byte local_b8;
|
||||
undefined **local_a8;
|
||||
uint local_a0;
|
||||
byte local_9c [4];
|
||||
byte local_98 [8];
|
||||
int local_90 [2];
|
||||
ulonglong local_88;
|
||||
uint local_80 [2];
|
||||
byte local_78 [8];
|
||||
undefined1 local_70;
|
||||
undefined4 local_6c;
|
||||
undefined1 local_68;
|
||||
undefined1 local_67;
|
||||
undefined8 local_60;
|
||||
longlong **pplVar19;
|
||||
|
||||
local_60 = 0xfffffffffffffffe;
|
||||
if (((param_3[10] != 1) ||
|
||||
(puVar13 = param_3, in_RAX = FUN_140075710(param_3,local_res18,param_3,param_4),
|
||||
(char)in_RAX == '\0')) ||
|
||||
(in_RAX = FUN_140075580(param_3,(undefined8 *)local_98,puVar13,param_4), (char)in_RAX == '\0'))
|
||||
goto LAB_1400c279b;
|
||||
pplVar11 = (longlong **)0x0;
|
||||
local_120 = (longlong **)0x0;
|
||||
local_118 = (longlong **)0x0;
|
||||
local_110 = 0;
|
||||
local_108 = 0;
|
||||
local_128 = Proud::HostIDArray::vftable;
|
||||
in_RAX = FUN_140075580(param_3,(undefined8 *)local_90,puVar13,param_4);
|
||||
pplVar12 = pplVar11;
|
||||
pplVar9 = pplVar11;
|
||||
if ((((char)in_RAX == '\0') || (pplVar12 = (longlong **)0x0, local_90[0] < 0)) ||
|
||||
(DAT_14016f140 < local_90[0])) {
|
||||
LAB_1400c277b:
|
||||
if (pplVar12 == (longlong **)0x0) goto LAB_1400c279b;
|
||||
if (pplVar9 == (longlong **)0x0) {
|
||||
LAB_1400c2793:
|
||||
in_RAX = FUN_14003e8b0(pplVar12);
|
||||
goto LAB_1400c279b;
|
||||
}
|
||||
plVar6 = *pplVar9;
|
||||
}
|
||||
else {
|
||||
FUN_14004cce0((longlong)&local_128,local_90[0],(longlong)puVar13);
|
||||
pplVar12 = local_118;
|
||||
iVar17 = (int)local_110;
|
||||
pplVar9 = local_118;
|
||||
if ((int)local_110 == 0) {
|
||||
pplVar9 = pplVar11;
|
||||
}
|
||||
SVar14 = (SIZE_T)(uint)(local_90[0] * 4);
|
||||
in_RAX = FUN_140074ee0(param_3,pplVar9,SVar14);
|
||||
pplVar9 = local_120;
|
||||
if ((char)in_RAX == '\0') goto LAB_1400c277b;
|
||||
local_148 = 0;
|
||||
local_140 = (longlong **)0x0;
|
||||
local_138 = 0;
|
||||
local_130 = 0;
|
||||
local_150 = Proud::ByteArray::vftable;
|
||||
uVar3 = FUN_140075580(param_3,&local_88,SVar14,param_4);
|
||||
if ((((char)uVar3 != '\0') && (iVar15 = (int)local_88, -1 < iVar15)) &&
|
||||
(iVar15 <= DAT_14016f140)) {
|
||||
FUN_14002a050((longlong)&local_150,iVar15,SVar14);
|
||||
pplVar9 = local_140;
|
||||
if ((int)local_138 == 0) {
|
||||
pplVar9 = pplVar11;
|
||||
}
|
||||
SVar14 = local_88 & 0xffffffff;
|
||||
uVar4 = FUN_140074ee0(param_3,pplVar9,SVar14);
|
||||
if ((char)uVar4 != '\0') {
|
||||
FUN_140074fb0((undefined4 *)&local_178);
|
||||
FUN_140074a40((longlong)&local_178,pplVar9,SVar14,param_4);
|
||||
FUN_140075110((int *)&local_178,0x800,SVar14,param_4);
|
||||
uVar4 = 0;
|
||||
FUN_140075110((int *)&local_178,0,SVar14,param_4);
|
||||
FUN_140029d80((longlong)&local_178,CONCAT71((int7)((ulonglong)uVar4 >> 8),0x23),SVar14,
|
||||
param_4);
|
||||
uVar3 = local_138;
|
||||
iVar15 = (int)local_138;
|
||||
plVar6 = &local_178;
|
||||
FUN_140076380((longlong)plVar6,(longlong)(int)local_138,SVar14,param_4);
|
||||
pplVar9 = local_140;
|
||||
if ((int)local_138 == 0) {
|
||||
pplVar9 = pplVar11;
|
||||
}
|
||||
if (iVar15 != 0) {
|
||||
local_178._4_4_ = 0;
|
||||
if (local_170 == 0) {
|
||||
if (local_168 == 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420(0,pplVar9,SVar14,param_4);
|
||||
}
|
||||
LAB_1400c241e:
|
||||
SVar14 = uVar3 & 0xffffffff;
|
||||
FUN_140029f40(&local_168,pplVar9,SVar14,param_4);
|
||||
}
|
||||
else {
|
||||
if (local_168 != 0) goto LAB_1400c241e;
|
||||
if (local_170 == 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420(0,pplVar9,SVar14,param_4);
|
||||
}
|
||||
SVar14 = uVar3 & 0xffffffff;
|
||||
FUN_14002a110(local_170,pplVar9,SVar14);
|
||||
}
|
||||
plVar6 = &local_178;
|
||||
FUN_14002a180((longlong)plVar6,pplVar9,SVar14,param_4);
|
||||
}
|
||||
local_70 = DAT_140178020;
|
||||
local_6c = 0xffffffff;
|
||||
local_68 = DAT_140178040;
|
||||
local_80[0] = local_res18[0];
|
||||
local_78[0] = local_98[0];
|
||||
local_78[1] = local_98[1];
|
||||
local_78[2] = local_98[2];
|
||||
local_78[3] = local_98[3];
|
||||
local_78[4] = local_98[4];
|
||||
local_78[5] = local_98[5];
|
||||
local_78[6] = local_98[6];
|
||||
local_78[7] = local_98[7];
|
||||
local_67 = 0;
|
||||
pplVar19 = pplVar11;
|
||||
pplVar20 = pplVar11;
|
||||
if (0 < iVar17) {
|
||||
do {
|
||||
if (((longlong)pplVar20 < 0) || (iVar17 <= (int)pplVar19)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(plVar6,pplVar9,SVar14,param_4);
|
||||
}
|
||||
plVar6 = *(longlong **)(param_1 + 0x108);
|
||||
pplVar9 = (longlong **)((longlong)pplVar12 + (longlong)pplVar20 * 4);
|
||||
local_100 = pplVar9;
|
||||
if (*(uint *)pplVar9 != *(uint *)(plVar6 + 0x2af)) {
|
||||
SVar14 = (SIZE_T)*(uint *)pplVar9;
|
||||
pplVar10 = &local_res20;
|
||||
plVar5 = FUN_1400a7920(plVar6,(longlong *)pplVar10,*(uint *)pplVar9);
|
||||
plVar7 = local_res20;
|
||||
pplVar16 = pplVar11;
|
||||
if ((undefined8 *)*plVar5 != (undefined8 *)0x0) {
|
||||
pplVar16 = *(longlong ***)*plVar5;
|
||||
}
|
||||
pplVar9 = pplVar10;
|
||||
if (local_res20 != (longlong *)0x0) {
|
||||
local_res20[1] = local_res20[1] + -1;
|
||||
plVar6 = (longlong *)local_res20[1];
|
||||
if ((longlong *)local_res20[1] == (longlong *)0x0) {
|
||||
if ((undefined8 *)*local_res20 != (undefined8 *)0x0) {
|
||||
pplVar10 = (longlong **)0x1;
|
||||
(*(code *)**(undefined8 **)*local_res20)();
|
||||
}
|
||||
FUN_14003e8b0(plVar7);
|
||||
plVar6 = plVar7;
|
||||
}
|
||||
pplVar9 = pplVar10;
|
||||
pplVar12 = local_118;
|
||||
iVar17 = (int)local_110;
|
||||
}
|
||||
if ((((pplVar16 != (longlong **)0x0) &&
|
||||
(*(char *)((longlong)pplVar16 + 0x684) == '\0')) &&
|
||||
(*(char *)(pplVar16 + 0xc1) != '\x01')) &&
|
||||
((pplVar16[3] != (longlong *)0x0 && (*pplVar16[3] != 0)))) {
|
||||
local_a8 = Proud::AddrPort::vftable;
|
||||
local_a0 = *(uint *)(pplVar16 + 0xb3);
|
||||
local_9c._0_2_ = *(undefined2 *)((longlong)pplVar16 + 0x59c);
|
||||
plVar6 = *(longlong **)(param_1 + 0x108);
|
||||
dVar21 = (double)(**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x108) + 0x70) +
|
||||
0x1c0))();
|
||||
uVar1 = (**(code **)(*plVar6 + 0x30))(plVar6);
|
||||
uVar2 = FUN_14008be40(uVar1,(char)*(uint *)local_100);
|
||||
plVar6 = (longlong *)FUN_1400cf2a0((longlong)pplVar16);
|
||||
param_4 = &local_a8;
|
||||
SVar14 = (SIZE_T)uVar2;
|
||||
pplVar9 = (longlong **)(ulonglong)*(uint *)local_100;
|
||||
FUN_1400d31e0((longlong)plVar6,*(uint *)local_100,SVar14,(longlong)param_4,
|
||||
(longlong)&local_178,dVar21,(undefined8 *)local_80);
|
||||
}
|
||||
}
|
||||
uVar18 = (int)pplVar19 + 1;
|
||||
pplVar19 = (longlong **)(ulonglong)uVar18;
|
||||
pplVar20 = (longlong **)((longlong)pplVar20 + 1);
|
||||
} while ((int)uVar18 < iVar17);
|
||||
}
|
||||
FUN_140074fb0((undefined4 *)local_f8);
|
||||
local_f8._48_8_ = Proud::AddrPort::vftable;
|
||||
local_b8 = 0;
|
||||
local_c0[0] = (word)DAT_14016f3d0;
|
||||
local_c0[1] = DAT_14016f3d0._2_2_;
|
||||
local_bc = DAT_14016f3d4;
|
||||
local_f8._40_2_ = 1;
|
||||
local_f8._42_2_ = 0;
|
||||
puVar8 = local_f8;
|
||||
FUN_140074a40((longlong)puVar8,pplVar9,SVar14,param_4);
|
||||
SVar14 = local_138 & 0xffffffff;
|
||||
if ((int)local_138 < 1) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(puVar8,pplVar9,SVar14,param_4);
|
||||
}
|
||||
local_f8._4_2_ = 0;
|
||||
local_f8._6_2_ = 0;
|
||||
pplVar11 = local_140;
|
||||
if (local_f8._8_8_ == 0) {
|
||||
if (local_f8._16_8_ == 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420(0,pplVar9,SVar14,param_4);
|
||||
}
|
||||
}
|
||||
else if (local_f8._16_8_ == 0) {
|
||||
if (local_f8._8_8_ == 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420(0,pplVar9,SVar14,param_4);
|
||||
}
|
||||
FUN_14002a110(local_f8._8_8_,local_140,SVar14);
|
||||
goto LAB_1400c26a9;
|
||||
}
|
||||
FUN_140029f40((longlong *)(local_f8 + 0x10),local_140,SVar14,param_4);
|
||||
LAB_1400c26a9:
|
||||
FUN_14002a180((longlong)local_f8,pplVar11,SVar14,param_4);
|
||||
FUN_1400c6270((IMAGE_DOS_HEADER *)param_1,param_2,(IMAGE_DOS_HEADER *)local_f8,param_4);
|
||||
local_res20 = (longlong *)(local_f8 + 8);
|
||||
FUN_14008a320((longlong *)(local_f8 + 8));
|
||||
if (local_f8._16_8_ != 0) {
|
||||
if ((int)local_f8._28_4_ < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
local_f8._24_2_ = 0;
|
||||
local_f8._26_2_ = 0;
|
||||
}
|
||||
local_res20 = &local_170;
|
||||
FUN_14008a320(&local_170);
|
||||
if (local_168 != 0) {
|
||||
if (local_15c < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
local_160 = 0;
|
||||
}
|
||||
uVar4 = FUN_140049e40(&local_150);
|
||||
if (pplVar12 != (longlong **)0x0) {
|
||||
if (local_120 == (longlong **)0x0) {
|
||||
uVar4 = FUN_14003e8b0(pplVar12);
|
||||
}
|
||||
else {
|
||||
uVar4 = (*(code *)(*local_120)[3])(local_120,pplVar12);
|
||||
}
|
||||
}
|
||||
return CONCAT71((int7)((ulonglong)uVar4 >> 8),1);
|
||||
}
|
||||
}
|
||||
in_RAX = FUN_140049e40(&local_150);
|
||||
if (pplVar12 == (longlong **)0x0) goto LAB_1400c279b;
|
||||
if (local_120 == (longlong **)0x0) goto LAB_1400c2793;
|
||||
plVar6 = *local_120;
|
||||
pplVar9 = local_120;
|
||||
}
|
||||
in_RAX = (*(code *)plVar6[3])(pplVar9,pplVar12);
|
||||
LAB_1400c279b:
|
||||
return in_RAX & 0xffffffffffffff00;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue