server-re/decomp/AgentManager_Release_x64/0x140034220.pseudo.c
2026-10-15 09:58:24 -04:00

488 lines
15 KiB
C

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
undefined8 FUN_140034220(longlong param_1)
{
short sVar1;
undefined8 *puVar2;
undefined1 auVar3 [16];
undefined1 auVar4 [16];
FILE *_File;
errno_t eVar5;
ulonglong uVar6;
longlong *plVar7;
longlong *plVar8;
char *pcVar9;
ulonglong *puVar10;
char *******pppppppcVar11;
longlong *plVar12;
undefined **ppuVar13;
undefined **extraout_RAX;
longlong lVar14;
short *psVar15;
undefined2 *puVar16;
short *psVar17;
longlong *plVar18;
char *pcVar19;
uint uVar20;
bool bVar21;
undefined1 auStack_1c8 [32];
FILE *local_1a8 [2];
undefined **local_198 [5];
longlong *local_170;
undefined8 *local_160;
void *local_158;
undefined8 *local_138;
void *local_130;
char local_11c;
undefined8 local_118;
undefined2 local_110;
undefined6 uStack_10e;
undefined8 local_100;
ulonglong local_f8;
char ******local_e8 [2];
char *****local_d8;
char *****local_d0;
undefined1 local_b8;
undefined7 uStack_b7;
undefined8 local_a8;
ulonglong local_a0;
undefined2 local_78;
undefined6 uStack_76;
undefined8 local_68;
ulonglong local_60;
ulonglong local_38;
local_118 = 0xfffffffffffffffe;
local_38 = DAT_14016f5a0 ^ (ulonglong)auStack_1c8;
pcVar9 = (char *)&DAT_140175100;
if (0xf < DAT_140175118) {
pcVar9 = DAT_140175100;
}
FUN_14001f6d0(local_198,pcVar9);
DAT_140174c28 = 0;
uVar6 = FUN_14001f7a0((longlong *)local_198,(char *)(local_160 + 2));
plVar12 = (longlong *)0x0;
plVar7 = local_170;
if ((char)uVar6 == '\0') {
local_1a8[0] = operator_new(0x88);
plVar7 = plVar12;
if (local_1a8[0] != (FILE *)0x0) {
plVar7 = FUN_140020550(&local_1a8[0]->_ptr);
}
FUN_14001ed00((longlong *)local_198,plVar7);
plVar7 = local_170;
}
for (; plVar8 = plVar12, plVar7 != (longlong *)0x0; plVar7 = (longlong *)plVar7[10]) {
bVar21 = (char *)(plVar7[7] + 0x10) == (char *)0x0;
lVar14 = 7;
pcVar9 = (char *)(plVar7[7] + 0x10);
pcVar19 = "server";
do {
if (lVar14 == 0) break;
lVar14 = lVar14 + -1;
bVar21 = *pcVar9 == *pcVar19;
pcVar9 = pcVar9 + 1;
pcVar19 = pcVar19 + 1;
} while (bVar21);
if (bVar21) goto LAB_140034303;
}
LAB_140034345:
if (plVar8 == (longlong *)0x0) {
local_1a8[0] = operator_new(0xa8);
plVar8 = plVar12;
if (local_1a8[0] != (FILE *)0x0) {
plVar8 = FUN_14001ef00(&local_1a8[0]->_ptr,"server");
}
FUN_14001ed00((longlong *)local_198,plVar8);
}
for (pcVar9 = *(char **)(DAT_14017cf50 + 8); plVar7 = plVar12,
pcVar9 != *(char **)(DAT_14017cf50 + 0x10); pcVar9 = pcVar9 + 0x30) {
if (*pcVar9 == '\x18') {
plVar7 = (longlong *)(pcVar9 + 8);
if (7 < *(ulonglong *)(pcVar9 + 0x20)) {
plVar7 = *(longlong **)(pcVar9 + 8);
}
break;
}
}
local_f8 = 7;
local_100 = 0;
local_110._0_1_ = '\0';
local_110._1_1_ = 0;
uVar6 = 0xffffffffffffffff;
plVar18 = plVar7;
do {
if (uVar6 == 0) break;
uVar6 = uVar6 - 1;
lVar14 = *plVar18;
plVar18 = (longlong *)((longlong)plVar18 + 2);
} while ((short)lVar14 != 0);
FUN_140001710((ulonglong *)&local_110,plVar7,~uVar6 - 1);
FUN_1400ed7b0((ulonglong *)&local_b8,&local_110);
if (7 < local_f8) {
operator_delete((void *)CONCAT62(uStack_10e,CONCAT11(local_110._1_1_,(char)local_110)));
}
local_f8 = 7;
local_100 = 0;
local_110._0_1_ = '\0';
local_110._1_1_ = 0;
psVar15 = (short *)(param_1 + 0x30);
if (7 < *(ulonglong *)(param_1 + 0x48)) {
psVar15 = *(short **)psVar15;
}
local_d0 = (char *****)0x7;
local_d8 = (char *****)0x0;
local_e8[0] = (char ******)((ulonglong)local_e8[0] & 0xffffffffffff0000);
uVar6 = 0xffffffffffffffff;
psVar17 = psVar15;
do {
if (uVar6 == 0) break;
uVar6 = uVar6 - 1;
sVar1 = *psVar17;
psVar17 = psVar17 + 1;
} while (sVar1 != 0);
FUN_140001710((ulonglong *)local_e8,psVar15,~uVar6 - 1);
puVar10 = FUN_1400ed7b0((ulonglong *)&local_78,(LPCWSTR)local_e8);
if (0xf < puVar10[3]) {
puVar10 = (ulonglong *)*puVar10;
}
FUN_14001f130(plVar8,"ip",(char *)puVar10);
if (0xf < local_60) {
operator_delete((void *)CONCAT62(uStack_76,CONCAT11(local_78._1_1_,(char)local_78)));
}
local_60 = 0xf;
local_68 = 0;
local_78._0_1_ = '\0';
if (7 < local_d0) {
operator_delete(local_e8[0]);
}
FUN_140020c20((char *)&local_78,0x40,"%d",0xc3b1);
FUN_14001f130(plVar8,"port",(char *)&local_78);
pcVar9 = &local_b8;
if (0xf < local_a0) {
pcVar9 = (char *)CONCAT71(uStack_b7,local_b8);
}
FUN_14001f130(plVar8,"file",pcVar9);
plVar7 = local_170;
if (0xf < local_a0) {
operator_delete((void *)CONCAT71(uStack_b7,local_b8));
plVar7 = local_170;
}
for (; plVar8 = plVar12, plVar7 != (longlong *)0x0; plVar7 = (longlong *)plVar7[10]) {
bVar21 = (char *)(plVar7[7] + 0x10) == (char *)0x0;
lVar14 = 8;
pcVar9 = (char *)(plVar7[7] + 0x10);
pcVar19 = "connect";
do {
if (lVar14 == 0) break;
lVar14 = lVar14 + -1;
bVar21 = *pcVar9 == *pcVar19;
pcVar9 = pcVar9 + 1;
pcVar19 = pcVar19 + 1;
} while (bVar21);
if (bVar21) goto LAB_140034543;
}
LAB_140034585:
if (plVar8 == (longlong *)0x0) {
local_1a8[0] = operator_new(0xa8);
plVar8 = plVar12;
if (local_1a8[0] != (FILE *)0x0) {
plVar8 = FUN_14001ef00(&local_1a8[0]->_ptr,"connect");
}
FUN_14001ed00((longlong *)local_198,plVar8);
}
plVar7 = plVar12;
if (*(longlong *)(param_1 + 0x1c8) != 0) {
auVar3._8_8_ = 0;
auVar3._0_8_ = *(ulonglong *)(param_1 + 0x1b0);
for (puVar2 = *(undefined8 **)
(*(longlong *)(param_1 + 0x1a8) +
SUB168((ZEXT816(0) << 0x40 | ZEXT816(0x15)) % auVar3,0) * 8);
puVar2 != (undefined8 *)0x0; puVar2 = (undefined8 *)*puVar2) {
if (*(char *)(puVar2 + 1) == '\x15') {
if (((puVar2 != (undefined8 *)0x0) && (lVar14 = puVar2[2], lVar14 != puVar2[3])) &&
(plVar7 = (longlong *)(lVar14 + 0x30), 7 < *(ulonglong *)(lVar14 + 0x48))) {
plVar7 = *(longlong **)(lVar14 + 0x30);
}
break;
}
}
}
local_f8 = 7;
local_100 = 0;
local_110._0_1_ = '\0';
local_110._1_1_ = 0;
uVar6 = 0xffffffffffffffff;
plVar18 = plVar7;
do {
if (uVar6 == 0) break;
uVar6 = uVar6 - 1;
lVar14 = *plVar18;
plVar18 = (longlong *)((longlong)plVar18 + 2);
} while ((short)lVar14 != 0);
FUN_140001710((ulonglong *)&local_110,plVar7,~uVar6 - 1);
FUN_1400ed7b0((ulonglong *)&local_b8,&local_110);
if (7 < local_f8) {
operator_delete((void *)CONCAT62(uStack_10e,CONCAT11(local_110._1_1_,(char)local_110)));
}
local_f8 = 7;
local_100 = 0;
local_110._0_1_ = '\0';
local_110._1_1_ = 0;
uVar20 = 0;
if (*(longlong *)(param_1 + 0x1c8) != 0) {
auVar4._8_8_ = 0;
auVar4._0_8_ = *(ulonglong *)(param_1 + 0x1b0);
for (puVar2 = *(undefined8 **)
(*(longlong *)(param_1 + 0x1a8) +
SUB168((ZEXT816(0) << 0x40 | ZEXT816(0x15)) % auVar4,0) * 8);
puVar2 != (undefined8 *)0x0; puVar2 = (undefined8 *)*puVar2) {
if (*(char *)(puVar2 + 1) == '\x15') {
if ((puVar2 != (undefined8 *)0x0) && (puVar2[2] != puVar2[3])) {
uVar20 = *(uint *)(puVar2[2] + 4);
}
break;
}
}
}
pcVar9 = &local_b8;
if (0xf < local_a0) {
pcVar9 = (char *)CONCAT71(uStack_b7,local_b8);
}
FUN_14001f130(plVar8,"ip",pcVar9);
FUN_140020c20((char *)&local_78,0x40,"%d",(ulonglong)uVar20);
FUN_14001f130(plVar8,"port",(char *)&local_78);
if (0xf < local_a0) {
operator_delete((void *)CONCAT71(uStack_b7,local_b8));
}
local_f8 = 0xf;
local_100 = 0;
local_110._0_1_ = '\0';
local_d0 = (char *****)0xf;
local_d8 = (char *****)0x0;
local_e8[0] = (char ******)((ulonglong)local_e8[0] & 0xffffffffffffff00);
if (*(char *)(param_1 + 0x1e8) == '\r') {
uVar6 = 5;
pcVar9 = "agent";
LAB_140034791:
FUN_14000c9e0((ulonglong *)&local_110,pcVar9,uVar6);
puVar16 = (undefined2 *)CONCAT62(uStack_10e,CONCAT11(local_110._1_1_,(char)local_110));
if (local_f8 < 0x10) goto LAB_1400347a5;
}
else {
if (*(char *)(param_1 + 0x1e8) == '\x15') {
uVar6 = 0xc;
pcVar9 = "agentmanager";
goto LAB_140034791;
}
LAB_1400347a5:
puVar16 = &local_110;
}
plVar7 = (longlong *)FUN_14001ee20((longlong)local_198,(longlong)puVar16);
if (plVar7 == (longlong *)0x0) {
local_1a8[0] = operator_new(0xa8);
plVar7 = plVar12;
if (local_1a8[0] != (FILE *)0x0) {
pcVar9 = (char *)&local_110;
if (0xf < local_f8) {
pcVar9 = (char *)CONCAT62(uStack_10e,CONCAT11(local_110._1_1_,(char)local_110));
}
plVar7 = FUN_14001ef00(&local_1a8[0]->_ptr,pcVar9);
}
FUN_14001ed00((longlong *)local_198,plVar7);
}
for (pcVar9 = *(char **)(DAT_14017cf50 + 8); plVar8 = plVar12,
pcVar9 != *(char **)(DAT_14017cf50 + 0x10); pcVar9 = pcVar9 + 0x30) {
if (*pcVar9 == *(char *)(param_1 + 0x1e8)) {
plVar8 = (longlong *)(pcVar9 + 8);
if (7 < *(ulonglong *)(pcVar9 + 0x20)) {
plVar8 = *(longlong **)(pcVar9 + 8);
}
break;
}
}
local_60 = 7;
local_68 = 0;
local_78._0_1_ = '\0';
local_78._1_1_ = 0;
uVar6 = 0xffffffffffffffff;
plVar18 = plVar8;
do {
if (uVar6 == 0) break;
uVar6 = uVar6 - 1;
lVar14 = *plVar18;
plVar18 = (longlong *)((longlong)plVar18 + 2);
} while ((short)lVar14 != 0);
FUN_140001710((ulonglong *)&local_78,plVar8,~uVar6 - 1);
pppppppcVar11 = (char *******)FUN_1400ed7b0((ulonglong *)&local_b8,&local_78);
if (local_e8 != pppppppcVar11) {
if ((char ******)0xf < local_d0) {
operator_delete(local_e8[0]);
}
local_d0 = (char *****)0xf;
local_d8 = (char *****)0x0;
local_e8[0] = (char ******)((ulonglong)local_e8[0] & 0xffffffffffffff00);
if (pppppppcVar11[3] < (char ******)0x10) {
memmove(local_e8,pppppppcVar11,(longlong)pppppppcVar11[2] + 1);
}
else {
local_e8[0] = *pppppppcVar11;
*pppppppcVar11 = (char ******)0x0;
}
local_d8 = (char *****)pppppppcVar11[2];
local_d0 = (char *****)pppppppcVar11[3];
pppppppcVar11[3] = (char ******)0xf;
pppppppcVar11[2] = (char ******)0x0;
*(undefined1 *)pppppppcVar11 = 0;
}
if (0xf < local_a0) {
operator_delete((void *)CONCAT71(uStack_b7,local_b8));
}
local_a0 = 0xf;
local_a8 = 0;
local_b8 = '\0';
if (7 < local_60) {
operator_delete((void *)CONCAT62(uStack_76,CONCAT11(local_78._1_1_,(char)local_78)));
}
pppppppcVar11 = local_e8;
if ((char ******)0xf < local_d0) {
pppppppcVar11 = (char *******)local_e8[0];
}
FUN_14001f130(plVar7,"file",(char *)pppppppcVar11);
FUN_140020c20(&local_b8,0x40,"%d",(ulonglong)*(uint *)(param_1 + 0x154));
FUN_14001f130(plVar7,"code",&local_b8);
if ((char ******)0xf < local_d0) {
operator_delete(local_e8[0]);
}
local_d0 = (char *****)0xf;
local_d8 = (char *****)0x0;
local_e8[0] = (char ******)((ulonglong)local_e8[0] & 0xffffffffffffff00);
if (0xf < local_f8) {
operator_delete((void *)CONCAT62(uStack_10e,CONCAT11(local_110._1_1_,(char)local_110)));
}
plVar7 = local_170;
if (*(char *)(param_1 + 0x151) != '\0') {
for (; plVar8 = plVar12, plVar7 != (longlong *)0x0; plVar7 = (longlong *)plVar7[10]) {
bVar21 = (char *)(plVar7[7] + 0x10) == (char *)0x0;
lVar14 = 4;
pcVar9 = (char *)(plVar7[7] + 0x10);
pcVar19 = "dns";
do {
if (lVar14 == 0) break;
lVar14 = lVar14 + -1;
bVar21 = *pcVar9 == *pcVar19;
pcVar9 = pcVar9 + 1;
pcVar19 = pcVar19 + 1;
} while (bVar21);
if (bVar21) goto LAB_1400349e3;
}
LAB_140034a25:
if (plVar8 == (longlong *)0x0) {
local_1a8[0] = operator_new(0xa8);
if (local_1a8[0] != (FILE *)0x0) {
plVar12 = FUN_14001ef00(&local_1a8[0]->_ptr,"dns");
}
FUN_14001ed00((longlong *)local_198,plVar12);
plVar8 = plVar12;
}
FUN_140020c20(&local_b8,0x40,"%d",1);
FUN_14001f130(plVar8,"dns",&local_b8);
}
pcVar9 = (char *)&DAT_140175100;
if (0xf < DAT_140175118) {
pcVar9 = DAT_140175100;
}
local_1a8[0] = (FILE *)0x0;
eVar5 = fopen_s(local_1a8,pcVar9,"w");
_File = local_1a8[0];
if ((eVar5 == 0) && (local_1a8[0] != (FILE *)0x0)) {
if (local_11c != '\0') {
fputc(0xef,local_1a8[0]);
fputc(0xbb,_File);
fputc(0xbf,_File);
}
(*(code *)local_198[0][1])(local_198,_File,0);
ferror(_File);
fclose(_File);
}
printf("Create Patch Option File Succeed \n");
local_198[0] = TiXmlDocument::vftable;
if (local_138 != &DAT_14017ce88) {
operator_delete__(local_130);
}
ppuVar13 = TiXmlNode::vftable;
local_198[0] = TiXmlNode::vftable;
while (local_170 != (longlong *)0x0) {
plVar7 = (longlong *)local_170[10];
ppuVar13 = (undefined **)(**(code **)*local_170)(local_170,1);
local_170 = plVar7;
}
if (local_160 != &DAT_14017ce88) {
operator_delete__(local_158);
ppuVar13 = extraout_RAX;
}
return CONCAT71((int7)((ulonglong)ppuVar13 >> 8),1);
LAB_140034303:
while (lVar14 = (**(code **)(*plVar7 + 0x30))(plVar7), lVar14 == 0) {
do {
plVar7 = (longlong *)plVar7[10];
if (plVar7 == (longlong *)0x0) goto LAB_140034345;
bVar21 = (char *)(plVar7[7] + 0x10) == (char *)0x0;
lVar14 = 7;
pcVar9 = (char *)(plVar7[7] + 0x10);
pcVar19 = "server";
do {
if (lVar14 == 0) break;
lVar14 = lVar14 + -1;
bVar21 = *pcVar9 == *pcVar19;
pcVar9 = pcVar9 + 1;
pcVar19 = pcVar19 + 1;
} while (bVar21);
} while (!bVar21);
}
plVar8 = (longlong *)(**(code **)(*plVar7 + 0x30))(plVar7);
goto LAB_140034345;
LAB_140034543:
while (lVar14 = (**(code **)(*plVar7 + 0x30))(plVar7), lVar14 == 0) {
do {
plVar7 = (longlong *)plVar7[10];
if (plVar7 == (longlong *)0x0) goto LAB_140034585;
bVar21 = (char *)(plVar7[7] + 0x10) == (char *)0x0;
lVar14 = 8;
pcVar9 = (char *)(plVar7[7] + 0x10);
pcVar19 = "connect";
do {
if (lVar14 == 0) break;
lVar14 = lVar14 + -1;
bVar21 = *pcVar9 == *pcVar19;
pcVar9 = pcVar9 + 1;
pcVar19 = pcVar19 + 1;
} while (bVar21);
} while (!bVar21);
}
plVar8 = (longlong *)(**(code **)(*plVar7 + 0x30))(plVar7);
goto LAB_140034585;
LAB_1400349e3:
while (lVar14 = (**(code **)(*plVar7 + 0x30))(plVar7), lVar14 == 0) {
do {
plVar7 = (longlong *)plVar7[10];
if (plVar7 == (longlong *)0x0) goto LAB_140034a25;
bVar21 = (char *)(plVar7[7] + 0x10) == (char *)0x0;
lVar14 = 4;
pcVar9 = (char *)(plVar7[7] + 0x10);
pcVar19 = "dns";
do {
if (lVar14 == 0) break;
lVar14 = lVar14 + -1;
bVar21 = *pcVar9 == *pcVar19;
pcVar9 = pcVar9 + 1;
pcVar19 = pcVar19 + 1;
} while (bVar21);
} while (!bVar21);
}
plVar8 = (longlong *)(**(code **)(*plVar7 + 0x30))(plVar7);
goto LAB_140034a25;
}