decompiled agent_release

This commit is contained in:
Benjamin Palko 2026-10-14 16:45:19 -04:00
parent baac905ef2
commit 11a3488883
6439 changed files with 229565 additions and 1 deletions

View file

@ -0,0 +1,377 @@
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x1400ab530 FUN_1400ab530
* Pseudocode, not original source. */
void FUN_1400ab530(IMAGE_DOS_HEADER *param_1,longlong param_2,undefined **param_3,
undefined ***param_4)
{
undefined **ppuVar1;
longlong *plVar2;
int iVar3;
int iVar4;
int iVar5;
longlong lVar6;
longlong lVar7;
longlong *plVar8;
char cVar9;
uint uVar10;
uint uVar12;
longlong lVar13;
uint uVar11;
int *piVar14;
uint *puVar15;
int *piVar16;
undefined8 *puVar17;
longlong lVar18;
longlong *plVar19;
ulonglong uVar20;
undefined **ppuVar21;
longlong lVar22;
undefined ***pppuVar23;
int iVar24;
ulonglong uVar25;
uint uVar26;
undefined8 uVar27;
longlong **pplVar28;
uint uVar29;
undefined8 uVar30;
undefined8 uVar31;
undefined **local_res8;
undefined **local_res10;
longlong *local_res18;
undefined **local_50;
undefined8 local_48;
longlong local_40;
undefined8 local_38;
undefined4 local_30;
undefined4 local_2c;
lVar22 = param_2;
(**(code **)(*(longlong *)(*(longlong *)&param_1[2].e_cparhdr + 0x78) + 0x10))();
lVar18._0_2_ = param_1[2].e_cparhdr;
lVar18._2_2_ = param_1[2].e_minalloc;
lVar18._4_2_ = param_1[2].e_maxalloc;
lVar18._6_2_ = param_1[2].e_ss;
lVar13 = FUN_140064be0(lVar18);
*(undefined1 *)(lVar13 + 0xc0) = 0;
if (*(int *)(param_2 + 8) < 1) {
FUN_140030200(lVar18,lVar22,param_3,param_4);
local_res10 = (undefined **)PTR_DAT_140155010;
FUN_14001b7a0((longlong *)&local_res10,L"compeltedlength < 0 recvcomplete errorcode:%d",
(ulonglong)*(uint *)(param_2 + 0xc),param_4);
param_4 = &local_res10;
lVar22 = 0xb;
param_3 = (undefined **)0x3;
plVar19 = *(longlong **)&param_1[2].e_cparhdr;
FUN_14007dca0(plVar19,0xb,(undefined *)0x3,(longlong **)param_4);
iVar24._0_1_ = param_1[2].e_magic[0];
iVar24._1_1_ = param_1[2].e_magic[1];
iVar24._2_2_ = param_1[2].e_cblp;
if (iVar24 < 4) {
param_1->e_program[0] = 0;
param_1->e_program[1] = 0;
param_1->e_program[2] = 0;
param_1->e_program[3] = 0;
param_1[2].e_magic[0] = '\x04';
param_1[2].e_magic[1] = '\0';
param_1[2].e_cblp = 0;
plVar19 = (longlong *)(*(longlong *)&param_1[2].e_cparhdr + 0x70);
uVar30 = (**(code **)(*plVar19 + 0x1c0))();
param_1[1].e_magic[0] = (char)uVar30;
param_1[1].e_magic[1] = (char)((ulonglong)uVar30 >> 8);
param_1[1].e_cblp = (short)((ulonglong)uVar30 >> 0x10);
param_1[1].e_cp = (short)((ulonglong)uVar30 >> 0x20);
param_1[1].e_crlc = (short)((ulonglong)uVar30 >> 0x30);
param_1[1].e_program[0] = 0;
}
ppuVar21 = local_res10;
if (((local_res10 != (undefined **)0x0) && (local_res10 != (undefined **)PTR_DAT_140155010)) &&
(ppuVar1 = local_res10 + -1, ppuVar1 != (undefined **)0x0)) {
piVar14 = (int *)FUN_140030200(plVar19,lVar22,param_3,param_4);
FUN_14002e6e0(piVar14);
piVar16 = (int *)((longlong)ppuVar21 + -4);
*piVar16 = *piVar16 + -1;
if (*piVar16 == 0) {
FUN_1400302f0(ppuVar1);
}
FUN_14002e770((longlong)piVar14);
}
local_res10 = (undefined **)PTR_DAT_140155010;
goto LAB_1400aba47;
}
lVar13._0_2_ = param_1[2].e_cparhdr;
lVar13._2_2_ = param_1[2].e_minalloc;
lVar13._4_2_ = param_1[2].e_maxalloc;
lVar13._6_2_ = param_1[2].e_ss;
lVar18 = FUN_140064be0(lVar13);
uVar25 = 0;
uVar12 = 0;
uVar20 = uVar25;
if (*(ulonglong **)(lVar18 + 0x128) != (ulonglong *)0x0) {
uVar20 = **(ulonglong **)(lVar18 + 0x128);
}
cVar9 = FUN_140035730(uVar20);
uVar26 = 0;
if (cVar9 == '\0') {
uVar30 = (**(code **)(*(longlong *)(*(longlong *)&param_1[2].e_cparhdr + 0x70) + 0x1c0))();
*(undefined8 *)(*(longlong *)&param_1[2].e_cparhdr + 0x18c0) = uVar30;
lVar22._0_2_ = param_1[2].e_cparhdr;
lVar22._2_2_ = param_1[2].e_minalloc;
lVar22._4_2_ = param_1[2].e_maxalloc;
lVar22._6_2_ = param_1[2].e_ss;
lVar18 = FUN_140064be0(lVar22);
uVar20 = uVar25;
if (*(ulonglong **)(lVar18 + 0x128) != (ulonglong *)0x0) {
uVar20 = **(ulonglong **)(lVar18 + 0x128);
}
puVar17 = (undefined8 *)FUN_140035710(uVar20);
lVar6._0_2_ = param_1[2].e_cparhdr;
lVar6._2_2_ = param_1[2].e_minalloc;
lVar6._4_2_ = param_1[2].e_maxalloc;
lVar6._6_2_ = param_1[2].e_ss;
lVar18 = FUN_140064be0(lVar6);
param_3 = (undefined **)(ulonglong)*(uint *)(param_2 + 8);
FUN_1400bbc90((longlong *)(lVar18 + 0x130),puVar17,(SIZE_T)param_3);
plVar19 = (longlong *)(*(longlong *)&param_1[2].e_cparhdr + 0x658);
*plVar19 = *plVar19 + (longlong)*(int *)(param_2 + 8);
local_48 = 0;
local_40 = 0;
local_38 = 0;
local_50 = Proud::CReceivedMessageList::vftable;
local_30 = 1000;
local_2c = 1;
pppuVar23 = &local_50;
plVar19 = *(longlong **)&param_1[2].e_cparhdr;
FUN_1400744e0(plVar19,(longlong)pppuVar23,param_3,param_4);
while (iVar24 = (int)uVar25, iVar24 != (int)local_38) {
if ((iVar24 < 0) || ((int)local_38 <= iVar24)) {
/* WARNING: Subroutine does not return */
FUN_14002f5c0(plVar19,pppuVar23,param_3,param_4);
}
pppuVar23 = (undefined ***)(local_40 + (longlong)iVar24 * 0x48);
lVar18 = *(longlong *)&param_1[2].e_cparhdr;
param_4 = (undefined ***)0x0;
param_3 = *(undefined ***)(lVar18 + 0x6f0);
puVar17 = FUN_1400a6640((longlong *)(lVar18 + 0x6e0),(undefined4 *)pppuVar23,param_3,0);
plVar19 = *(longlong **)(lVar18 + 0x6f0);
if (plVar19 == (longlong *)0x0) {
*(undefined8 **)(lVar18 + 0x6e8) = puVar17;
}
else {
*plVar19 = (longlong)puVar17;
}
*(undefined8 **)(lVar18 + 0x6f0) = puVar17;
if ((int)local_38 <= iVar24) {
/* WARNING: Subroutine does not return */
FUN_14002f5c0(plVar19,pppuVar23,param_3,param_4);
}
uVar25 = (ulonglong)(iVar24 + 1);
}
lVar22 = 0;
FUN_1400aadd0(param_1,(IMAGE_DOS_HEADER *)0x0,param_3,param_4);
FUN_140089980(&local_50);
goto LAB_1400aba47;
}
iVar3._0_1_ = param_1[2].e_magic[0];
iVar3._1_1_ = param_1[2].e_magic[1];
iVar3._2_2_ = param_1[2].e_cblp;
if (3 < iVar3) goto LAB_1400aba47;
FUN_140030200(uVar20,lVar22,param_3,param_4);
local_res8 = (undefined **)PTR_DAT_140155010;
uVar10 = FUN_140030080(L"close socket completion");
if ((local_res8 != (undefined **)0x0) &&
(uVar25 = 0, local_res8 != (undefined **)PTR_DAT_140155010)) {
uVar25 = (ulonglong)*(uint *)(local_res8 + -1);
}
uVar11 = uVar10;
if ((((int)uVar10 <= (int)uVar25) && (uVar11 = uVar26, local_res8 != (undefined **)0x0)) &&
(local_res8 != (undefined **)PTR_DAT_140155010)) {
uVar11 = *(uint *)(local_res8 + -1);
}
uVar29 = 1;
if (1 < (int)uVar11) {
uVar29 = uVar11;
}
uVar11 = uVar26;
if ((local_res8 != (undefined **)0x0) && (local_res8 != (undefined **)PTR_DAT_140155010)) {
uVar11 = *(uint *)(local_res8 + -1);
}
if ((int)uVar11 < (int)uVar29) {
if (local_res8 == (undefined **)0x0) {
local_res8 = (undefined **)PTR_DAT_140155010;
}
if ((int)uVar29 < 0) {
/* WARNING: Subroutine does not return */
FUN_14002f590();
}
if (uVar29 == 0) {
FUN_140003240((longlong *)&local_res8,PTR_DAT_140155010,uVar25,param_4);
}
else {
uVar11 = uVar26;
if ((local_res8 != (undefined **)0x0) && (local_res8 != (undefined **)PTR_DAT_140155010)) {
uVar11 = *(uint *)(local_res8 + -1);
}
if (uVar29 != uVar11) {
puVar15 = (uint *)FUN_140030280((longlong)(int)uVar29 * 2 + 10);
if (puVar15 != (uint *)0x0) {
*puVar15 = 0;
puVar15[1] = 1;
}
*puVar15 = uVar29;
uVar11 = uVar26;
if ((local_res8 != (undefined **)0x0) && (local_res8 != (undefined **)PTR_DAT_140155010)) {
uVar11 = *(uint *)(local_res8 + -1);
}
ppuVar21 = (undefined **)PTR_DAT_140155010;
if ((int)uVar29 < (int)uVar11) {
LAB_1400ab79c:
if (local_res8 != (undefined **)0x0) {
ppuVar21 = local_res8;
}
}
else {
uVar29 = uVar26;
if (local_res8 != (undefined **)0x0) {
if (local_res8 != (undefined **)PTR_DAT_140155010) {
uVar29 = *(uint *)(local_res8 + -1);
}
goto LAB_1400ab79c;
}
}
uVar20 = (ulonglong)uVar29;
FUN_1400300b0(puVar15 + 2,ppuVar21,uVar29);
FUN_140003240((longlong *)&local_res8,ppuVar21,uVar20,param_4);
local_res8 = (undefined **)(puVar15 + 2);
}
}
}
FUN_140002ea0((longlong *)&local_res8);
ppuVar21 = local_res8;
if (local_res8 == (undefined **)0x0) {
ppuVar21 = (undefined **)PTR_DAT_140155010;
}
FUN_1400300b0(ppuVar21,L"close socket completion",uVar10);
ppuVar21 = local_res8;
if (local_res8 == (undefined **)0x0) {
ppuVar21 = (undefined **)PTR_DAT_140155010;
}
uVar10 = FUN_140030080((short *)ppuVar21);
uVar26 = uVar12;
if (0 < (int)uVar10) {
uVar26 = uVar10;
}
uVar10 = uVar12;
if ((local_res8 != (undefined **)0x0) && (local_res8 != (undefined **)PTR_DAT_140155010)) {
uVar10 = *(uint *)(local_res8 + -1);
}
if (((int)uVar26 < (int)uVar10) || (uVar26 = uVar12, local_res8 == (undefined **)0x0)) {
LAB_1400ab82f:
if (((local_res8 != (undefined **)PTR_DAT_140155010) && (local_res8 != (undefined **)0x0)) &&
(local_res8 + -1 != (undefined **)0x0)) {
*(uint *)(local_res8 + -1) = uVar26;
*(undefined2 *)((longlong)local_res8 + (longlong)(int)uVar26 * 2) = 0;
}
}
else if (local_res8 != (undefined **)PTR_DAT_140155010) {
uVar26 = *(uint *)(local_res8 + -1);
goto LAB_1400ab82f;
}
param_4 = &local_res8;
lVar22 = 0xb;
param_3 = (undefined **)0x3;
plVar19 = *(longlong **)&param_1[2].e_cparhdr;
FUN_14007dca0(plVar19,0xb,(undefined *)0x3,(longlong **)param_4);
ppuVar21 = local_res8;
if (((local_res8 != (undefined **)0x0) && (local_res8 != (undefined **)PTR_DAT_140155010)) &&
(ppuVar1 = local_res8 + -1, ppuVar1 != (undefined **)0x0)) {
piVar16 = (int *)FUN_140030200(plVar19,lVar22,param_3,param_4);
FUN_14002e6e0(piVar16);
puVar15 = (uint *)((longlong)ppuVar21 + -4);
*puVar15 = *puVar15 - 1;
if (*puVar15 == 0) {
FUN_1400302f0(ppuVar1);
}
FUN_14002e770((longlong)piVar16);
}
local_res8 = (undefined **)PTR_DAT_140155010;
iVar4._0_1_ = param_1[2].e_magic[0];
iVar4._1_1_ = param_1[2].e_magic[1];
iVar4._2_2_ = param_1[2].e_cblp;
if (iVar4 < 4) {
param_1->e_program[0] = 0;
param_1->e_program[1] = 0;
param_1->e_program[2] = 0;
param_1->e_program[3] = 0;
param_1[2].e_magic[0] = '\x04';
param_1[2].e_magic[1] = '\0';
param_1[2].e_cblp = 0;
uVar30 = (**(code **)(*(longlong *)(*(longlong *)&param_1[2].e_cparhdr + 0x70) + 0x1c0))();
param_1[1].e_magic[0] = (char)uVar30;
param_1[1].e_magic[1] = (char)((ulonglong)uVar30 >> 8);
param_1[1].e_cblp = (short)((ulonglong)uVar30 >> 0x10);
param_1[1].e_cp = (short)((ulonglong)uVar30 >> 0x20);
param_1[1].e_crlc = (short)((ulonglong)uVar30 >> 0x30);
param_1[1].e_program[0] = 0;
}
LAB_1400aba47:
lVar18 = 0;
plVar19 = *(longlong **)(*(longlong *)&param_1[2].e_cparhdr + 0x5d0);
if (plVar19 != (longlong *)0x0) {
lVar18 = *plVar19;
}
if (*(int *)(lVar18 + 0x100) < 4) {
lVar7._0_2_ = param_1[2].e_cparhdr;
lVar7._2_2_ = param_1[2].e_minalloc;
lVar7._4_2_ = param_1[2].e_maxalloc;
lVar7._6_2_ = param_1[2].e_ss;
lVar18 = FUN_140064be0(lVar7);
uVar12 = FUN_1400b2a10(lVar18,lVar22,param_3,param_4);
if (uVar12 != 0) {
FUN_140030200(lVar18,lVar22,param_3,param_4);
local_res18 = (longlong *)PTR_DAT_140155010;
FUN_14001b7a0((longlong *)&local_res18,L"%d Tcp issueRecv Failed SocketErrorCode",
(ulonglong)uVar12,param_4);
pplVar28 = &local_res18;
uVar30 = 3;
uVar27 = 1;
plVar19 = *(longlong **)&param_1[2].e_cparhdr;
FUN_14007dca0(plVar19,3,(undefined *)0x1,pplVar28);
iVar5._0_1_ = param_1[2].e_magic[0];
iVar5._1_1_ = param_1[2].e_magic[1];
iVar5._2_2_ = param_1[2].e_cblp;
if (iVar5 < 4) {
param_1->e_program[0] = 0;
param_1->e_program[1] = 0;
param_1->e_program[2] = 0;
param_1->e_program[3] = 0;
param_1[2].e_magic[0] = '\x04';
param_1[2].e_magic[1] = '\0';
param_1[2].e_cblp = 0;
plVar19 = (longlong *)(*(longlong *)&param_1[2].e_cparhdr + 0x70);
uVar31 = (**(code **)(*plVar19 + 0x1c0))();
param_1[1].e_magic[0] = (char)uVar31;
param_1[1].e_magic[1] = (char)((ulonglong)uVar31 >> 8);
param_1[1].e_cblp = (short)((ulonglong)uVar31 >> 0x10);
param_1[1].e_cp = (short)((ulonglong)uVar31 >> 0x20);
param_1[1].e_crlc = (short)((ulonglong)uVar31 >> 0x30);
param_1[1].e_program[0] = 0;
}
plVar8 = local_res18;
if (((local_res18 != (longlong *)0x0) && (local_res18 != (longlong *)PTR_DAT_140155010)) &&
(plVar2 = local_res18 + -1, plVar2 != (longlong *)0x0)) {
piVar14 = (int *)FUN_140030200(plVar19,uVar30,uVar27,pplVar28);
FUN_14002e6e0(piVar14);
piVar16 = (int *)((longlong)plVar8 + -4);
*piVar16 = *piVar16 + -1;
if (*piVar16 == 0) {
FUN_1400302f0(plVar2);
}
FUN_14002e770((longlong)piVar14);
}
}
}
return;
}