add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
421
decomp/AgentManager_Release_x64/full/functions/0x1400c3ef0.c
Normal file
421
decomp/AgentManager_Release_x64/full/functions/0x1400c3ef0.c
Normal file
|
|
@ -0,0 +1,421 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400c3ef0 FUN_1400c3ef0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
void FUN_1400c3ef0(undefined ***param_1,longlong *param_2,uint *param_3,undefined8 param_4)
|
||||
|
||||
{
|
||||
undefined **ppuVar1;
|
||||
longlong lVar2;
|
||||
undefined8 *puVar3;
|
||||
uint uVar4;
|
||||
uint uVar5;
|
||||
undefined8 uVar6;
|
||||
ulonglong uVar7;
|
||||
uint *puVar8;
|
||||
longlong *plVar9;
|
||||
undefined **ppuVar10;
|
||||
undefined ***pppuVar11;
|
||||
void *pvVar12;
|
||||
longlong **pplVar13;
|
||||
int iVar14;
|
||||
void *pvVar15;
|
||||
uint uVar16;
|
||||
undefined8 uVar17;
|
||||
SIZE_T SVar18;
|
||||
IMAGE_DOS_HEADER *pIVar19;
|
||||
void *_Dst;
|
||||
undefined ***pppuVar20;
|
||||
uint uVar21;
|
||||
uint uVar22;
|
||||
undefined **local_res18;
|
||||
uint local_res20 [2];
|
||||
undefined **local_128;
|
||||
longlong *local_120;
|
||||
undefined4 local_118;
|
||||
undefined4 local_114;
|
||||
undefined2 *local_110;
|
||||
void *local_108;
|
||||
undefined8 local_100;
|
||||
longlong *local_f8;
|
||||
undefined8 local_f0;
|
||||
undefined4 local_e4;
|
||||
undefined4 local_e0 [2];
|
||||
int local_d8 [2];
|
||||
undefined *local_d0;
|
||||
void *local_c8;
|
||||
uint local_c0;
|
||||
int local_bc;
|
||||
undefined1 local_b0 [48];
|
||||
undefined **local_80;
|
||||
undefined8 local_78;
|
||||
byte local_70 [24];
|
||||
undefined ***local_58;
|
||||
byte local_50;
|
||||
longlong local_48;
|
||||
undefined2 **local_40;
|
||||
byte local_38 [16];
|
||||
|
||||
local_38[0] = 0xfe;
|
||||
local_38[1] = 0xff;
|
||||
local_38[2] = 0xff;
|
||||
local_38[3] = 0xff;
|
||||
local_38[4] = 0xff;
|
||||
local_38[5] = 0xff;
|
||||
local_38[6] = 0xff;
|
||||
local_38[7] = 0xff;
|
||||
if (param_3[10] != 1) {
|
||||
return;
|
||||
}
|
||||
puVar8 = param_3;
|
||||
(**(code **)(param_1[0x21][0xf] + 0x10))();
|
||||
uVar6 = FUN_140075970(param_3,local_res20,puVar8,param_4);
|
||||
if ((char)uVar6 == '\0') {
|
||||
return;
|
||||
}
|
||||
uVar17 = 4;
|
||||
uVar6 = FUN_140074ee0(param_3,(undefined8 *)local_e0,4);
|
||||
if ((char)uVar6 == '\0') {
|
||||
return;
|
||||
}
|
||||
uVar7 = FUN_140075580(param_3,(undefined8 *)(local_b0 + 0x28),uVar17,param_4);
|
||||
if ((char)uVar7 == '\0') {
|
||||
return;
|
||||
}
|
||||
if ((int)local_b0._40_4_ < 0) {
|
||||
return;
|
||||
}
|
||||
if (DAT_14016f140 <= (int)local_b0._40_4_) {
|
||||
return;
|
||||
}
|
||||
FUN_140074fb0(local_d8);
|
||||
uVar6 = FUN_140075210(param_3,local_d8,local_b0._40_4_,param_4);
|
||||
if ((char)uVar6 == '\0') {
|
||||
local_res18 = &local_d0;
|
||||
FUN_14008a320((longlong *)&local_d0);
|
||||
if (local_c8 == (void *)0x0) {
|
||||
return;
|
||||
}
|
||||
if (-1 < local_bc) {
|
||||
return;
|
||||
}
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
SVar18 = (SIZE_T)local_res20[0];
|
||||
pplVar13 = &local_120;
|
||||
FUN_1400a7920((longlong *)param_1[0x21],(longlong *)pplVar13,local_res20[0]);
|
||||
if ((((local_120 == (longlong *)0x0) || (lVar2 = *local_120, lVar2 == 0)) ||
|
||||
(*(char *)(lVar2 + 0x684) != '\0')) || (*(char *)(lVar2 + 0x650) != '\0')) goto LAB_1400c44f9;
|
||||
ppuVar10 = param_1[0x21] + 0x11;
|
||||
local_f0 = (**(code **)(*ppuVar10 + 0x18))();
|
||||
pvVar15 = (void *)0x0;
|
||||
uVar21 = 0;
|
||||
local_100 = 0;
|
||||
local_108 = (void *)0x0;
|
||||
local_110 = (undefined2 *)0x0;
|
||||
local_f8 = (longlong *)0x0;
|
||||
uVar22 = 0;
|
||||
local_e4 = 0;
|
||||
local_118 = 1;
|
||||
local_114 = local_e0[0];
|
||||
local_110 = FUN_14008a360(ppuVar10,pplVar13,SVar18);
|
||||
*(undefined8 *)(local_110 + 0x14) = 1;
|
||||
if (local_d0 == (undefined *)0x0) {
|
||||
uVar4 = local_c0;
|
||||
if (local_c8 == (void *)0x0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420(ppuVar10,0,SVar18,param_4);
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar4 = *(uint *)(local_d0 + 0x18);
|
||||
}
|
||||
if ((int)uVar4 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
if (local_108 == (void *)0x0) {
|
||||
if ((int)uVar4 < 1) {
|
||||
if (local_110 == (undefined2 *)0x0) goto LAB_1400c4105;
|
||||
uVar4 = 0;
|
||||
}
|
||||
else if (local_110 == (undefined2 *)0x0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420((ulonglong)uVar4,local_c8,SVar18,0);
|
||||
}
|
||||
FUN_14002a050((longlong)local_110,uVar4,SVar18);
|
||||
}
|
||||
else {
|
||||
if (local_100._4_4_ < (int)uVar4) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
local_100 = CONCAT44(local_100._4_4_,uVar4);
|
||||
}
|
||||
LAB_1400c4105:
|
||||
if (local_d0 == (undefined *)0x0) {
|
||||
if (local_c8 == (void *)0x0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420(local_110,0,SVar18,local_108);
|
||||
}
|
||||
}
|
||||
else {
|
||||
local_c0 = *(uint *)(local_d0 + 0x18);
|
||||
}
|
||||
pvVar12 = local_c8;
|
||||
if (local_c8 == (void *)0x0) {
|
||||
if (local_d0 == (undefined *)0x0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420(local_110,0,(ulonglong)local_c0,local_108);
|
||||
}
|
||||
pvVar12 = pvVar15;
|
||||
if (*(int *)(local_d0 + 0x18) != 0) {
|
||||
pvVar12 = *(void **)(local_d0 + 0x10);
|
||||
}
|
||||
}
|
||||
_Dst = local_108;
|
||||
if (local_108 == (void *)0x0) {
|
||||
if (local_110 == (undefined2 *)0x0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14008a420(0,pvVar12,(ulonglong)local_c0,0);
|
||||
}
|
||||
_Dst = pvVar15;
|
||||
if (*(int *)(local_110 + 0xc) != 0) {
|
||||
_Dst = *(void **)(local_110 + 8);
|
||||
}
|
||||
}
|
||||
memcpy(_Dst,pvVar12,(longlong)(int)local_c0);
|
||||
local_b0._8_2_ = 0;
|
||||
local_b0._10_2_ = 0;
|
||||
local_b0._12_2_ = 0;
|
||||
local_b0._14_2_ = 0;
|
||||
local_b0._16_8_ = 0;
|
||||
local_b0._24_2_ = 0;
|
||||
local_b0._26_2_ = 0;
|
||||
local_b0._28_2_ = 0;
|
||||
local_b0._30_2_ = 0;
|
||||
local_b0._0_8_ = Proud::CReceivedMessageList::vftable;
|
||||
local_b0._32_2_ = 1000;
|
||||
local_b0._34_2_ = 0;
|
||||
local_b0._36_2_ = 1;
|
||||
local_b0._38_2_ = 0;
|
||||
pvVar12 = pvVar15;
|
||||
if (local_120 != (longlong *)0x0) {
|
||||
pvVar12 = (void *)*local_120;
|
||||
}
|
||||
pppuVar11 = (undefined ***)((longlong)pvVar12 + 0x638);
|
||||
pppuVar20 = &local_res18;
|
||||
pIVar19 = (IMAGE_DOS_HEADER *)local_b0;
|
||||
plVar9 = (longlong *)&local_118;
|
||||
FUN_1400d42c0((longlong)pppuVar11,plVar9,(longlong)pIVar19,(undefined4 *)pppuVar20);
|
||||
if ((int)local_res18 != 0) {
|
||||
FUN_14003e7c0(pppuVar11,plVar9,pIVar19,pppuVar20);
|
||||
local_128 = (undefined **)PTR_DAT_14016f010;
|
||||
uVar4 = FUN_14003e620(L"Stream Extract Error at Reliable UDP");
|
||||
pvVar12 = pvVar15;
|
||||
if ((local_128 != (undefined **)0x0) &&
|
||||
(pvVar12 = (void *)0x0, local_128 != (undefined **)PTR_DAT_14016f010)) {
|
||||
pvVar12 = (void *)(ulonglong)*(uint *)(local_128 + -1);
|
||||
}
|
||||
uVar5 = uVar4;
|
||||
if ((((int)uVar4 <= (int)pvVar12) && (uVar5 = uVar22, local_128 != (undefined **)0x0)) &&
|
||||
(local_128 != (undefined **)PTR_DAT_14016f010)) {
|
||||
uVar5 = *(uint *)(local_128 + -1);
|
||||
}
|
||||
uVar16 = 1;
|
||||
if (1 < (int)uVar5) {
|
||||
uVar16 = uVar5;
|
||||
}
|
||||
uVar5 = uVar22;
|
||||
if ((local_128 != (undefined **)0x0) && (local_128 != (undefined **)PTR_DAT_14016f010)) {
|
||||
uVar5 = *(uint *)(local_128 + -1);
|
||||
}
|
||||
if ((int)uVar5 < (int)uVar16) {
|
||||
if (local_128 == (undefined **)0x0) {
|
||||
local_128 = (undefined **)PTR_DAT_14016f010;
|
||||
}
|
||||
if ((int)uVar16 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
if (uVar16 == 0) {
|
||||
FUN_140002190((longlong *)&local_128,PTR_DAT_14016f010,pvVar12,pppuVar20);
|
||||
}
|
||||
else {
|
||||
uVar5 = uVar22;
|
||||
if ((local_128 != (undefined **)0x0) && (local_128 != (undefined **)PTR_DAT_14016f010)) {
|
||||
uVar5 = *(uint *)(local_128 + -1);
|
||||
}
|
||||
if (uVar16 != uVar5) {
|
||||
puVar8 = (uint *)FUN_14003e840((longlong)(int)uVar16 * 2 + 10);
|
||||
if (puVar8 != (uint *)0x0) {
|
||||
*puVar8 = 0;
|
||||
puVar8[1] = 1;
|
||||
}
|
||||
*puVar8 = uVar16;
|
||||
uVar5 = uVar22;
|
||||
if ((local_128 != (undefined **)0x0) && (local_128 != (undefined **)PTR_DAT_14016f010)) {
|
||||
uVar5 = *(uint *)(local_128 + -1);
|
||||
}
|
||||
ppuVar10 = (undefined **)PTR_DAT_14016f010;
|
||||
if ((int)uVar16 < (int)uVar5) {
|
||||
LAB_1400c42b5:
|
||||
if (local_128 != (undefined **)0x0) {
|
||||
ppuVar10 = local_128;
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar16 = uVar22;
|
||||
if (local_128 != (undefined **)0x0) {
|
||||
if (local_128 != (undefined **)PTR_DAT_14016f010) {
|
||||
uVar16 = *(uint *)(local_128 + -1);
|
||||
}
|
||||
goto LAB_1400c42b5;
|
||||
}
|
||||
}
|
||||
uVar7 = (ulonglong)uVar16;
|
||||
FUN_14003e650(puVar8 + 2,ppuVar10,uVar16);
|
||||
FUN_140002190((longlong *)&local_128,ppuVar10,uVar7,pppuVar20);
|
||||
local_128 = (undefined **)(puVar8 + 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
FUN_140001df0((longlong *)&local_128);
|
||||
ppuVar10 = local_128;
|
||||
if (local_128 == (undefined **)0x0) {
|
||||
ppuVar10 = (undefined **)PTR_DAT_14016f010;
|
||||
}
|
||||
FUN_14003e650(ppuVar10,L"Stream Extract Error at Reliable UDP",uVar4);
|
||||
ppuVar10 = local_128;
|
||||
if (local_128 == (undefined **)0x0) {
|
||||
ppuVar10 = (undefined **)PTR_DAT_14016f010;
|
||||
}
|
||||
uVar4 = FUN_14003e620((short *)ppuVar10);
|
||||
uVar22 = uVar21;
|
||||
if (0 < (int)uVar4) {
|
||||
uVar22 = uVar4;
|
||||
}
|
||||
uVar4 = uVar21;
|
||||
if ((local_128 != (undefined **)0x0) && (local_128 != (undefined **)PTR_DAT_14016f010)) {
|
||||
uVar4 = *(uint *)(local_128 + -1);
|
||||
}
|
||||
if (((int)uVar22 < (int)uVar4) || (uVar22 = uVar21, local_128 == (undefined **)0x0)) {
|
||||
LAB_1400c4351:
|
||||
if (((local_128 != (undefined **)PTR_DAT_14016f010) && (local_128 != (undefined **)0x0)) &&
|
||||
(local_128 + -1 != (undefined **)0x0)) {
|
||||
*(uint *)(local_128 + -1) = uVar22;
|
||||
*(undefined2 *)((longlong)local_128 + (longlong)(int)uVar22 * 2) = 0;
|
||||
}
|
||||
}
|
||||
else if (local_128 != (undefined **)PTR_DAT_14016f010) {
|
||||
uVar22 = *(uint *)(local_128 + -1);
|
||||
goto LAB_1400c4351;
|
||||
}
|
||||
local_78._0_2_ = 0;
|
||||
local_78._2_2_ = 0;
|
||||
local_78._4_4_ = 0;
|
||||
local_70[0] = 0;
|
||||
local_70[1] = 0;
|
||||
local_70[2] = 0;
|
||||
local_70[3] = 0;
|
||||
local_70[4] = 0;
|
||||
local_70[5] = 0;
|
||||
local_70[6] = 0;
|
||||
local_70[7] = 0;
|
||||
local_70[8] = 0;
|
||||
local_70[9] = 0;
|
||||
local_70[10] = 0;
|
||||
local_70[0xb] = 0;
|
||||
local_70[0xc] = 0;
|
||||
local_70[0xd] = 0;
|
||||
local_70[0xe] = 0;
|
||||
local_70[0xf] = 0;
|
||||
local_70[0x10] = 0;
|
||||
local_70[0x11] = 0;
|
||||
local_70[0x12] = 0;
|
||||
local_70[0x13] = 0;
|
||||
local_70[0x14] = 0;
|
||||
local_70[0x15] = 0;
|
||||
local_70[0x16] = 0;
|
||||
local_70[0x17] = 0;
|
||||
local_80 = Proud::ByteArray::vftable;
|
||||
pvVar12 = pvVar15;
|
||||
if (local_120 != (longlong *)0x0) {
|
||||
pvVar12 = (void *)*local_120;
|
||||
}
|
||||
pppuVar20 = &local_128;
|
||||
plVar9 = FUN_140071c20(&local_48,(ulonglong)local_res18 & 0xffffffff,
|
||||
(ulonglong)*(uint *)((longlong)pvVar12 + 0x56c),(longlong *)pppuVar20,
|
||||
(longlong)&local_80);
|
||||
pIVar19 = (IMAGE_DOS_HEADER *)*param_1[0x21];
|
||||
(**(code **)(pIVar19 + 1))();
|
||||
pppuVar11 = &local_80;
|
||||
FUN_140049e40(pppuVar11);
|
||||
ppuVar10 = local_128;
|
||||
if (((local_128 != (undefined **)0x0) && (local_128 != (undefined **)PTR_DAT_14016f010)) &&
|
||||
(ppuVar1 = local_128 + -1, ppuVar1 != (undefined **)0x0)) {
|
||||
pppuVar11 = (undefined ***)FUN_14003e7c0(pppuVar11,plVar9,pIVar19,pppuVar20);
|
||||
local_58 = pppuVar11;
|
||||
FUN_14003d040((int *)pppuVar11);
|
||||
local_50 = 1;
|
||||
puVar8 = (uint *)((longlong)ppuVar10 + -4);
|
||||
*puVar8 = *puVar8 - 1;
|
||||
if (*puVar8 == 0) {
|
||||
FUN_14003e8b0(ppuVar1);
|
||||
}
|
||||
FUN_14003d0d0((longlong)pppuVar11);
|
||||
local_50 = 0;
|
||||
}
|
||||
local_128 = (undefined **)PTR_DAT_14016f010;
|
||||
}
|
||||
while (iVar14 = (int)pvVar15, iVar14 != local_b0._24_4_) {
|
||||
if ((iVar14 < 0) || ((int)local_b0._24_4_ <= iVar14)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(pppuVar11,plVar9,pIVar19,pppuVar20);
|
||||
}
|
||||
pIVar19 = (IMAGE_DOS_HEADER *)(local_b0._16_8_ + (longlong)iVar14 * 0x48);
|
||||
pIVar19->e_program[0] = 1;
|
||||
pppuVar11 = param_1;
|
||||
plVar9 = param_2;
|
||||
FUN_1400c6270((IMAGE_DOS_HEADER *)param_1,(IMAGE_DOS_HEADER *)param_2,pIVar19,pppuVar20);
|
||||
if ((int)local_b0._24_4_ <= iVar14) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003def0(pppuVar11,plVar9,pIVar19,pppuVar20);
|
||||
}
|
||||
pvVar15 = (void *)(ulonglong)(iVar14 + 1);
|
||||
}
|
||||
FUN_14007e8f0((undefined8 *)local_b0);
|
||||
if (local_f8 != (longlong *)0x0) {
|
||||
plVar9 = local_f8 + 1;
|
||||
*plVar9 = *plVar9 + -1;
|
||||
if (*plVar9 == 0) {
|
||||
FUN_1400512a0((longlong)&local_f8,local_f8);
|
||||
}
|
||||
}
|
||||
local_40 = &local_110;
|
||||
FUN_14008a320((longlong *)&local_110);
|
||||
if (local_108 != (void *)0x0) {
|
||||
if ((longlong)local_100 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
local_100 = local_100 & 0xffffffff00000000;
|
||||
}
|
||||
LAB_1400c44f9:
|
||||
if ((local_120 != (longlong *)0x0) && (local_120[1] = local_120[1] + -1, local_120[1] == 0)) {
|
||||
puVar3 = (undefined8 *)*local_120;
|
||||
if (puVar3 != (undefined8 *)0x0) {
|
||||
(**(code **)*puVar3)(puVar3,1);
|
||||
}
|
||||
FUN_14003e8b0(local_120);
|
||||
}
|
||||
local_res18 = &local_d0;
|
||||
FUN_14008a320((longlong *)&local_d0);
|
||||
if ((local_c8 != (void *)0x0) && (local_bc < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue