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,395 @@
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x14007e880 FUN_14007e880
* Pseudocode, not original source. */
void FUN_14007e880(longlong *param_1,double param_2,undefined *param_3,undefined *param_4)
{
undefined8 *puVar1;
double dVar2;
bool bVar3;
DWORD DVar4;
DWORD DVar5;
undefined *puVar6;
undefined *puVar7;
undefined **ppuVar8;
int *piVar9;
longlong *plVar10;
int *piVar11;
longlong *plVar12;
undefined8 in_RDX;
wchar_t *pwVar13;
char cVar14;
int *piVar15;
SIZE_T SVar16;
longlong lVar17;
undefined *puVar18;
undefined8 uVar19;
undefined *local_res10;
undefined *local_res18;
undefined *local_res20;
undefined *local_168;
int *local_160;
char local_158;
longlong *local_150;
undefined1 local_148;
undefined *local_140;
undefined *local_138;
undefined *local_130;
undefined *local_128;
undefined *local_120;
undefined *local_118;
undefined **local_110;
undefined1 local_108;
undefined **local_100;
undefined1 local_f8;
int *local_f0;
undefined1 local_e8;
undefined8 local_e0;
int *local_d8;
undefined1 local_d0;
int *local_c8;
undefined1 local_c0;
undefined **local_b8;
undefined1 local_b0;
int *local_a8;
undefined1 local_a0;
int *local_98;
undefined1 local_90;
int *local_88;
undefined1 local_80;
int *local_78;
undefined1 local_70;
local_e0 = 0xfffffffffffffffe;
local_150 = param_1 + 0x95;
local_res18 = param_3;
FUN_14002e6e0((int *)local_150);
local_148 = 1;
(**(code **)(param_1[1] + 0x18))();
bVar3 = false;
puVar18 = (undefined *)0x0;
puVar7 = puVar18;
if (param_1[0xad] != 0) {
puVar7 = *(undefined **)(param_1[0xad] + 0x38);
}
FUN_14002e6e0((int *)(puVar7 + 0x10));
puVar6 = puVar18;
if (param_1[0xad] != 0) {
puVar6 = *(undefined **)(param_1[0xad] + 0x38);
}
*(int *)(puVar6 + 0x288) = *(int *)(puVar6 + 0x288) + 1;
LOCK();
*(int *)(param_1 + 0xa2) = (int)param_1[0xa2] + 1;
UNLOCK();
FUN_14002e770((longlong)(puVar7 + 0x10));
DVar4 = GetTickCount();
dVar2 = param_2 * 2.0 * 1000.0;
if (dVar2 <= 100000.0) {
dVar2 = 100000.0;
}
if (((char)param_1[0x2e4] != '\0') || ((int)param_1[0xcb] != 0)) {
puVar7 = puVar18;
if (param_1[0xad] != 0) {
puVar7 = *(undefined **)(param_1[0xad] + 0x38);
}
piVar15 = (int *)(puVar7 + 0x10);
local_88 = piVar15;
FUN_14002e6e0(piVar15);
local_80 = 1;
param_4 = (undefined *)(ulonglong)*(uint *)(param_1 + 0x2a1);
param_3 = &DAT_140100df0;
in_RDX = 0;
FUN_140072eb0((longlong)(param_1 + -0xe),0,
L"Client %d: CNetClient.Disconnect를 사용자가 콜 하였습니다.",param_4);
FUN_14002e770((longlong)piVar15);
}
plVar12 = param_1 + -0xe;
puVar7 = puVar18;
do {
piVar15 = (int *)(**(code **)(*plVar12 + 0x58))(plVar12);
local_160 = piVar15;
FUN_14002e6e0(piVar15);
local_158 = '\x01';
if (((longlong *)param_1[0xac] == (longlong *)0x0) ||
(lVar17 = *(longlong *)param_1[0xac], lVar17 == 0)) {
if ((((longlong *)param_1[0x2a0] != (longlong *)0x0) && (*(longlong *)param_1[0x2a0] != 0)) ||
(((longlong *)param_1[0x296] != (longlong *)0x0 && (*(longlong *)param_1[0x296] != 0)))) {
FUN_140030200(0,in_RDX,param_3,param_4);
local_140 = PTR_DAT_140155010;
plVar10 = FUN_14002ff30((longlong *)&local_118,in_RDX,param_3,param_4);
param_3 = (undefined *)*plVar10;
if ((undefined *)*plVar10 == (undefined *)0x0) {
param_3 = PTR_DAT_140155010;
}
pwVar13 = L"Unstability in Disconnect #1! Process=%s";
ppuVar8 = &local_140;
FUN_14001b7a0((longlong *)ppuVar8,L"Unstability in Disconnect #1! Process=%s",param_3,
param_4);
if (((local_118 != (undefined *)0x0) && (local_118 != PTR_DAT_140155010)) &&
(local_118 + -8 != (undefined *)0x0)) {
ppuVar8 = (undefined **)FUN_140030200(ppuVar8,pwVar13,param_3,param_4);
local_b8 = ppuVar8;
FUN_14002e6e0((int *)ppuVar8);
local_b0 = 1;
piVar9 = (int *)(local_118 + -4);
*piVar9 = *piVar9 + -1;
if (*piVar9 == 0) {
FUN_1400302f0(local_118 + -8);
}
FUN_14002e770((longlong)ppuVar8);
}
FUN_140030200(ppuVar8,pwVar13,param_3,param_4);
puVar7 = local_140;
local_168 = PTR_DAT_140155010;
if (PTR_DAT_140155010 == (undefined *)0x0) {
local_168 = puVar18;
}
if (local_140 != PTR_DAT_140155010) {
piVar9 = (int *)FUN_140030200(ppuVar8,pwVar13,param_3,param_4);
local_98 = piVar9;
FUN_14002e6e0(piVar9);
local_90 = 1;
FUN_140003240((longlong *)&local_168,pwVar13,param_3,param_4);
local_168 = puVar7;
if (((puVar7 != PTR_DAT_140155010) && (puVar7 != (undefined *)0x0)) &&
(puVar7 != (undefined *)0x8)) {
*(int *)(puVar7 + -4) = *(int *)(puVar7 + -4) + 1;
}
FUN_14002e770((longlong)piVar9);
}
ppuVar8 = &local_168;
FUN_140033120((longlong *)ppuVar8,pwVar13,param_3,param_4);
if (((puVar7 != (undefined *)0x0) && (puVar7 != PTR_DAT_140155010)) &&
(puVar7 + -8 != (undefined *)0x0)) {
piVar11 = (int *)FUN_140030200(ppuVar8,pwVar13,param_3,param_4);
local_78 = piVar11;
FUN_14002e6e0(piVar11);
local_70 = 1;
piVar9 = (int *)(puVar7 + -4);
*piVar9 = *piVar9 + -1;
if (*piVar9 == 0) {
FUN_1400302f0(puVar7 + -8);
}
FUN_14002e770((longlong)piVar11);
}
}
FUN_14007b7f0((longlong)plVar12,'\x01',(SIZE_T)param_3,param_4);
FUN_14002e770((longlong)piVar15);
LAB_14007f06d:
FUN_14002e770((longlong)local_150);
return;
}
if ((*(int *)(lVar17 + 0x100) == 5) && (param_1[0x2d5] == 0)) {
FUN_14007b7f0((longlong)plVar12,'\x01',(SIZE_T)param_3,param_4);
FUN_14002e770((longlong)local_160);
goto LAB_14007f06d;
}
if (DAT_14015c2d0 != '\0') {
FUN_14007b7f0((longlong)plVar12,'\x01',(SIZE_T)param_3,param_4);
FUN_14002e770((longlong)local_160);
goto LAB_14007f06d;
}
puVar6 = puVar18;
if (param_1[0xad] != 0) {
puVar6 = *(undefined **)(param_1[0xad] + 0x38);
}
if (*(longlong *)(puVar6 + 0x2b8) == 0) {
puVar7 = puVar18;
if ((undefined8 *)param_1[0xac] != (undefined8 *)0x0) {
puVar7 = *(undefined **)param_1[0xac];
}
uVar19 = 5;
FUN_1400a36a0((longlong)puVar7,5);
FUN_140030200(puVar7,uVar19,param_3,param_4);
local_138 = PTR_DAT_140155010;
plVar10 = FUN_14002ff30((longlong *)&local_128,uVar19,param_3,param_4);
puVar7 = (undefined *)*plVar10;
if ((undefined *)*plVar10 == (undefined *)0x0) {
puVar7 = PTR_DAT_140155010;
}
pwVar13 = L"Unstability in Disconnect #2! Process=%s";
ppuVar8 = &local_138;
FUN_14001b7a0((longlong *)ppuVar8,L"Unstability in Disconnect #2! Process=%s",puVar7,param_4);
if (((local_128 != (undefined *)0x0) && (local_128 != PTR_DAT_140155010)) &&
(local_128 + -8 != (undefined *)0x0)) {
ppuVar8 = (undefined **)FUN_140030200(ppuVar8,pwVar13,puVar7,param_4);
local_100 = ppuVar8;
FUN_14002e6e0((int *)ppuVar8);
local_f8 = 1;
piVar15 = (int *)(local_128 + -4);
*piVar15 = *piVar15 + -1;
if (*piVar15 == 0) {
FUN_1400302f0(local_128 + -8);
}
FUN_14002e770((longlong)ppuVar8);
}
FUN_140030200(ppuVar8,pwVar13,puVar7,param_4);
puVar6 = local_138;
local_res20 = PTR_DAT_140155010;
if (PTR_DAT_140155010 == (undefined *)0x0) {
local_res20 = puVar18;
}
if (local_138 != PTR_DAT_140155010) {
piVar15 = (int *)FUN_140030200(ppuVar8,pwVar13,puVar7,param_4);
local_f0 = piVar15;
FUN_14002e6e0(piVar15);
local_e8 = 1;
FUN_140003240((longlong *)&local_res20,pwVar13,puVar7,param_4);
local_res20 = puVar6;
if (((puVar6 != PTR_DAT_140155010) && (puVar6 != (undefined *)0x0)) &&
(puVar6 != (undefined *)0x8)) {
*(int *)(puVar6 + -4) = *(int *)(puVar6 + -4) + 1;
}
FUN_14002e770((longlong)piVar15);
}
ppuVar8 = &local_res20;
FUN_140033120((longlong *)ppuVar8,pwVar13,puVar7,param_4);
if (((puVar6 != (undefined *)0x0) && (puVar6 != PTR_DAT_140155010)) &&
(puVar6 + -8 != (undefined *)0x0)) {
piVar9 = (int *)FUN_140030200(ppuVar8,pwVar13,puVar7,param_4);
local_d8 = piVar9;
FUN_14002e6e0(piVar9);
local_d0 = 1;
piVar15 = (int *)(puVar6 + -4);
*piVar15 = *piVar15 + -1;
if (*piVar15 == 0) {
FUN_1400302f0(puVar6 + -8);
}
FUN_14002e770((longlong)piVar9);
}
FUN_14007b7f0((longlong)plVar12,'\x01',(SIZE_T)puVar7,param_4);
FUN_14002e770((longlong)local_160);
goto LAB_14007f06d;
}
DVar5 = GetTickCount();
if (dVar2 < (double)(DVar5 - DVar4)) {
FUN_140030200(puVar6,in_RDX,param_3,param_4);
local_130 = PTR_DAT_140155010;
FUN_14002ff30((longlong *)&local_120,in_RDX,param_3,param_4);
puVar7 = puVar18;
if ((undefined8 *)param_1[0xac] != (undefined8 *)0x0) {
puVar7 = *(undefined **)param_1[0xac];
}
lVar17 = param_1[0x2d5];
SVar16 = (SIZE_T)*(uint *)(puVar7 + 0x100);
pwVar13 =
L"CNetClient.Disconnect seems to be freezed ## State=%d##GarbageCount=%d##Process=%s";
ppuVar8 = &local_130;
FUN_14001b7a0((longlong *)ppuVar8,
L"CNetClient.Disconnect seems to be freezed ## State=%d##GarbageCount=%d##Process=%s"
,SVar16,lVar17);
if (((local_120 != (undefined *)0x0) && (local_120 != PTR_DAT_140155010)) &&
(local_120 + -8 != (undefined *)0x0)) {
ppuVar8 = (undefined **)FUN_140030200(ppuVar8,pwVar13,SVar16,lVar17);
local_110 = ppuVar8;
FUN_14002e6e0((int *)ppuVar8);
local_108 = 1;
piVar15 = (int *)(local_120 + -4);
*piVar15 = *piVar15 + -1;
if (*piVar15 == 0) {
FUN_1400302f0(local_120 + -8);
}
FUN_14002e770((longlong)ppuVar8);
}
FUN_140030200(ppuVar8,pwVar13,SVar16,lVar17);
puVar7 = local_130;
local_res10 = PTR_DAT_140155010;
if (PTR_DAT_140155010 == (undefined *)0x0) {
local_res10 = puVar18;
}
if (local_130 != PTR_DAT_140155010) {
piVar15 = (int *)FUN_140030200(ppuVar8,pwVar13,SVar16,lVar17);
local_a8 = piVar15;
FUN_14002e6e0(piVar15);
local_a0 = 1;
FUN_140003240((longlong *)&local_res10,pwVar13,SVar16,lVar17);
local_res10 = puVar7;
if (((puVar7 != PTR_DAT_140155010) && (puVar7 != (undefined *)0x0)) &&
(puVar7 != (undefined *)0x8)) {
*(int *)(puVar7 + -4) = *(int *)(puVar7 + -4) + 1;
}
FUN_14002e770((longlong)piVar15);
}
FUN_140033120((longlong *)&local_res10,pwVar13,SVar16,lVar17);
if ((undefined8 *)param_1[0xac] != (undefined8 *)0x0) {
puVar18 = *(undefined **)param_1[0xac];
}
uVar19 = 0;
FUN_1400a36a0((longlong)puVar18,5);
uVar19 = CONCAT71((int7)((ulonglong)uVar19 >> 8),1);
FUN_14007b7f0((longlong)plVar12,'\x01',SVar16,lVar17);
if (((puVar7 != (undefined *)0x0) && (puVar7 != PTR_DAT_140155010)) &&
(puVar7 + -8 != (undefined *)0x0)) {
piVar9 = (int *)FUN_140030200(plVar12,uVar19,SVar16,lVar17);
local_c8 = piVar9;
FUN_14002e6e0(piVar9);
local_c0 = 1;
piVar15 = (int *)(puVar7 + -4);
*piVar15 = *piVar15 + -1;
if (*piVar15 == 0) {
FUN_1400302f0(puVar7 + -8);
}
FUN_14002e770((longlong)piVar9);
}
FUN_14002e770((longlong)local_160);
goto LAB_14007f06d;
}
if (!bVar3) {
bVar3 = true;
puVar6 = puVar18;
if (param_1[0xad] != 0) {
puVar6 = *(undefined **)(param_1[0xad] + 0x38);
}
FUN_14002e820((longlong)(puVar6 + 0x10));
puVar6 = puVar18;
if ((undefined8 *)param_1[0xac] != (undefined8 *)0x0) {
puVar6 = *(undefined **)param_1[0xac];
}
puVar1 = (undefined8 *)param_1[0xac];
if (*(int *)(puVar6 + 0x100) == 3) {
puVar6 = puVar18;
if (puVar1 != (undefined8 *)0x0) {
puVar6 = (undefined *)*puVar1;
}
uVar19 = (**(code **)(*param_1 + 0x1c0))(param_1);
*(undefined8 *)(puVar6 + 0xd0) = uVar19;
puVar6 = puVar18;
if ((undefined8 *)param_1[0xac] != (undefined8 *)0x0) {
puVar6 = *(undefined **)param_1[0xac];
}
*(double *)(puVar6 + 0xd8) = param_2;
param_3 = &DAT_14015de10;
in_RDX = 1;
param_4 = local_res18;
(**(code **)(param_1[0x2f5] + 0x80))();
}
else {
puVar6 = puVar18;
if (puVar1 != (undefined8 *)0x0) {
puVar6 = (undefined *)*puVar1;
}
if (*(int *)(puVar6 + 0x100) < 3) {
puVar6 = puVar18;
if ((undefined8 *)param_1[0xac] != (undefined8 *)0x0) {
puVar6 = *(undefined **)param_1[0xac];
}
in_RDX = 4;
FUN_1400a36a0((longlong)puVar6,4);
}
}
}
piVar15 = local_160;
cVar14 = local_158;
if (0 < (int)puVar7) {
FUN_14002e770((longlong)local_160);
Sleep(10);
cVar14 = '\0';
}
puVar7 = (undefined *)(ulonglong)((int)puVar7 + 1);
if (cVar14 != '\0') {
FUN_14002e770((longlong)piVar15);
}
} while( true );
}