decompiled agent_release
This commit is contained in:
parent
baac905ef2
commit
11a3488883
6439 changed files with 229565 additions and 1 deletions
346
decomp/Agent_Release_x64/full/functions/0x1400a7de0.c
Normal file
346
decomp/Agent_Release_x64/full/functions/0x1400a7de0.c
Normal file
|
|
@ -0,0 +1,346 @@
|
|||
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400a7de0 FUN_1400a7de0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
/* WARNING: Type propagation algorithm not settling */
|
||||
|
||||
void FUN_1400a7de0(undefined ***param_1,uint *param_2,undefined8 param_3,undefined8 param_4)
|
||||
|
||||
{
|
||||
undefined **ppuVar1;
|
||||
undefined8 *puVar2;
|
||||
uint uVar3;
|
||||
uint uVar4;
|
||||
undefined8 uVar5;
|
||||
ulonglong uVar6;
|
||||
uint *puVar7;
|
||||
longlong *plVar8;
|
||||
undefined ***pppuVar9;
|
||||
undefined **ppuVar10;
|
||||
uint uVar11;
|
||||
int iVar12;
|
||||
ulonglong uVar13;
|
||||
undefined8 uVar14;
|
||||
undefined1 *puVar15;
|
||||
IMAGE_DOS_HEADER *pIVar16;
|
||||
IMAGE_DOS_HEADER *pIVar17;
|
||||
undefined ***pppuVar18;
|
||||
uint uVar19;
|
||||
uint uVar20;
|
||||
undefined1 auStackY_df8 [32];
|
||||
undefined **local_dc8;
|
||||
ulonglong *local_dc0;
|
||||
uint local_db8;
|
||||
uint local_db4;
|
||||
uint local_db0 [2];
|
||||
undefined1 *local_da8;
|
||||
longlong local_da0 [4];
|
||||
longlong *local_d80;
|
||||
undefined8 local_d78;
|
||||
undefined4 local_d6c;
|
||||
undefined1 local_d68 [88];
|
||||
undefined **local_d10;
|
||||
byte local_d08 [32];
|
||||
undefined ***local_ce8;
|
||||
undefined1 local_ce0;
|
||||
longlong local_cd8 [2];
|
||||
undefined1 local_cc8 [3216];
|
||||
ulonglong local_38;
|
||||
|
||||
local_cd8[1] = 0xfffffffffffffffe;
|
||||
local_38 = DAT_1401555a0 ^ (ulonglong)auStackY_df8;
|
||||
(**(code **)(param_1[0x21][0xf] + 0x10))();
|
||||
uVar5 = FUN_140081090(param_2,local_db0,param_3,param_4);
|
||||
if ((char)uVar5 == '\0') {
|
||||
return;
|
||||
}
|
||||
uVar14 = 4;
|
||||
uVar5 = FUN_140080600(param_2,(undefined8 *)&local_db4,4);
|
||||
if ((char)uVar5 == '\0') {
|
||||
return;
|
||||
}
|
||||
uVar6 = FUN_140080ca0(param_2,&local_da8,uVar14,param_4);
|
||||
if ((char)uVar6 == '\0') {
|
||||
return;
|
||||
}
|
||||
if ((int)(uint)local_da8 < 0) {
|
||||
return;
|
||||
}
|
||||
if (DAT_140155140 <= (int)(uint)local_da8) {
|
||||
return;
|
||||
}
|
||||
FUN_1400806d0((undefined4 *)(local_d68 + 0x28));
|
||||
uVar5 = FUN_140080930(param_2,(int *)(local_d68 + 0x28),(uint)local_da8,param_4);
|
||||
if ((char)uVar5 == '\0') {
|
||||
local_da8 = local_d68 + 0x30;
|
||||
FUN_140095270((longlong *)(local_d68 + 0x30));
|
||||
if (local_d68._56_8_ == 0) {
|
||||
return;
|
||||
}
|
||||
if (-1 < (int)local_d68._68_4_) {
|
||||
return;
|
||||
}
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14002f590();
|
||||
}
|
||||
uVar6 = (ulonglong)local_db0[0];
|
||||
FUN_140070860((longlong *)param_1[0x21],(longlong *)&local_dc0,local_db0[0]);
|
||||
if ((((local_dc0 == (ulonglong *)0x0) || (uVar13 = *local_dc0, uVar13 == 0)) ||
|
||||
(*(char *)(uVar13 + 0x684) != '\0')) || (*(char *)(uVar13 + 0x650) != '\0'))
|
||||
goto LAB_1400a8320;
|
||||
local_d78 = (**(code **)(param_1[0x21][0x11] + 0x18))();
|
||||
uVar13 = 0;
|
||||
uVar19 = 0;
|
||||
local_da0[3] = 0;
|
||||
local_da0[2] = 0;
|
||||
local_da0[1] = 0;
|
||||
local_d80 = (longlong *)0x0;
|
||||
local_da0[0] = 0;
|
||||
uVar20 = 0;
|
||||
local_d6c = 0;
|
||||
FUN_140041760((longlong)local_cc8,(longlong)(local_d68 + 0x28),uVar6);
|
||||
plVar8 = local_da0;
|
||||
puVar15 = local_cc8;
|
||||
uVar6 = (ulonglong)local_db4;
|
||||
FUN_1400a2980(param_1[0x21][0x9c],uVar6,(SIZE_T)puVar15,(undefined4 *)plVar8);
|
||||
FUN_140040950((longlong)local_cc8,uVar6,puVar15,plVar8);
|
||||
local_d68._8_2_ = 0;
|
||||
local_d68._10_2_ = 0;
|
||||
local_d68._12_2_ = 0;
|
||||
local_d68._14_2_ = 0;
|
||||
local_d68._16_8_ = 0;
|
||||
local_d68._24_2_ = 0;
|
||||
local_d68._26_2_ = 0;
|
||||
local_d68._28_2_ = 0;
|
||||
local_d68._30_2_ = 0;
|
||||
local_d68._0_8_ = Proud::CReceivedMessageList::vftable;
|
||||
local_d68._32_2_ = 1000;
|
||||
local_d68._34_2_ = 0;
|
||||
local_d68._36_2_ = 1;
|
||||
local_d68._38_2_ = 0;
|
||||
uVar6 = uVar13;
|
||||
if (local_dc0 != (ulonglong *)0x0) {
|
||||
uVar6 = *local_dc0;
|
||||
}
|
||||
pppuVar9 = (undefined ***)(uVar6 + 0x638);
|
||||
pppuVar18 = (undefined ***)&local_db8;
|
||||
pIVar16 = (IMAGE_DOS_HEADER *)local_d68;
|
||||
plVar8 = local_da0;
|
||||
FUN_1400b8570((longlong)pppuVar9,plVar8,(longlong)pIVar16,(undefined4 *)pppuVar18);
|
||||
if (local_db8 != 0) {
|
||||
FUN_140030200(pppuVar9,plVar8,pIVar16,pppuVar18);
|
||||
local_dc8 = (undefined **)PTR_DAT_140155010;
|
||||
uVar3 = FUN_140030080(L"Stream Extract Error at Reliable UDP");
|
||||
uVar6 = uVar13;
|
||||
if ((local_dc8 != (undefined **)0x0) &&
|
||||
(uVar6 = 0, local_dc8 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar6 = (ulonglong)*(uint *)(local_dc8 + -1);
|
||||
}
|
||||
uVar4 = uVar3;
|
||||
if ((((int)uVar3 <= (int)uVar6) && (uVar4 = uVar20, local_dc8 != (undefined **)0x0)) &&
|
||||
(local_dc8 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar4 = *(uint *)(local_dc8 + -1);
|
||||
}
|
||||
uVar11 = 1;
|
||||
if (1 < (int)uVar4) {
|
||||
uVar11 = uVar4;
|
||||
}
|
||||
uVar4 = uVar20;
|
||||
if ((local_dc8 != (undefined **)0x0) && (local_dc8 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar4 = *(uint *)(local_dc8 + -1);
|
||||
}
|
||||
if ((int)uVar4 < (int)uVar11) {
|
||||
if (local_dc8 == (undefined **)0x0) {
|
||||
local_dc8 = (undefined **)PTR_DAT_140155010;
|
||||
}
|
||||
if ((int)uVar11 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14002f590();
|
||||
}
|
||||
if (uVar11 == 0) {
|
||||
FUN_140003240((longlong *)&local_dc8,PTR_DAT_140155010,uVar6,pppuVar18);
|
||||
}
|
||||
else {
|
||||
uVar4 = uVar20;
|
||||
if ((local_dc8 != (undefined **)0x0) && (local_dc8 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar4 = *(uint *)(local_dc8 + -1);
|
||||
}
|
||||
if (uVar11 != uVar4) {
|
||||
puVar7 = (uint *)FUN_140030280((longlong)(int)uVar11 * 2 + 10);
|
||||
if (puVar7 != (uint *)0x0) {
|
||||
*puVar7 = 0;
|
||||
puVar7[1] = 1;
|
||||
}
|
||||
*puVar7 = uVar11;
|
||||
uVar4 = uVar20;
|
||||
if ((local_dc8 != (undefined **)0x0) && (local_dc8 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar4 = *(uint *)(local_dc8 + -1);
|
||||
}
|
||||
ppuVar10 = (undefined **)PTR_DAT_140155010;
|
||||
if ((int)uVar11 < (int)uVar4) {
|
||||
LAB_1400a80ee:
|
||||
if (local_dc8 != (undefined **)0x0) {
|
||||
ppuVar10 = local_dc8;
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar11 = uVar20;
|
||||
if (local_dc8 != (undefined **)0x0) {
|
||||
if (local_dc8 != (undefined **)PTR_DAT_140155010) {
|
||||
uVar11 = *(uint *)(local_dc8 + -1);
|
||||
}
|
||||
goto LAB_1400a80ee;
|
||||
}
|
||||
}
|
||||
uVar6 = (ulonglong)uVar11;
|
||||
FUN_1400300b0(puVar7 + 2,ppuVar10,uVar11);
|
||||
FUN_140003240((longlong *)&local_dc8,ppuVar10,uVar6,pppuVar18);
|
||||
local_dc8 = (undefined **)(puVar7 + 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
FUN_140002ea0((longlong *)&local_dc8);
|
||||
ppuVar10 = local_dc8;
|
||||
if (local_dc8 == (undefined **)0x0) {
|
||||
ppuVar10 = (undefined **)PTR_DAT_140155010;
|
||||
}
|
||||
FUN_1400300b0(ppuVar10,L"Stream Extract Error at Reliable UDP",uVar3);
|
||||
ppuVar10 = local_dc8;
|
||||
if (local_dc8 == (undefined **)0x0) {
|
||||
ppuVar10 = (undefined **)PTR_DAT_140155010;
|
||||
}
|
||||
uVar3 = FUN_140030080((short *)ppuVar10);
|
||||
uVar20 = uVar19;
|
||||
if (0 < (int)uVar3) {
|
||||
uVar20 = uVar3;
|
||||
}
|
||||
uVar3 = uVar19;
|
||||
if ((local_dc8 != (undefined **)0x0) && (local_dc8 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar3 = *(uint *)(local_dc8 + -1);
|
||||
}
|
||||
if (((int)uVar20 < (int)uVar3) || (uVar20 = uVar19, local_dc8 == (undefined **)0x0)) {
|
||||
LAB_1400a818a:
|
||||
if (((local_dc8 != (undefined **)PTR_DAT_140155010) && (local_dc8 != (undefined **)0x0)) &&
|
||||
(local_dc8 + -1 != (undefined **)0x0)) {
|
||||
*(uint *)(local_dc8 + -1) = uVar20;
|
||||
*(undefined2 *)((longlong)local_dc8 + (longlong)(int)uVar20 * 2) = 0;
|
||||
}
|
||||
}
|
||||
else if (local_dc8 != (undefined **)PTR_DAT_140155010) {
|
||||
uVar20 = *(uint *)(local_dc8 + -1);
|
||||
goto LAB_1400a818a;
|
||||
}
|
||||
local_d08[0] = 0;
|
||||
local_d08[1] = 0;
|
||||
local_d08[2] = 0;
|
||||
local_d08[3] = 0;
|
||||
local_d08[4] = 0;
|
||||
local_d08[5] = 0;
|
||||
local_d08[6] = 0;
|
||||
local_d08[7] = 0;
|
||||
local_d08[8] = 0;
|
||||
local_d08[9] = 0;
|
||||
local_d08[10] = 0;
|
||||
local_d08[0xb] = 0;
|
||||
local_d08[0xc] = 0;
|
||||
local_d08[0xd] = 0;
|
||||
local_d08[0xe] = 0;
|
||||
local_d08[0xf] = 0;
|
||||
local_d08[0x10] = 0;
|
||||
local_d08[0x11] = 0;
|
||||
local_d08[0x12] = 0;
|
||||
local_d08[0x13] = 0;
|
||||
local_d08[0x14] = 0;
|
||||
local_d08[0x15] = 0;
|
||||
local_d08[0x16] = 0;
|
||||
local_d08[0x17] = 0;
|
||||
local_d08[0x18] = 0;
|
||||
local_d08[0x19] = 0;
|
||||
local_d08[0x1a] = 0;
|
||||
local_d08[0x1b] = 0;
|
||||
local_d08[0x1c] = 0;
|
||||
local_d08[0x1d] = 0;
|
||||
local_d08[0x1e] = 0;
|
||||
local_d08[0x1f] = 0;
|
||||
local_d10 = Proud::ByteArray::vftable;
|
||||
uVar6 = uVar13;
|
||||
if (local_dc0 != (ulonglong *)0x0) {
|
||||
uVar6 = *local_dc0;
|
||||
}
|
||||
pppuVar18 = &local_dc8;
|
||||
plVar8 = FUN_14003c120(local_cd8,(ulonglong)local_db8,(ulonglong)*(uint *)(uVar6 + 0x56c),
|
||||
(longlong *)pppuVar18,(longlong)&local_d10);
|
||||
pIVar16 = (IMAGE_DOS_HEADER *)*param_1[0x21];
|
||||
(**(code **)(pIVar16 + 1))();
|
||||
pppuVar9 = &local_d10;
|
||||
FUN_14003b870(pppuVar9);
|
||||
ppuVar10 = local_dc8;
|
||||
if (((local_dc8 != (undefined **)0x0) && (local_dc8 != (undefined **)PTR_DAT_140155010)) &&
|
||||
(ppuVar1 = local_dc8 + -1, ppuVar1 != (undefined **)0x0)) {
|
||||
pppuVar9 = (undefined ***)FUN_140030200(pppuVar9,plVar8,pIVar16,pppuVar18);
|
||||
local_ce8 = pppuVar9;
|
||||
FUN_14002e6e0((int *)pppuVar9);
|
||||
local_ce0 = 1;
|
||||
puVar7 = (uint *)((longlong)ppuVar10 + -4);
|
||||
*puVar7 = *puVar7 - 1;
|
||||
if (*puVar7 == 0) {
|
||||
FUN_1400302f0(ppuVar1);
|
||||
}
|
||||
FUN_14002e770((longlong)pppuVar9);
|
||||
local_ce0 = 0;
|
||||
}
|
||||
local_dc8 = (undefined **)PTR_DAT_140155010;
|
||||
}
|
||||
while (iVar12 = (int)uVar13, iVar12 != local_d68._24_4_) {
|
||||
if ((iVar12 < 0) || ((int)local_d68._24_4_ <= iVar12)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14002f5c0(pppuVar9,plVar8,pIVar16,pppuVar18);
|
||||
}
|
||||
pIVar17 = (IMAGE_DOS_HEADER *)(local_d68._16_8_ + (longlong)iVar12 * 0x48);
|
||||
pIVar17->e_program[0] = 1;
|
||||
FUN_1400802d0((int *)pIVar17,0,pIVar16,pppuVar18);
|
||||
plVar8 = (longlong *)0x0;
|
||||
pppuVar9 = param_1;
|
||||
FUN_1400aa720((IMAGE_DOS_HEADER *)param_1,(IMAGE_DOS_HEADER *)0x0,pIVar17,pppuVar18);
|
||||
if ((int)local_d68._24_4_ <= iVar12) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14002f5c0(pppuVar9,plVar8,pIVar17,pppuVar18);
|
||||
}
|
||||
pIVar16 = pIVar17;
|
||||
uVar13 = (ulonglong)(iVar12 + 1);
|
||||
}
|
||||
FUN_140089980((undefined8 *)local_d68);
|
||||
if (local_d80 != (longlong *)0x0) {
|
||||
plVar8 = local_d80 + 1;
|
||||
*plVar8 = *plVar8 + -1;
|
||||
if (*plVar8 == 0) {
|
||||
FUN_140043d50((longlong)&local_d80,local_d80);
|
||||
}
|
||||
}
|
||||
local_d68._80_8_ = local_da0 + 1;
|
||||
FUN_140095270(local_da0 + 1);
|
||||
if (local_da0[2] != 0) {
|
||||
if (local_da0[3] < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14002f590();
|
||||
}
|
||||
local_da0[3] = local_da0[3] & 0xffffffff00000000;
|
||||
}
|
||||
LAB_1400a8320:
|
||||
if ((local_dc0 != (ulonglong *)0x0) && (local_dc0[1] = local_dc0[1] - 1, local_dc0[1] == 0)) {
|
||||
puVar2 = (undefined8 *)*local_dc0;
|
||||
if (puVar2 != (undefined8 *)0x0) {
|
||||
(**(code **)*puVar2)(puVar2,1);
|
||||
}
|
||||
FUN_1400302f0(local_dc0);
|
||||
}
|
||||
local_d68._80_8_ = local_d68 + 0x30;
|
||||
FUN_140095270((longlong *)(local_d68 + 0x30));
|
||||
if ((local_d68._56_8_ != 0) && ((int)local_d68._68_4_ < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14002f590();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue