decompiled agent_release
This commit is contained in:
parent
baac905ef2
commit
11a3488883
6439 changed files with 229565 additions and 1 deletions
304
decomp/Agent_Release_x64/full/functions/0x14008be60.c
Normal file
304
decomp/Agent_Release_x64/full/functions/0x14008be60.c
Normal file
|
|
@ -0,0 +1,304 @@
|
|||
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
||||
* Ghidra 12.1.2 decompiler output for 0x14008be60 FUN_14008be60
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
void FUN_14008be60(undefined ***param_1,undefined ***param_2,undefined ***param_3,
|
||||
undefined ***param_4)
|
||||
|
||||
{
|
||||
undefined **ppuVar1;
|
||||
int *piVar2;
|
||||
uint uVar3;
|
||||
uint uVar4;
|
||||
undefined8 uVar5;
|
||||
ulonglong uVar6;
|
||||
uint *puVar7;
|
||||
undefined ***pppuVar8;
|
||||
int *piVar9;
|
||||
uint uVar10;
|
||||
uint uVar11;
|
||||
char *pcVar12;
|
||||
undefined ***pppuVar13;
|
||||
undefined **ppuVar14;
|
||||
undefined *puVar15;
|
||||
undefined ***pppuVar16;
|
||||
uint uVar17;
|
||||
undefined ***pppuVar18;
|
||||
undefined1 auStackY_2a8 [32];
|
||||
undefined **local_278;
|
||||
undefined **local_270;
|
||||
undefined ***local_268;
|
||||
undefined ***local_260;
|
||||
undefined **local_258;
|
||||
undefined4 local_250;
|
||||
undefined2 local_24c;
|
||||
undefined ***local_238 [2];
|
||||
undefined **local_228;
|
||||
undefined4 local_220;
|
||||
undefined2 local_21c;
|
||||
undefined ***local_218;
|
||||
undefined1 local_210;
|
||||
undefined **local_208;
|
||||
undefined4 local_200;
|
||||
undefined2 local_1fc;
|
||||
undefined **local_1f8;
|
||||
undefined8 local_1f0;
|
||||
undefined8 local_1e8;
|
||||
undefined8 local_1e0;
|
||||
undefined8 local_1d8;
|
||||
int *local_1d0;
|
||||
undefined1 local_1c8;
|
||||
undefined **local_1c0;
|
||||
undefined8 local_1b8;
|
||||
undefined4 local_1b0;
|
||||
undefined8 local_1a8;
|
||||
undefined4 local_1a0;
|
||||
undefined **local_198;
|
||||
undefined4 local_190;
|
||||
undefined2 local_18c;
|
||||
longlong local_158 [36];
|
||||
ulonglong local_38;
|
||||
|
||||
local_158[1] = 0xfffffffffffffffe;
|
||||
local_38 = DAT_1401555a0 ^ (ulonglong)auStackY_2a8;
|
||||
pppuVar8 = &local_278;
|
||||
local_260 = param_1;
|
||||
FUN_1400bbb40(pppuVar8);
|
||||
pppuVar18 = (undefined ***)0x0;
|
||||
local_268 = (undefined ***)0x0;
|
||||
pppuVar16 = (undefined ***)0x1;
|
||||
do {
|
||||
while( true ) {
|
||||
while( true ) {
|
||||
if (*(char *)(param_1 + 0x28) != '\0') {
|
||||
if (param_1[0x29][0x2fe] != (undefined *)0x0) {
|
||||
FUN_140030200(pppuVar8,param_2,param_3,param_4);
|
||||
local_238[0] = (undefined ***)PTR_DAT_140155010;
|
||||
FUN_14001b7a0((longlong *)local_238,L"%s thread 종료.",
|
||||
L"Proud::CNetThreads_S::TcpListenerProc",param_4);
|
||||
pppuVar8 = local_238[0];
|
||||
param_3 = local_238[0];
|
||||
if (local_238[0] == (undefined ***)0x0) {
|
||||
param_3 = (undefined ***)PTR_DAT_140155010;
|
||||
}
|
||||
param_2 = (undefined ***)0x0;
|
||||
puVar15 = param_1[0x29][0x2fe];
|
||||
FUN_14008f2e0((longlong)puVar15,0,(short *)param_3,param_4);
|
||||
if (((pppuVar8 != (undefined ***)0x0) && (pppuVar8 != (undefined ***)PTR_DAT_140155010))
|
||||
&& (pppuVar8 + -1 != (undefined ***)0x0)) {
|
||||
piVar9 = (int *)FUN_140030200(puVar15,param_2,param_3,param_4);
|
||||
local_1c8 = 0;
|
||||
local_1d0 = piVar9;
|
||||
FUN_14002e6e0(piVar9);
|
||||
local_1c8 = 1;
|
||||
piVar2 = (int *)((longlong)pppuVar8 + -4);
|
||||
*piVar2 = *piVar2 + -1;
|
||||
if (*piVar2 == 0) {
|
||||
FUN_1400302f0(pppuVar8 + -1);
|
||||
}
|
||||
FUN_14002e770((longlong)piVar9);
|
||||
}
|
||||
}
|
||||
pppuVar8 = local_268;
|
||||
if (local_268 != (undefined ***)0x0) {
|
||||
FUN_1400358a0((longlong *)local_268,param_2,(longlong *)param_3,param_4);
|
||||
FUN_1400302f0(pppuVar8);
|
||||
}
|
||||
FUN_1400bbb70((char *)&local_278);
|
||||
return;
|
||||
}
|
||||
uVar17 = 0;
|
||||
if (((local_268 == (undefined ***)0x0) && ((char)pppuVar16 != '\0')) &&
|
||||
(local_268 = (undefined ***)
|
||||
FUN_14008ad70((longlong)param_1,param_2,(undefined **)param_3,
|
||||
(undefined **)param_4), local_268 == (undefined ***)0x0)) {
|
||||
pppuVar16 = pppuVar18;
|
||||
}
|
||||
pppuVar13 = local_268;
|
||||
local_198 = Proud::AddrPort::vftable;
|
||||
local_1c0 = (undefined **)0x0;
|
||||
local_1a8 = 0;
|
||||
local_1b8 = 0;
|
||||
local_1b0 = 5;
|
||||
local_1a0 = 0;
|
||||
local_190 = DAT_1401553d0;
|
||||
local_18c = DAT_1401553d4;
|
||||
param_3 = (undefined ***)(ulonglong)DAT_140155068;
|
||||
param_2 = &local_1c0;
|
||||
pcVar12 = param_1[0x29][0xf2];
|
||||
uVar5 = FUN_1400388c0(pcVar12,(longlong *)param_2,(ulonglong)param_3,param_4);
|
||||
if ((char)uVar5 == '\x01') break;
|
||||
pppuVar8 = pppuVar18;
|
||||
if ((undefined8 *)param_1[0x29][0xe9] != (undefined8 *)0x0) {
|
||||
pppuVar8 = *(undefined ****)param_1[0x29][0xe9];
|
||||
}
|
||||
FUN_140035730((longlong)pppuVar8);
|
||||
}
|
||||
if (pppuVar13 == (undefined ***)0x0) break;
|
||||
local_208 = Proud::AddrPort::vftable;
|
||||
local_200 = 0;
|
||||
local_1fc = 0;
|
||||
local_258 = Proud::AddrPort::vftable;
|
||||
local_250 = 0;
|
||||
local_24c = 0;
|
||||
param_2 = pppuVar18;
|
||||
if ((undefined8 *)param_1[0x29][0xe9] != (undefined8 *)0x0) {
|
||||
param_2 = *(undefined ****)param_1[0x29][0xe9];
|
||||
}
|
||||
param_4 = &local_258;
|
||||
param_3 = &local_208;
|
||||
FUN_140035580((longlong)pppuVar13,(longlong)param_2,(longlong)param_3,(longlong)param_4);
|
||||
uVar6 = FUN_140033290((longlong)&local_258);
|
||||
if ((char)uVar6 == '\0') {
|
||||
LAB_14008c022:
|
||||
FUN_1400358a0((longlong *)pppuVar13,param_2,(longlong *)param_3,param_4);
|
||||
FUN_1400302f0(pppuVar13);
|
||||
pppuVar8 = pppuVar13;
|
||||
}
|
||||
else {
|
||||
local_228 = Proud::AddrPort::vftable;
|
||||
local_220 = local_250;
|
||||
local_21c = local_24c;
|
||||
param_3 = &local_228;
|
||||
pppuVar8 = param_1;
|
||||
param_2 = pppuVar13;
|
||||
uVar5 = FUN_14008a9c0((longlong)param_1,(longlong)pppuVar13,(ulonglong)param_3);
|
||||
if ((char)uVar5 == '\0') goto LAB_14008c022;
|
||||
}
|
||||
local_268 = (undefined ***)0x0;
|
||||
}
|
||||
FUN_140030200(pcVar12,param_2,param_3,param_4);
|
||||
local_270 = (undefined **)PTR_DAT_140155010;
|
||||
uVar3 = FUN_140030080(L"acceptex getqueued but socket null");
|
||||
uVar4 = uVar17;
|
||||
if ((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar4 = *(uint *)(local_270 + -1);
|
||||
}
|
||||
uVar10 = uVar3;
|
||||
if ((((int)uVar3 <= (int)uVar4) && (uVar10 = uVar17, local_270 != (undefined **)0x0)) &&
|
||||
(local_270 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar10 = *(uint *)(local_270 + -1);
|
||||
}
|
||||
uVar4 = 1;
|
||||
if (1 < (int)uVar10) {
|
||||
uVar4 = uVar10;
|
||||
}
|
||||
uVar11 = 0;
|
||||
uVar10 = uVar11;
|
||||
if ((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar10 = *(uint *)(local_270 + -1);
|
||||
}
|
||||
if ((int)uVar10 < (int)uVar4) {
|
||||
if (local_270 == (undefined **)0x0) {
|
||||
local_270 = (undefined **)PTR_DAT_140155010;
|
||||
}
|
||||
if ((int)uVar4 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14002f590();
|
||||
}
|
||||
if (uVar4 == 0) {
|
||||
FUN_140003240((longlong *)&local_270,PTR_DAT_140155010,param_3,param_4);
|
||||
}
|
||||
else {
|
||||
uVar10 = uVar11;
|
||||
if ((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar10 = *(uint *)(local_270 + -1);
|
||||
}
|
||||
if (uVar4 != uVar10) {
|
||||
puVar7 = (uint *)FUN_140030280((longlong)(int)uVar4 * 2 + 10);
|
||||
if (puVar7 != (uint *)0x0) {
|
||||
*puVar7 = 0;
|
||||
puVar7[1] = 1;
|
||||
}
|
||||
*puVar7 = uVar4;
|
||||
uVar10 = uVar11;
|
||||
if ((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar10 = *(uint *)(local_270 + -1);
|
||||
}
|
||||
ppuVar14 = (undefined **)PTR_DAT_140155010;
|
||||
if ((int)uVar4 < (int)uVar10) {
|
||||
LAB_14008c147:
|
||||
if (local_270 != (undefined **)0x0) {
|
||||
ppuVar14 = local_270;
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar4 = uVar17;
|
||||
if (local_270 != (undefined **)0x0) {
|
||||
if (local_270 != (undefined **)PTR_DAT_140155010) {
|
||||
uVar4 = *(uint *)(local_270 + -1);
|
||||
}
|
||||
goto LAB_14008c147;
|
||||
}
|
||||
}
|
||||
uVar6 = (ulonglong)uVar4;
|
||||
FUN_1400300b0(puVar7 + 2,ppuVar14,uVar4);
|
||||
FUN_140003240((longlong *)&local_270,ppuVar14,uVar6,param_4);
|
||||
local_270 = (undefined **)(puVar7 + 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
FUN_140002ea0((longlong *)&local_270);
|
||||
ppuVar14 = local_270;
|
||||
if (local_270 == (undefined **)0x0) {
|
||||
ppuVar14 = (undefined **)PTR_DAT_140155010;
|
||||
}
|
||||
FUN_1400300b0(ppuVar14,L"acceptex getqueued but socket null",uVar3);
|
||||
ppuVar14 = local_270;
|
||||
if (local_270 == (undefined **)0x0) {
|
||||
ppuVar14 = (undefined **)PTR_DAT_140155010;
|
||||
}
|
||||
uVar4 = FUN_140030080((short *)ppuVar14);
|
||||
uVar17 = 0;
|
||||
if (0 < (int)uVar4) {
|
||||
uVar17 = uVar4;
|
||||
}
|
||||
uVar4 = uVar11;
|
||||
if ((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) {
|
||||
uVar4 = *(uint *)(local_270 + -1);
|
||||
}
|
||||
if (((int)uVar17 < (int)uVar4) || (uVar17 = uVar11, local_270 == (undefined **)0x0)) {
|
||||
LAB_14008c1ea:
|
||||
if (((local_270 != (undefined **)PTR_DAT_140155010) && (local_270 != (undefined **)0x0)) &&
|
||||
(local_270 + -1 != (undefined **)0x0)) {
|
||||
*(uint *)(local_270 + -1) = uVar17;
|
||||
*(undefined2 *)((longlong)local_270 + (longlong)(int)uVar17 * 2) = 0;
|
||||
}
|
||||
}
|
||||
else if (local_270 != (undefined **)PTR_DAT_140155010) {
|
||||
uVar17 = *(uint *)(local_270 + -1);
|
||||
goto LAB_14008c1ea;
|
||||
}
|
||||
local_1f0 = 0;
|
||||
local_1e8 = 0;
|
||||
local_1e0 = 0;
|
||||
local_1d8 = 0;
|
||||
local_1f8 = Proud::ByteArray::vftable;
|
||||
param_4 = &local_270;
|
||||
param_2 = (undefined ***)FUN_14003c120(local_158,1,0,(longlong *)param_4,(longlong)&local_1f8);
|
||||
param_3 = (undefined ***)*param_1[0x29];
|
||||
(*(code *)param_3[0x10])();
|
||||
pppuVar8 = &local_1f8;
|
||||
FUN_14003b870(pppuVar8);
|
||||
ppuVar14 = local_270;
|
||||
if (((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) &&
|
||||
(ppuVar1 = local_270 + -1, ppuVar1 != (undefined **)0x0)) {
|
||||
pppuVar8 = (undefined ***)FUN_140030200(pppuVar8,param_2,param_3,param_4);
|
||||
local_210 = 0;
|
||||
local_218 = pppuVar8;
|
||||
FUN_14002e6e0((int *)pppuVar8);
|
||||
local_210 = 1;
|
||||
puVar7 = (uint *)((longlong)ppuVar14 + -4);
|
||||
*puVar7 = *puVar7 - 1;
|
||||
if (*puVar7 == 0) {
|
||||
FUN_1400302f0(ppuVar1);
|
||||
}
|
||||
FUN_14002e770((longlong)pppuVar8);
|
||||
local_210 = 0;
|
||||
}
|
||||
local_270 = (undefined **)PTR_DAT_140155010;
|
||||
} while( true );
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue