decomp DBCServer_Release and inspect/document database

This commit is contained in:
Benjamin Palko 2026-10-14 23:22:03 -04:00
parent 4b267cbe05
commit 7834b98bf0
28222 changed files with 843300 additions and 144 deletions

View file

@ -0,0 +1,797 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x14005ceb0 FUN_14005ceb0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined8 FUN_14005ceb0(longlong param_1,int param_2,undefined8 param_3,undefined8 param_4)
{
short sVar1;
int iVar2;
undefined **ppuVar3;
undefined **extraout_RAX;
longlong lVar4;
undefined **extraout_RAX_00;
ulonglong uVar5;
longlong lVar6;
longlong lVar7;
longlong lVar8;
short *psVar9;
char *******pppppppcVar10;
longlong *plVar11;
longlong *plVar12;
char *pcVar13;
char *pcVar14;
char *pcVar15;
char *pcVar16;
char *pcVar17;
char *pcVar18;
short *psVar19;
char *pcVar20;
char *_Str;
bool bVar21;
undefined1 auStack_268 [32];
undefined **local_248 [5];
longlong *local_220;
undefined8 *local_210;
void *local_208;
uint local_1ec;
undefined8 *local_1e8;
void *local_1e0;
undefined ***local_1c8;
undefined8 local_1c0;
basic_ios<char,std::char_traits<char>_> *local_1b8;
longlong local_1a8;
undefined **local_1a0 [4];
undefined8 *local_180;
undefined8 *local_178;
undefined8 *local_158;
undefined4 *local_140;
undefined8 local_130;
uint local_128;
basic_ios<char,std::char_traits<char>_> local_120 [104];
WCHAR local_b8;
undefined6 uStack_b6;
undefined8 local_a8;
ulonglong local_a0;
void *local_90 [2];
undefined8 local_80;
ulonglong local_78;
char *******local_68 [3];
ulonglong local_50;
ulonglong local_40;
local_1c0 = 0xfffffffffffffffe;
local_40 = DAT_1401ac5a0 ^ (ulonglong)auStack_268;
psVar9 = &DAT_1401b35a8;
if (7 < DAT_1401b35c0) {
psVar9 = _DAT_1401b35a8;
}
local_a0 = 7;
_Str = (char *)0x0;
local_a8 = 0;
local_b8 = L'\0';
uVar5 = 0xffffffffffffffff;
psVar19 = psVar9;
do {
if (uVar5 == 0) break;
uVar5 = uVar5 - 1;
sVar1 = *psVar19;
psVar19 = psVar19 + 1;
} while (sVar1 != 0);
FUN_140001830((ulonglong *)&local_b8,psVar9,~uVar5 - 1);
FUN_140118aa0((ulonglong *)local_68,&local_b8);
if (7 < local_a0) {
operator_delete((void *)CONCAT62(uStack_b6,local_b8));
}
local_a0 = 7;
local_a8 = 0;
local_b8 = L'\0';
pppppppcVar10 = (char *******)local_68;
if (0xf < local_50) {
pppppppcVar10 = local_68[0];
}
FUN_14000c2a0(local_248,(char *)pppppppcVar10);
DAT_1401b33e8 = 0;
uVar5 = FUN_14000c370((longlong *)local_248,(char *)(local_210 + 2));
if ((char)uVar5 == '\0') {
FUN_14000abd0("Error : %d - %s",(ulonglong)local_1ec,local_1e8 + 2,param_4);
local_248[0] = TiXmlDocument::vftable;
if (local_1e8 != &DAT_1401bcf30) {
operator_delete__(local_1e0);
}
local_248[0] = TiXmlNode::vftable;
while (local_220 != (longlong *)0x0) {
plVar12 = (longlong *)local_220[10];
(**(code **)*local_220)(local_220,1);
local_220 = plVar12;
}
if (local_210 != &DAT_1401bcf30) {
operator_delete__(local_208);
}
ppuVar3 = TiXmlBase::vftable;
local_248[0] = TiXmlBase::vftable;
if (0xf < local_50) {
operator_delete(local_68[0]);
ppuVar3 = extraout_RAX;
}
return (ulonglong)ppuVar3 & 0xffffffffffffff00;
}
if ((*(byte *)(param_1 + 0x1e8) < 0xd) ||
(plVar12 = local_220, (byte)(*(byte *)(param_1 + 0x1e8) - 0x11) < 3)) {
FUN_1400602b0(param_1);
plVar12 = local_220;
}
for (; plVar12 != (longlong *)0x0; plVar12 = (longlong *)plVar12[10]) {
bVar21 = (char *)(plVar12[7] + 0x10) == (char *)0x0;
lVar6 = 0xd;
pcVar13 = (char *)(plVar12[7] + 0x10);
pcVar14 = "agentmanager";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
if (bVar21) goto LAB_14005d0c3;
}
LAB_14005d124:
*(int *)(param_1 + 0x154) = param_2;
*(undefined1 *)(param_1 + 0x150) = 1;
FUN_1400605f0((basic_ostream<char,std::char_traits<char>_> *)&local_1a8);
std::basic_ostream<char,std::char_traits<char>_>::operator<<
((basic_ostream<char,std::char_traits<char>_> *)&local_1a8,param_2);
FUN_140060690((longlong)&local_1a8,local_90);
for (plVar12 = local_220; plVar11 = local_220, plVar12 != (longlong *)0x0;
plVar12 = (longlong *)plVar12[10]) {
bVar21 = (char *)(plVar12[7] + 0x10) == (char *)0x0;
lVar6 = 0xc;
pcVar13 = (char *)(plVar12[7] + 0x10);
pcVar14 = "each_option";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
if (bVar21) goto LAB_14005d196;
}
joined_r0x00014005d31b:
do {
plVar12 = local_220;
if (plVar11 == (longlong *)0x0) goto joined_r0x00014005d3e7;
bVar21 = (char *)(plVar11[7] + 0x10) == (char *)0x0;
lVar6 = 4;
pcVar13 = (char *)(plVar11[7] + 0x10);
pcVar14 = "dns";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
if (bVar21) goto LAB_14005d347;
plVar11 = (longlong *)plVar11[10];
} while( true );
LAB_14005d0c3:
while (lVar6 = (**(code **)(*plVar12 + 0x30))(plVar12), lVar6 == 0) {
do {
plVar12 = (longlong *)plVar12[10];
if (plVar12 == (longlong *)0x0) goto LAB_14005d124;
bVar21 = (char *)(plVar12[7] + 0x10) == (char *)0x0;
lVar6 = 0xd;
pcVar13 = (char *)(plVar12[7] + 0x10);
pcVar14 = "agentmanager";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
} while (!bVar21);
}
lVar6 = (**(code **)(*plVar12 + 0x30))(plVar12);
if ((lVar6 != 0) && (lVar6 = FUN_14000b9d0(lVar6,0x1401632d0), lVar6 != 0)) {
FUN_14005fb60(param_1,lVar6,0x15);
}
goto LAB_14005d124;
LAB_14005d196:
while (lVar6 = (**(code **)(*plVar12 + 0x30))(plVar12), lVar6 == 0) {
do {
plVar12 = (longlong *)plVar12[10];
plVar11 = local_220;
if (plVar12 == (longlong *)0x0) goto joined_r0x00014005d31b;
bVar21 = (char *)(plVar12[7] + 0x10) == (char *)0x0;
lVar6 = 0xc;
pcVar13 = (char *)(plVar12[7] + 0x10);
pcVar14 = "each_option";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
} while (!bVar21);
}
lVar6 = (**(code **)(*plVar12 + 0x30))(plVar12);
plVar11 = local_220;
if (lVar6 != 0) {
for (plVar12 = *(longlong **)(lVar6 + 0x28); pcVar13 = _Str, plVar12 != (longlong *)0x0;
plVar12 = (longlong *)plVar12[10]) {
lVar6 = (**(code **)(*plVar12 + 0x30))(plVar12);
if (lVar6 != 0) {
pcVar13 = (char *)(**(code **)(*plVar12 + 0x30))(plVar12);
break;
}
}
joined_r0x00014005d213:
plVar11 = local_220;
if (pcVar13 != (char *)0x0) {
pcVar14 = (char *)(*(longlong *)(pcVar13 + 0x38) + 0x10);
if (pcVar14 != (char *)0x0) {
for (pcVar15 = *(char **)(pcVar13 + 0xa0); pcVar15 != pcVar13 + 0x58;
pcVar15 = *(char **)(pcVar15 + 0x48)) {
bVar21 = (char *)(*(longlong *)(pcVar15 + 0x20) + 0x10) == (char *)0x0;
lVar6 = 5;
pcVar16 = (char *)(*(longlong *)(pcVar15 + 0x20) + 0x10);
pcVar17 = "code";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar16 == *pcVar17;
pcVar16 = pcVar16 + 1;
pcVar17 = pcVar17 + 1;
} while (bVar21);
if (bVar21) {
if ((char *)(*(longlong *)(pcVar15 + 0x30) + 0x10) != (char *)0x0) {
pcVar16 = (char *)local_90;
if (0xf < local_78) {
pcVar16 = (char *)CONCAT71(local_90[0]._1_7_,(char)local_90[0]);
}
iVar2 = _stricmp(pcVar16,(char *)(*(longlong *)(pcVar15 + 0x30) + 0x10));
if (iVar2 == 0) {
iVar2 = _stricmp(pcVar14,"guild");
if (iVar2 == 0) {
*(undefined4 *)(param_1 + 0x158) = 1;
}
else {
iVar2 = _stricmp(pcVar14,"api");
if (iVar2 == 0) {
FUN_14005fb60(param_1,(longlong)pcVar13,0x17);
}
}
}
}
break;
}
}
}
for (plVar12 = *(longlong **)(pcVar13 + 0x50); pcVar13 = _Str, plVar12 != (longlong *)0x0;
plVar12 = (longlong *)plVar12[10]) {
lVar6 = (**(code **)(*plVar12 + 0x30))(plVar12);
if (lVar6 != 0) {
pcVar13 = (char *)(**(code **)(*plVar12 + 0x30))(plVar12);
break;
}
}
goto joined_r0x00014005d213;
}
}
goto joined_r0x00014005d31b;
LAB_14005d347:
while (lVar6 = (**(code **)(*plVar11 + 0x30))(plVar11), lVar6 == 0) {
do {
plVar11 = (longlong *)plVar11[10];
plVar12 = local_220;
if (plVar11 == (longlong *)0x0) goto joined_r0x00014005d3e7;
bVar21 = (char *)(plVar11[7] + 0x10) == (char *)0x0;
lVar6 = 4;
pcVar13 = (char *)(plVar11[7] + 0x10);
pcVar14 = "dns";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
} while (!bVar21);
}
lVar6 = (**(code **)(*plVar11 + 0x30))(plVar11);
plVar12 = local_220;
if (lVar6 != 0) {
for (lVar8 = *(longlong *)(lVar6 + 0xa0); lVar8 != lVar6 + 0x58;
lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar13 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar13 == (char *)0x0;
lVar4 = 4;
pcVar14 = "dns";
do {
if (lVar4 == 0) break;
lVar4 = lVar4 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
if (bVar21) {
pcVar13 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
if (pcVar13 != (char *)0x0) {
iVar2 = atoi(pcVar13);
*(bool *)(param_1 + 0x151) = 0 < iVar2;
plVar12 = local_220;
}
break;
}
}
}
joined_r0x00014005d3e7:
do {
plVar11 = local_220;
if (plVar12 == (longlong *)0x0) goto joined_r0x00014005d4b7;
bVar21 = (char *)(plVar12[7] + 0x10) == (char *)0x0;
lVar6 = 0xb;
pcVar13 = (char *)(plVar12[7] + 0x10);
pcVar14 = "code_start";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
if (bVar21) break;
plVar12 = (longlong *)plVar12[10];
} while( true );
while (lVar6 = (**(code **)(*plVar12 + 0x30))(plVar12), lVar6 == 0) {
do {
plVar12 = (longlong *)plVar12[10];
plVar11 = local_220;
if (plVar12 == (longlong *)0x0) goto joined_r0x00014005d4b7;
bVar21 = (char *)(plVar12[7] + 0x10) == (char *)0x0;
lVar6 = 0xb;
pcVar13 = (char *)(plVar12[7] + 0x10);
pcVar14 = "code_start";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
} while (!bVar21);
}
lVar6 = (**(code **)(*plVar12 + 0x30))(plVar12);
plVar11 = local_220;
if (lVar6 != 0) {
for (lVar8 = *(longlong *)(lVar6 + 0xa0); lVar8 != lVar6 + 0x58;
lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar13 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar13 == (char *)0x0;
lVar4 = 0xb;
pcVar14 = "code_start";
do {
if (lVar4 == 0) break;
lVar4 = lVar4 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
if (bVar21) {
pcVar13 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
if (pcVar13 != (char *)0x0) {
iVar2 = atoi(pcVar13);
*(bool *)(param_1 + 0x152) = 0 < iVar2;
plVar11 = local_220;
}
break;
}
}
}
joined_r0x00014005d4b7:
do {
if (plVar11 == (longlong *)0x0) goto LAB_14005d6fc;
bVar21 = (char *)(plVar11[7] + 0x10) == (char *)0x0;
lVar6 = 8;
pcVar13 = (char *)(plVar11[7] + 0x10);
pcVar14 = "setting";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
if (bVar21) break;
plVar11 = (longlong *)plVar11[10];
} while( true );
while (lVar6 = (**(code **)(*plVar11 + 0x30))(plVar11), lVar6 == 0) {
do {
plVar11 = (longlong *)plVar11[10];
if (plVar11 == (longlong *)0x0) goto LAB_14005d6fc;
bVar21 = (char *)(plVar11[7] + 0x10) == (char *)0x0;
lVar6 = 8;
pcVar13 = (char *)(plVar11[7] + 0x10);
pcVar14 = "setting";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
} while (!bVar21);
}
lVar6 = (**(code **)(*plVar11 + 0x30))(plVar11);
if (lVar6 != 0) {
lVar4 = lVar6 + 0x58;
for (lVar8 = *(longlong *)(lVar6 + 0xa0); pcVar13 = _Str, lVar8 != lVar4;
lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar13 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar13 == (char *)0x0;
lVar7 = 6;
pcVar14 = "multi";
do {
if (lVar7 == 0) break;
lVar7 = lVar7 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
if (bVar21) {
pcVar13 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
break;
}
}
for (lVar8 = *(longlong *)(lVar6 + 0xa0); pcVar14 = _Str, lVar8 != lVar4;
lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar14 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar14 == (char *)0x0;
lVar7 = 5;
pcVar15 = "lock";
do {
if (lVar7 == 0) break;
lVar7 = lVar7 + -1;
bVar21 = *pcVar14 == *pcVar15;
pcVar14 = pcVar14 + 1;
pcVar15 = pcVar15 + 1;
} while (bVar21);
if (bVar21) {
pcVar14 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
break;
}
}
for (lVar8 = *(longlong *)(lVar6 + 0xa0); pcVar15 = _Str, lVar8 != lVar4;
lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar15 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar15 == (char *)0x0;
lVar7 = 0xd;
pcVar16 = "start_server";
do {
if (lVar7 == 0) break;
lVar7 = lVar7 + -1;
bVar21 = *pcVar15 == *pcVar16;
pcVar15 = pcVar15 + 1;
pcVar16 = pcVar16 + 1;
} while (bVar21);
if (bVar21) {
pcVar15 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
break;
}
}
for (lVar8 = *(longlong *)(lVar6 + 0xa0); pcVar16 = _Str, lVar8 != lVar4;
lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar16 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar16 == (char *)0x0;
lVar7 = 0xe;
pcVar17 = "revive_server";
do {
if (lVar7 == 0) break;
lVar7 = lVar7 + -1;
bVar21 = *pcVar16 == *pcVar17;
pcVar16 = pcVar16 + 1;
pcVar17 = pcVar17 + 1;
} while (bVar21);
if (bVar21) {
pcVar16 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
break;
}
}
for (lVar6 = *(longlong *)(lVar6 + 0xa0); pcVar17 = _Str, lVar6 != lVar4;
lVar6 = *(longlong *)(lVar6 + 0x48)) {
pcVar17 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10);
bVar21 = pcVar17 == (char *)0x0;
lVar8 = 0xd;
pcVar18 = "open_channel";
do {
if (lVar8 == 0) break;
lVar8 = lVar8 + -1;
bVar21 = *pcVar17 == *pcVar18;
pcVar17 = pcVar17 + 1;
pcVar18 = pcVar18 + 1;
} while (bVar21);
if (bVar21) {
pcVar17 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10);
break;
}
}
if (pcVar13 != (char *)0x0) {
iVar2 = atoi(pcVar13);
*(bool *)(param_1 + 0x166) = 0 < iVar2;
}
if (pcVar16 != (char *)0x0) {
iVar2 = atoi(pcVar16);
*(bool *)(param_1 + 0x171) = 0 < iVar2;
}
if (pcVar17 != (char *)0x0) {
iVar2 = atoi(pcVar17);
*(bool *)(param_1 + 0x170) = 0 < iVar2;
}
if (pcVar14 != (char *)0x0) {
iVar2 = atoi(pcVar14);
*(double *)(param_1 + 0x168) = (double)iVar2;
}
if (pcVar15 != (char *)0x0) {
iVar2 = atoi(pcVar15);
*(double *)(param_1 + 0x178) = (double)iVar2;
}
}
LAB_14005d6fc:
DAT_1401bcf08 = 0;
DAT_1401bcf09 = 0;
DAT_1401bcf0a = 0;
DAT_1401bcf0b = 0;
DAT_1401bcf0c = 0;
DAT_1401bcf0d = 1;
DAT_1401bcf0e = 1;
for (plVar12 = local_220; plVar12 != (longlong *)0x0; plVar12 = (longlong *)plVar12[10]) {
bVar21 = (char *)(plVar12[7] + 0x10) == (char *)0x0;
lVar6 = 8;
pcVar13 = (char *)(plVar12[7] + 0x10);
pcVar14 = "develop";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
if (bVar21) goto LAB_14005d766;
}
goto LAB_14005da13;
LAB_14005d766:
while (lVar6 = (**(code **)(*plVar12 + 0x30))(plVar12), lVar6 == 0) {
do {
plVar12 = (longlong *)plVar12[10];
if (plVar12 == (longlong *)0x0) goto LAB_14005da13;
bVar21 = (char *)(plVar12[7] + 0x10) == (char *)0x0;
lVar6 = 8;
pcVar13 = (char *)(plVar12[7] + 0x10);
pcVar14 = "develop";
do {
if (lVar6 == 0) break;
lVar6 = lVar6 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
} while (!bVar21);
}
lVar6 = (**(code **)(*plVar12 + 0x30))(plVar12);
if (lVar6 != 0) {
lVar4 = lVar6 + 0x58;
for (lVar8 = *(longlong *)(lVar6 + 0xa0); pcVar13 = _Str, lVar8 != lVar4;
lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar13 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar13 == (char *)0x0;
lVar7 = 8;
pcVar14 = "preload";
do {
if (lVar7 == 0) break;
lVar7 = lVar7 + -1;
bVar21 = *pcVar13 == *pcVar14;
pcVar13 = pcVar13 + 1;
pcVar14 = pcVar14 + 1;
} while (bVar21);
if (bVar21) {
pcVar13 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
break;
}
}
for (lVar8 = *(longlong *)(lVar6 + 0xa0); lVar8 != lVar4; lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar14 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar14 == (char *)0x0;
lVar7 = 0xd;
pcVar15 = "preload_char";
do {
if (lVar7 == 0) break;
lVar7 = lVar7 + -1;
bVar21 = *pcVar14 == *pcVar15;
pcVar14 = pcVar14 + 1;
pcVar15 = pcVar15 + 1;
} while (bVar21);
if (bVar21) {
_Str = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
break;
}
}
for (lVar8 = *(longlong *)(lVar6 + 0xa0); lVar8 != lVar4; lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar14 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar14 == (char *)0x0;
lVar7 = 0xc;
pcVar15 = "enemy_debug";
do {
if (lVar7 == 0) break;
lVar7 = lVar7 + -1;
bVar21 = *pcVar14 == *pcVar15;
pcVar14 = pcVar14 + 1;
pcVar15 = pcVar15 + 1;
} while (bVar21);
if (bVar21) {
pcVar14 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
goto LAB_14005d870;
}
}
pcVar14 = (char *)0x0;
LAB_14005d870:
for (lVar8 = *(longlong *)(lVar6 + 0xa0); lVar8 != lVar4; lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar15 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar15 == (char *)0x0;
lVar7 = 10;
pcVar16 = "enemy_one";
do {
if (lVar7 == 0) break;
lVar7 = lVar7 + -1;
bVar21 = *pcVar15 == *pcVar16;
pcVar15 = pcVar15 + 1;
pcVar16 = pcVar16 + 1;
} while (bVar21);
if (bVar21) {
pcVar15 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
goto LAB_14005d8b0;
}
}
pcVar15 = (char *)0x0;
LAB_14005d8b0:
for (lVar8 = *(longlong *)(lVar6 + 0xa0); lVar8 != lVar4; lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar16 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar16 == (char *)0x0;
lVar7 = 0xd;
pcVar17 = "player_debug";
do {
if (lVar7 == 0) break;
lVar7 = lVar7 + -1;
bVar21 = *pcVar16 == *pcVar17;
pcVar16 = pcVar16 + 1;
pcVar17 = pcVar17 + 1;
} while (bVar21);
if (bVar21) {
pcVar16 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
goto LAB_14005d8f0;
}
}
pcVar16 = (char *)0x0;
LAB_14005d8f0:
for (lVar8 = *(longlong *)(lVar6 + 0xa0); lVar8 != lVar4; lVar8 = *(longlong *)(lVar8 + 0x48)) {
pcVar17 = (char *)(*(longlong *)(lVar8 + 0x20) + 0x10);
bVar21 = pcVar17 == (char *)0x0;
lVar7 = 9;
pcVar18 = "lua_text";
do {
if (lVar7 == 0) break;
lVar7 = lVar7 + -1;
bVar21 = *pcVar17 == *pcVar18;
pcVar17 = pcVar17 + 1;
pcVar18 = pcVar18 + 1;
} while (bVar21);
if (bVar21) {
pcVar17 = (char *)(*(longlong *)(lVar8 + 0x30) + 0x10);
goto LAB_14005d92f;
}
}
pcVar17 = (char *)0x0;
LAB_14005d92f:
for (lVar6 = *(longlong *)(lVar6 + 0xa0); lVar6 != lVar4; lVar6 = *(longlong *)(lVar6 + 0x48)) {
pcVar18 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10);
bVar21 = pcVar18 == (char *)0x0;
lVar8 = 9;
pcVar20 = "lua_send";
do {
if (lVar8 == 0) break;
lVar8 = lVar8 + -1;
bVar21 = *pcVar18 == *pcVar20;
pcVar18 = pcVar18 + 1;
pcVar20 = pcVar20 + 1;
} while (bVar21);
if (bVar21) {
pcVar18 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10);
goto LAB_14005d96f;
}
}
pcVar18 = (char *)0x0;
LAB_14005d96f:
if (pcVar13 != (char *)0x0) {
iVar2 = atoi(pcVar13);
DAT_1401bcf0d = 0 < iVar2;
}
if (_Str != (char *)0x0) {
iVar2 = atoi(_Str);
DAT_1401bcf0e = 0 < iVar2;
}
if (pcVar15 != (char *)0x0) {
iVar2 = atoi(pcVar15);
DAT_1401bcf09 = 0 < iVar2;
}
if (pcVar14 != (char *)0x0) {
iVar2 = atoi(pcVar14);
DAT_1401bcf08 = 0 < iVar2;
}
if (pcVar16 != (char *)0x0) {
iVar2 = atoi(pcVar16);
DAT_1401bcf0a = 0 < iVar2;
}
if (pcVar17 != (char *)0x0) {
iVar2 = atoi(pcVar17);
DAT_1401bcf0b = 0 < iVar2;
}
if (pcVar18 != (char *)0x0) {
iVar2 = atoi(pcVar18);
DAT_1401bcf0c = 0 < iVar2;
}
}
LAB_14005da13:
if (0xf < local_78) {
operator_delete((void *)CONCAT71(local_90[0]._1_7_,(char)local_90[0]));
}
local_78 = 0xf;
local_80 = 0;
local_90[0]._0_1_ = '\0';
local_1b8 = local_120;
*(undefined ***)((longlong)local_1a0 + (longlong)*(int *)(local_1a8 + 4) + -8) =
std::basic_ostringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable;
local_1c8 = local_1a0;
local_1a0[0] = std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char>_>::vftable;
if ((local_128 & 1) != 0) {
operator_delete((void *)*local_180);
}
std::basic_streambuf<char,std::char_traits<char>_>::setg
((basic_streambuf<char,std::char_traits<char>_> *)local_1a0,(char *)0x0,(char *)0x0,
(char *)0x0);
*local_178 = 0;
*local_158 = 0;
*local_140 = 0;
local_130 = 0;
local_128 = local_128 & 0xfffffffe;
std::basic_streambuf<char,std::char_traits<char>_>::~basic_streambuf<char,std::char_traits<char>_>
((basic_streambuf<char,std::char_traits<char>_> *)local_1a0);
*(code **)((longlong)local_1a0 + (longlong)*(int *)(local_1a8 + 4) + -8) = _vftable__exref;
std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>(local_120);
local_248[0] = TiXmlDocument::vftable;
if (local_1e8 != &DAT_1401bcf30) {
operator_delete__(local_1e0);
}
local_248[0] = TiXmlNode::vftable;
while (local_220 != (longlong *)0x0) {
plVar12 = (longlong *)local_220[10];
(**(code **)*local_220)(local_220,1);
local_220 = plVar12;
}
if (local_210 != &DAT_1401bcf30) {
operator_delete__(local_208);
}
ppuVar3 = TiXmlBase::vftable;
local_248[0] = TiXmlBase::vftable;
if (0xf < local_50) {
operator_delete(local_68[0]);
ppuVar3 = extraout_RAX_00;
}
return CONCAT71((int7)((ulonglong)ppuVar3 >> 8),1);
}