decomp DBCServer_Release and inspect/document database
This commit is contained in:
parent
4b267cbe05
commit
7834b98bf0
28222 changed files with 843300 additions and 144 deletions
935
decomp/MessageServer_Release_x64/full/functions/0x140004f00.c
Normal file
935
decomp/MessageServer_Release_x64/full/functions/0x140004f00.c
Normal file
|
|
@ -0,0 +1,935 @@
|
|||
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
||||
* Ghidra 12.1.2 decompiler output for 0x140004f00 FUN_140004f00
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
undefined8 FUN_140004f00(longlong param_1,undefined8 param_2,undefined *param_3,char *param_4)
|
||||
|
||||
{
|
||||
longlong *plVar1;
|
||||
double dVar2;
|
||||
undefined1 auVar3 [16];
|
||||
undefined1 auVar4 [16];
|
||||
undefined1 auVar5 [16];
|
||||
undefined1 auVar6 [16];
|
||||
bool bVar7;
|
||||
_Container_base0 *p_Var8;
|
||||
DWORD DVar9;
|
||||
DWORD DVar10;
|
||||
int iVar11;
|
||||
_Container_base0 *p_Var12;
|
||||
_Container_base0 *p_Var13;
|
||||
ulonglong uVar14;
|
||||
undefined8 *puVar15;
|
||||
undefined8 uVar16;
|
||||
longlong *plVar17;
|
||||
longlong *plVar18;
|
||||
longlong *plVar19;
|
||||
longlong *plVar20;
|
||||
char *pcVar21;
|
||||
longlong lVar22;
|
||||
short **ppsVar23;
|
||||
char *_Src;
|
||||
undefined *puVar24;
|
||||
char *pcVar25;
|
||||
undefined *puVar26;
|
||||
char *pcVar27;
|
||||
longlong lVar28;
|
||||
undefined4 uVar29;
|
||||
undefined4 uVar30;
|
||||
undefined4 uVar31;
|
||||
undefined4 uVar32;
|
||||
undefined4 uVar33;
|
||||
undefined1 auStack_488 [32];
|
||||
longlong *local_468;
|
||||
longlong *local_460;
|
||||
_Container_base0 *local_458;
|
||||
_Container_base0 *local_450;
|
||||
_Container_base0 *local_448;
|
||||
longlong *local_440;
|
||||
longlong local_438;
|
||||
_Container_base0 *local_430;
|
||||
longlong *local_428;
|
||||
longlong *local_420;
|
||||
undefined4 local_418 [2];
|
||||
undefined4 local_410 [2];
|
||||
undefined4 local_408 [2];
|
||||
void *local_400;
|
||||
longlong local_3f8;
|
||||
undefined8 local_3f0;
|
||||
undefined8 *local_3e0;
|
||||
undefined8 *local_3d8;
|
||||
undefined8 *local_3d0;
|
||||
undefined8 *local_3c8;
|
||||
undefined8 *local_3c0;
|
||||
undefined8 *local_3b8;
|
||||
undefined8 *local_3b0;
|
||||
undefined8 *local_3a8;
|
||||
undefined8 *local_3a0;
|
||||
_Container_base0 *local_398;
|
||||
undefined1 local_390;
|
||||
int *local_388;
|
||||
undefined1 local_380;
|
||||
char *local_378;
|
||||
DWORD local_370;
|
||||
undefined8 local_368;
|
||||
char *local_360;
|
||||
DWORD local_358;
|
||||
undefined2 local_348;
|
||||
undefined1 local_346 [158];
|
||||
undefined1 local_2a8 [160];
|
||||
short *local_208;
|
||||
undefined2 local_200;
|
||||
undefined6 uStack_1fe;
|
||||
undefined8 local_1f0;
|
||||
ulonglong local_1e8;
|
||||
undefined2 local_1d8;
|
||||
undefined6 uStack_1d6;
|
||||
undefined8 local_1c8;
|
||||
ulonglong local_1c0;
|
||||
short *local_1a8;
|
||||
undefined2 local_1a0;
|
||||
undefined6 uStack_19e;
|
||||
undefined8 local_190;
|
||||
ulonglong local_188;
|
||||
undefined2 local_178;
|
||||
undefined6 uStack_176;
|
||||
undefined8 local_168;
|
||||
ulonglong local_160;
|
||||
short *local_148;
|
||||
undefined2 local_140;
|
||||
undefined6 uStack_13e;
|
||||
undefined8 local_130;
|
||||
ulonglong local_128;
|
||||
undefined2 local_118;
|
||||
undefined6 uStack_116;
|
||||
undefined8 local_108;
|
||||
ulonglong local_100;
|
||||
short *local_e8;
|
||||
undefined2 local_e0;
|
||||
undefined6 uStack_de;
|
||||
undefined8 local_d0;
|
||||
ulonglong local_c8;
|
||||
undefined2 local_b8;
|
||||
undefined6 uStack_b6;
|
||||
undefined8 local_a8;
|
||||
ulonglong local_a0;
|
||||
ulonglong local_88;
|
||||
|
||||
local_368 = 0xfffffffffffffffe;
|
||||
local_88 = DAT_1401ac5a0 ^ (ulonglong)auStack_488;
|
||||
local_438 = param_1;
|
||||
FUN_14000a810(L"# Msg Server Startup #\n\n",param_2,param_3,param_4);
|
||||
CoInitialize((LPVOID)0x0);
|
||||
FUN_14000a950(L"+ Prepare Startup\n",param_2,param_3,param_4);
|
||||
local_428 = operator_new(0x148);
|
||||
p_Var13 = (_Container_base0 *)0x0;
|
||||
p_Var12 = p_Var13;
|
||||
if (local_428 != (undefined8 *)0x0) {
|
||||
p_Var12 = (_Container_base0 *)FUN_140006690(local_428,param_2,param_3,param_4);
|
||||
}
|
||||
if (p_Var12 == (_Container_base0 *)0x0) {
|
||||
local_440 = (longlong *)0x0;
|
||||
}
|
||||
else {
|
||||
local_440 = (longlong *)FUN_14006cbf0(0x10);
|
||||
local_440[1] = 1;
|
||||
*local_440 = (longlong)p_Var12;
|
||||
}
|
||||
local_448 = operator_new(0xf0);
|
||||
p_Var12 = p_Var13;
|
||||
if (local_448 != (_Container_base0 *)0x0) {
|
||||
if ((local_440 != (longlong *)0x0) && (*local_440 != 0)) {
|
||||
p_Var12 = (_Container_base0 *)(*local_440 + 0x28);
|
||||
}
|
||||
p_Var12 = (_Container_base0 *)FUN_140064310((undefined8 *)local_448,p_Var12,param_3,param_4);
|
||||
}
|
||||
if (p_Var12 == (_Container_base0 *)0x0) {
|
||||
local_458 = (_Container_base0 *)0x0;
|
||||
}
|
||||
else {
|
||||
p_Var13 = (_Container_base0 *)FUN_14006cbf0(0x48);
|
||||
local_448 = p_Var13;
|
||||
local_430 = p_Var13;
|
||||
if (p_Var13 != (_Container_base0 *)0x0) {
|
||||
uVar14 = FUN_140079250();
|
||||
param_3 = (undefined *)CONCAT71((int7)((ulonglong)param_3 >> 8),1);
|
||||
FUN_14006b270((undefined4 *)p_Var13,uVar14 & 0xffffffff,param_3,param_4);
|
||||
}
|
||||
local_458 = p_Var13;
|
||||
FUN_14006b350((int *)p_Var13);
|
||||
*(longlong *)(p_Var13 + 0x40) = 1;
|
||||
*(_Container_base0 **)(p_Var13 + 0x38) = p_Var12;
|
||||
FUN_14006b3e0((longlong)p_Var13);
|
||||
}
|
||||
puVar15 = operator_new(0x20);
|
||||
if (puVar15 == (undefined8 *)0x0) {
|
||||
local_468 = (longlong *)0x0;
|
||||
}
|
||||
else {
|
||||
*puVar15 = 0;
|
||||
puVar15[1] = 0;
|
||||
puVar15[2] = 0;
|
||||
local_468 = (longlong *)FUN_14006cbf0(0x10);
|
||||
local_468[1] = 1;
|
||||
*local_468 = (longlong)puVar15;
|
||||
}
|
||||
plVar17 = local_468;
|
||||
local_420 = local_468;
|
||||
puVar15 = operator_new(0x20);
|
||||
if (puVar15 == (undefined8 *)0x0) {
|
||||
local_460 = (longlong *)0x0;
|
||||
}
|
||||
else {
|
||||
*puVar15 = 0;
|
||||
puVar15[1] = 0;
|
||||
puVar15[2] = 0;
|
||||
local_460 = (longlong *)FUN_14006cbf0(0x10);
|
||||
local_460[1] = 1;
|
||||
*local_460 = (longlong)puVar15;
|
||||
}
|
||||
plVar20 = local_460;
|
||||
local_430 = (_Container_base0 *)local_460;
|
||||
puVar15 = operator_new(0x20);
|
||||
if (puVar15 == (undefined8 *)0x0) {
|
||||
local_450 = (_Container_base0 *)0x0;
|
||||
}
|
||||
else {
|
||||
*puVar15 = 0;
|
||||
puVar15[1] = 0;
|
||||
puVar15[2] = 0;
|
||||
local_450 = (_Container_base0 *)FUN_14006cbf0(0x10);
|
||||
*(longlong *)(local_450 + 8) = 1;
|
||||
*(undefined8 **)local_450 = puVar15;
|
||||
}
|
||||
p_Var12 = local_450;
|
||||
local_448 = local_450;
|
||||
puVar15 = operator_new(0x20);
|
||||
if (puVar15 == (undefined8 *)0x0) {
|
||||
local_428 = (longlong *)0x0;
|
||||
}
|
||||
else {
|
||||
*puVar15 = 0;
|
||||
puVar15[1] = 0;
|
||||
puVar15[2] = 0;
|
||||
local_428 = (longlong *)FUN_14006cbf0(0x10);
|
||||
local_428[1] = 1;
|
||||
*local_428 = (longlong)puVar15;
|
||||
}
|
||||
plVar1 = local_428;
|
||||
lVar22 = 0;
|
||||
lVar28 = lVar22;
|
||||
if (p_Var13 != (_Container_base0 *)0x0) {
|
||||
lVar28 = *(longlong *)(p_Var13 + 0x38);
|
||||
}
|
||||
*(longlong *)(param_1 + 0x30) = lVar28;
|
||||
lVar28 = lVar22;
|
||||
if (local_440 != (longlong *)0x0) {
|
||||
lVar28 = *local_440;
|
||||
}
|
||||
*(longlong *)(param_1 + 0x58) = lVar28;
|
||||
lVar28 = lVar22;
|
||||
if (plVar17 != (longlong *)0x0) {
|
||||
lVar28 = *plVar17;
|
||||
}
|
||||
*(longlong *)(param_1 + 0x60) = lVar28;
|
||||
lVar28 = lVar22;
|
||||
if (plVar20 != (longlong *)0x0) {
|
||||
lVar28 = *plVar20;
|
||||
}
|
||||
*(longlong *)(param_1 + 0x68) = lVar28;
|
||||
lVar28 = lVar22;
|
||||
if (p_Var12 != (_Container_base0 *)0x0) {
|
||||
lVar28 = *(longlong *)p_Var12;
|
||||
}
|
||||
*(longlong *)(param_1 + 0x70) = lVar28;
|
||||
lVar28 = lVar22;
|
||||
if (local_428 != (longlong *)0x0) {
|
||||
lVar28 = *local_428;
|
||||
}
|
||||
*(longlong *)(param_1 + 0x78) = lVar28;
|
||||
local_408[0] = 1;
|
||||
*(undefined4 *)(param_1 + 8) = 1;
|
||||
printf("STEP : AGENT \n");
|
||||
lVar28 = *(longlong *)(param_1 + 0x30);
|
||||
if ((lVar28 != 0) && (*(char *)(lVar28 + 0x1a) != '\0')) {
|
||||
param_4 = (char *)local_408;
|
||||
param_3 = &DAT_1401ac5d0;
|
||||
lVar22 = 1;
|
||||
(**(code **)(*(longlong *)(lVar28 + 0x68) + 0xb0))();
|
||||
}
|
||||
if ((*(longlong *)(param_1 + 0x30) == 0) ||
|
||||
(uVar16 = FUN_140064850(*(longlong *)(param_1 + 0x30),lVar22,param_3,(longlong)param_4),
|
||||
plVar19 = local_428, (char)uVar16 != '\0')) {
|
||||
FUN_140009330(*(ulonglong **)(param_1 + 0x60),*(uint *)(DAT_1401bd038 + 0x144),0xc,
|
||||
(longlong)param_4);
|
||||
FUN_140009330(*(ulonglong **)(param_1 + 0x68),*(uint *)(DAT_1401bd038 + 0x144),0x11,
|
||||
(longlong)param_4);
|
||||
FUN_140009330(*(ulonglong **)(param_1 + 0x70),*(uint *)(DAT_1401bd038 + 0x144),0x12,
|
||||
(longlong)param_4);
|
||||
uVar16 = 0x13;
|
||||
ppsVar23 = (short **)(ulonglong)*(uint *)(DAT_1401bd038 + 0x144);
|
||||
FUN_140009330(*(ulonglong **)(param_1 + 0x78),*(uint *)(DAT_1401bd038 + 0x144),0x13,
|
||||
(longlong)param_4);
|
||||
FUN_140006b20(*(longlong *)(param_1 + 0x58),ppsVar23,uVar16,(longlong)param_4);
|
||||
*(undefined8 *)(*(longlong *)(param_1 + 0x58) + 0xa0) = *(undefined8 *)(param_1 + 0x30);
|
||||
local_418[0] = 3;
|
||||
*(undefined4 *)(param_1 + 8) = 3;
|
||||
printf("STEP : DB_LOAD \n");
|
||||
lVar28 = *(longlong *)(param_1 + 0x30);
|
||||
if ((lVar28 != 0) && (*(char *)(lVar28 + 0x1a) != '\0')) {
|
||||
param_4 = (char *)local_418;
|
||||
ppsVar23 = (short **)0x1;
|
||||
(**(code **)(*(longlong *)(lVar28 + 0x68) + 0xb0))
|
||||
((longlong *)(lVar28 + 0x68),1,&DAT_1401ac5d0);
|
||||
}
|
||||
local_410[0] = 4;
|
||||
*(undefined4 *)(param_1 + 8) = 4;
|
||||
printf("STEP : SESSION_CONNECT \n");
|
||||
lVar28 = *(longlong *)(param_1 + 0x30);
|
||||
if ((lVar28 != 0) && (*(char *)(lVar28 + 0x1a) != '\0')) {
|
||||
param_4 = (char *)local_410;
|
||||
ppsVar23 = (short **)0x1;
|
||||
(**(code **)(*(longlong *)(lVar28 + 0x68) + 0xb0))
|
||||
((longlong *)(lVar28 + 0x68),1,&DAT_1401ac5d0);
|
||||
}
|
||||
local_e8 = (short *)0x0;
|
||||
local_c8 = 7;
|
||||
local_d0 = 0;
|
||||
local_e0 = 0;
|
||||
local_a0 = 7;
|
||||
local_a8 = 0;
|
||||
local_b8 = 0;
|
||||
if (*(longlong *)(DAT_1401bd038 + 0x1c8) != 0) {
|
||||
auVar3._8_8_ = 0;
|
||||
auVar3._0_8_ = *(ulonglong *)(DAT_1401bd038 + 0x1b0);
|
||||
ppsVar23 = SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xc)) % auVar3,0);
|
||||
local_3e0 = (undefined8 *)(*(longlong *)(DAT_1401bd038 + 0x1a8) + (longlong)ppsVar23 * 8);
|
||||
for (local_3d8 = (undefined8 *)*local_3e0; local_3d8 != (undefined8 *)0x0;
|
||||
local_3d8 = (undefined8 *)*local_3d8) {
|
||||
if (*(char *)(local_3d8 + 1) == '\f') {
|
||||
if (local_3d8 != (undefined8 *)0x0) goto LAB_140005542;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_3e0 = (undefined8 *)0x0;
|
||||
local_3d8 = (undefined8 *)0x0;
|
||||
LAB_140005542:
|
||||
if ((local_3d8 != (undefined8 *)0x0) &&
|
||||
(puVar15 = (undefined8 *)local_3d8[2], puVar15 != (undefined8 *)local_3d8[3])) {
|
||||
local_e8 = (short *)*puVar15;
|
||||
FUN_140001750((longlong *)&local_e0,puVar15 + 1,0,0xffffffffffffffff);
|
||||
param_4 = (char *)0xffffffffffffffff;
|
||||
uVar14 = 0;
|
||||
FUN_140001750((longlong *)&local_b8,puVar15 + 6,0,0xffffffffffffffff);
|
||||
plVar19 = (longlong *)0x0;
|
||||
plVar18 = plVar19;
|
||||
if (plVar17 != (longlong *)0x0) {
|
||||
plVar18 = (longlong *)*plVar17;
|
||||
}
|
||||
ppsVar23 = &local_e8;
|
||||
FUN_1400096b0(plVar18,ppsVar23,uVar14,param_4);
|
||||
if (plVar17 != (longlong *)0x0) {
|
||||
plVar19 = (longlong *)*plVar17;
|
||||
}
|
||||
FUN_140009b10(plVar19,(wchar_t *)ppsVar23,uVar14,param_4);
|
||||
}
|
||||
if (7 < local_a0) {
|
||||
operator_delete((void *)CONCAT62(uStack_b6,local_b8));
|
||||
}
|
||||
local_a0 = 7;
|
||||
local_a8 = 0;
|
||||
local_b8 = 0;
|
||||
if (7 < local_c8) {
|
||||
operator_delete((void *)CONCAT62(uStack_de,local_e0));
|
||||
}
|
||||
local_c8 = 7;
|
||||
local_d0 = 0;
|
||||
local_e0 = 0;
|
||||
local_1a8 = (short *)0x0;
|
||||
local_188 = 7;
|
||||
local_190 = 0;
|
||||
local_1a0 = 0;
|
||||
local_160 = 7;
|
||||
local_168 = 0;
|
||||
local_178 = 0;
|
||||
if (*(longlong *)(DAT_1401bd038 + 0x1c8) != 0) {
|
||||
auVar4._8_8_ = 0;
|
||||
auVar4._0_8_ = *(ulonglong *)(DAT_1401bd038 + 0x1b0);
|
||||
ppsVar23 = SUB168((ZEXT816(0) << 0x40 | ZEXT816(0x11)) % auVar4,0);
|
||||
local_3a8 = (undefined8 *)(*(longlong *)(DAT_1401bd038 + 0x1a8) + (longlong)ppsVar23 * 8);
|
||||
for (local_3a0 = (undefined8 *)*local_3a8; local_3a0 != (undefined8 *)0x0;
|
||||
local_3a0 = (undefined8 *)*local_3a0) {
|
||||
if (*(char *)(local_3a0 + 1) == '\x11') {
|
||||
if (local_3a0 != (undefined8 *)0x0) goto LAB_1400056c2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_3a8 = (undefined8 *)0x0;
|
||||
local_3a0 = (undefined8 *)0x0;
|
||||
LAB_1400056c2:
|
||||
if ((local_3a0 != (undefined8 *)0x0) &&
|
||||
(puVar15 = (undefined8 *)local_3a0[2], puVar15 != (undefined8 *)local_3a0[3])) {
|
||||
local_1a8 = (short *)*puVar15;
|
||||
FUN_140001750((longlong *)&local_1a0,puVar15 + 1,0,0xffffffffffffffff);
|
||||
param_4 = (char *)0xffffffffffffffff;
|
||||
uVar14 = 0;
|
||||
FUN_140001750((longlong *)&local_178,puVar15 + 6,0,0xffffffffffffffff);
|
||||
plVar17 = (longlong *)0x0;
|
||||
plVar19 = plVar17;
|
||||
if (plVar20 != (longlong *)0x0) {
|
||||
plVar19 = (longlong *)*plVar20;
|
||||
}
|
||||
ppsVar23 = &local_1a8;
|
||||
FUN_1400096b0(plVar19,ppsVar23,uVar14,param_4);
|
||||
if (plVar20 != (longlong *)0x0) {
|
||||
plVar17 = (longlong *)*plVar20;
|
||||
}
|
||||
FUN_140009b10(plVar17,(wchar_t *)ppsVar23,uVar14,param_4);
|
||||
}
|
||||
if (7 < local_160) {
|
||||
operator_delete((void *)CONCAT62(uStack_176,local_178));
|
||||
}
|
||||
local_160 = 7;
|
||||
local_168 = 0;
|
||||
local_178 = 0;
|
||||
if (7 < local_188) {
|
||||
operator_delete((void *)CONCAT62(uStack_19e,local_1a0));
|
||||
}
|
||||
local_188 = 7;
|
||||
local_190 = 0;
|
||||
local_1a0 = 0;
|
||||
local_208 = (short *)0x0;
|
||||
local_1e8 = 7;
|
||||
local_1f0 = 0;
|
||||
local_200 = 0;
|
||||
local_1c0 = 7;
|
||||
local_1c8 = 0;
|
||||
local_1d8 = 0;
|
||||
if (*(longlong *)(DAT_1401bd038 + 0x1c8) != 0) {
|
||||
auVar5._8_8_ = 0;
|
||||
auVar5._0_8_ = *(ulonglong *)(DAT_1401bd038 + 0x1b0);
|
||||
ppsVar23 = SUB168((ZEXT816(0) << 0x40 | ZEXT816(0x12)) % auVar5,0);
|
||||
local_3b8 = (undefined8 *)(*(longlong *)(DAT_1401bd038 + 0x1a8) + (longlong)ppsVar23 * 8);
|
||||
for (local_3b0 = (undefined8 *)*local_3b8; local_3b0 != (undefined8 *)0x0;
|
||||
local_3b0 = (undefined8 *)*local_3b0) {
|
||||
if (*(char *)(local_3b0 + 1) == '\x12') {
|
||||
if (local_3b0 != (undefined8 *)0x0) goto LAB_140005842;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_3b8 = (undefined8 *)0x0;
|
||||
local_3b0 = (undefined8 *)0x0;
|
||||
LAB_140005842:
|
||||
if ((local_3b0 != (undefined8 *)0x0) &&
|
||||
(puVar15 = (undefined8 *)local_3b0[2], puVar15 != (undefined8 *)local_3b0[3])) {
|
||||
local_208 = (short *)*puVar15;
|
||||
FUN_140001750((longlong *)&local_200,puVar15 + 1,0,0xffffffffffffffff);
|
||||
param_4 = (char *)0xffffffffffffffff;
|
||||
uVar16 = 0;
|
||||
FUN_140001750((longlong *)&local_1d8,puVar15 + 6,0,0xffffffffffffffff);
|
||||
plVar17 = (longlong *)0x0;
|
||||
plVar20 = plVar17;
|
||||
if (p_Var12 != (_Container_base0 *)0x0) {
|
||||
plVar20 = *(longlong **)p_Var12;
|
||||
}
|
||||
ppsVar23 = &local_208;
|
||||
FUN_1400096b0(plVar20,ppsVar23,uVar16,param_4);
|
||||
if (p_Var12 != (_Container_base0 *)0x0) {
|
||||
plVar17 = *(longlong **)p_Var12;
|
||||
}
|
||||
FUN_140009890(plVar17,(undefined **)ppsVar23,uVar16,param_4);
|
||||
}
|
||||
if (7 < local_1c0) {
|
||||
operator_delete((void *)CONCAT62(uStack_1d6,local_1d8));
|
||||
}
|
||||
local_1c0 = 7;
|
||||
local_1c8 = 0;
|
||||
local_1d8 = 0;
|
||||
if (7 < local_1e8) {
|
||||
operator_delete((void *)CONCAT62(uStack_1fe,local_200));
|
||||
}
|
||||
local_1e8 = 7;
|
||||
local_1f0 = 0;
|
||||
local_200 = 0;
|
||||
local_148 = (short *)0x0;
|
||||
local_128 = 7;
|
||||
local_130 = 0;
|
||||
local_140 = 0;
|
||||
local_100 = 7;
|
||||
local_108 = 0;
|
||||
local_118 = 0;
|
||||
if (*(longlong *)(DAT_1401bd038 + 0x1c8) != 0) {
|
||||
auVar6._8_8_ = 0;
|
||||
auVar6._0_8_ = *(ulonglong *)(DAT_1401bd038 + 0x1b0);
|
||||
ppsVar23 = SUB168((ZEXT816(0) << 0x40 | ZEXT816(0x13)) % auVar6,0);
|
||||
local_3d0 = (undefined8 *)(*(longlong *)(DAT_1401bd038 + 0x1a8) + (longlong)ppsVar23 * 8);
|
||||
for (local_3c8 = (undefined8 *)*local_3d0; local_3c8 != (undefined8 *)0x0;
|
||||
local_3c8 = (undefined8 *)*local_3c8) {
|
||||
if (*(char *)(local_3c8 + 1) == '\x13') {
|
||||
if (local_3c8 != (undefined8 *)0x0) goto LAB_1400059c2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_3d0 = (undefined8 *)0x0;
|
||||
local_3c8 = (undefined8 *)0x0;
|
||||
LAB_1400059c2:
|
||||
if ((local_3c8 != (undefined8 *)0x0) &&
|
||||
(puVar15 = (undefined8 *)local_3c8[2], puVar15 != (undefined8 *)local_3c8[3])) {
|
||||
local_148 = (short *)*puVar15;
|
||||
FUN_140001750((longlong *)&local_140,puVar15 + 1,0,0xffffffffffffffff);
|
||||
param_4 = (char *)0xffffffffffffffff;
|
||||
uVar16 = 0;
|
||||
FUN_140001750((longlong *)&local_118,puVar15 + 6,0,0xffffffffffffffff);
|
||||
plVar17 = (longlong *)0x0;
|
||||
plVar20 = plVar17;
|
||||
if (plVar1 != (longlong *)0x0) {
|
||||
plVar20 = (longlong *)*plVar1;
|
||||
}
|
||||
ppsVar23 = &local_148;
|
||||
FUN_1400096b0(plVar20,ppsVar23,uVar16,param_4);
|
||||
if (plVar1 != (longlong *)0x0) {
|
||||
plVar17 = (longlong *)*plVar1;
|
||||
}
|
||||
FUN_140009890(plVar17,(undefined **)ppsVar23,uVar16,param_4);
|
||||
}
|
||||
plVar17 = (longlong *)0x0;
|
||||
uVar14 = local_100;
|
||||
if (7 < local_100) {
|
||||
operator_delete((void *)CONCAT62(uStack_116,local_118));
|
||||
uVar14 = local_100;
|
||||
}
|
||||
local_100 = 7;
|
||||
local_108 = 0;
|
||||
local_118 = 0;
|
||||
if (7 < local_128) {
|
||||
operator_delete((void *)CONCAT62(uStack_13e,local_140));
|
||||
}
|
||||
local_128 = 7;
|
||||
local_130 = 0;
|
||||
local_140 = 0;
|
||||
*(undefined8 *)(*(longlong *)(param_1 + 0x58) + 0x80) = *(undefined8 *)(param_1 + 0x60);
|
||||
*(undefined8 *)(*(longlong *)(param_1 + 0x58) + 0x88) = *(undefined8 *)(param_1 + 0x68);
|
||||
*(undefined8 *)(*(longlong *)(param_1 + 0x58) + 0x90) = *(undefined8 *)(param_1 + 0x70);
|
||||
*(undefined8 *)(*(longlong *)(param_1 + 0x58) + 0x98) = *(undefined8 *)(param_1 + 0x78);
|
||||
FUN_14000a810(L"\n",ppsVar23,uVar14,param_4);
|
||||
FUN_14000a810(L"# Msg Server Running... #\n",ppsVar23,uVar14,param_4);
|
||||
puVar15 = operator_new(0x18);
|
||||
if (puVar15 != (undefined8 *)0x0) {
|
||||
plVar17 = FUN_140118ee0(puVar15);
|
||||
}
|
||||
plVar20 = DAT_1401bd030;
|
||||
if ((undefined8 *)DAT_1401bd030[2] != (undefined8 *)0x0) {
|
||||
(*(code *)**(undefined8 **)DAT_1401bd030[2])();
|
||||
}
|
||||
plVar20[2] = (longlong)plVar17;
|
||||
if (plVar17 != (longlong *)0x0) {
|
||||
lVar28 = (**(code **)(*plVar17 + 8))(plVar17);
|
||||
plVar20[6] = lVar28;
|
||||
plVar20[7] = lVar28;
|
||||
}
|
||||
plVar20[0x12] = 0x3ff0000000000000;
|
||||
puVar15 = operator_new(0x28);
|
||||
local_3c0 = puVar15;
|
||||
if (puVar15 == (undefined8 *)0x0) {
|
||||
puVar15 = (undefined8 *)0x0;
|
||||
}
|
||||
else {
|
||||
*puVar15 = Magi::Timer::vftable;
|
||||
plVar17 = DAT_1401bd030;
|
||||
puVar15[1] = DAT_1401bd030;
|
||||
puVar15[2] = 0;
|
||||
puVar15[3] = 0;
|
||||
*(undefined1 *)(puVar15 + 4) = 0;
|
||||
*(undefined4 *)((longlong)puVar15 + 0x24) = 0x3f800000;
|
||||
(**(code **)(*plVar17 + 0x10))();
|
||||
}
|
||||
lVar28 = local_438;
|
||||
*(undefined8 **)(local_438 + 0x48) = puVar15;
|
||||
local_348 = 0;
|
||||
memset(local_346,0,0x9e);
|
||||
puVar26 = (undefined *)0xa0;
|
||||
memset(local_2a8,0,0xa0);
|
||||
uVar29 = 0;
|
||||
uVar30 = 0;
|
||||
_Src = (char *)0x0;
|
||||
if (p_Var13 != (_Container_base0 *)0x0) {
|
||||
_Src = *(char **)(p_Var13 + 0x38);
|
||||
}
|
||||
FUN_140001cd0(lVar28,_Src);
|
||||
plVar17 = (longlong *)(lVar28 + 0x60);
|
||||
lVar22 = 4;
|
||||
do {
|
||||
iVar11 = *(int *)(DAT_1401bd038 + 0x144);
|
||||
pcVar25 = (char *)0x0;
|
||||
if (0 < (longlong)iVar11) {
|
||||
do {
|
||||
if ((longlong *)*plVar17 != (longlong *)0x0) {
|
||||
_Src = *(char **)(*(longlong *)*plVar17 + (longlong)pcVar25 * 8);
|
||||
FUN_140001cd0(lVar28,_Src);
|
||||
}
|
||||
pcVar25 = pcVar25 + 1;
|
||||
} while ((longlong)pcVar25 < (longlong)iVar11);
|
||||
}
|
||||
plVar17 = plVar17 + 1;
|
||||
lVar22 = lVar22 + -1;
|
||||
} while (lVar22 != 0);
|
||||
local_3c0 = (undefined8 *)CONCAT44(local_3c0._4_4_,5);
|
||||
*(undefined4 *)(lVar28 + 8) = 5;
|
||||
if (DAT_1401bcf04 != 0) {
|
||||
printf("********************************\n");
|
||||
DVar9 = timeGetTime();
|
||||
_Src = (char *)((ulonglong)(DVar9 - DAT_1401bcf04) / 1000);
|
||||
printf("** Server Load Time : %u sec\n");
|
||||
printf("********************************\n");
|
||||
}
|
||||
printf("STEP : SERVER_RUN \n");
|
||||
lVar22 = *(longlong *)(lVar28 + 0x30);
|
||||
if ((lVar22 != 0) && (*(char *)(lVar22 + 0x1a) != '\0')) {
|
||||
param_4 = (char *)&local_3c0;
|
||||
puVar26 = &DAT_1401ac5d0;
|
||||
_Src = (char *)0x1;
|
||||
(**(code **)(*(longlong *)(lVar22 + 0x68) + 0xb0))();
|
||||
}
|
||||
puVar15 = (undefined8 *)(lVar28 + 0x60);
|
||||
pcVar25 = (char *)0x0;
|
||||
uVar31 = uVar29;
|
||||
uVar33 = uVar30;
|
||||
while ((DAT_1401bcf14 == 0 && (*(char *)(*(longlong *)(lVar28 + 0x58) + 0x30) == '\0'))) {
|
||||
if (*(char *)(*(longlong *)(lVar28 + 0x58) + 0x34) != '\0') {
|
||||
lVar22 = *(longlong *)(lVar28 + 0x30);
|
||||
if (lVar22 != 0) {
|
||||
printf("Server Lock Check Succeed !!!\n");
|
||||
puVar26 = &DAT_1401ac5d0;
|
||||
_Src = (char *)0x1;
|
||||
(**(code **)(*(longlong *)(lVar22 + 0x68) + 0x70))();
|
||||
}
|
||||
*(undefined1 *)(*(longlong *)(lVar28 + 0x58) + 0x34) = 0;
|
||||
}
|
||||
FUN_1401192a0((longlong)DAT_1401bd030);
|
||||
dVar2 = *(double *)(*(longlong *)(lVar28 + 0x48) + 0x10);
|
||||
local_360 = "DBCSessionManager->Process";
|
||||
DVar9 = timeGetTime();
|
||||
local_358 = DVar9;
|
||||
if ((longlong *)*puVar15 != (longlong *)0x0) {
|
||||
FUN_140009500((longlong *)*puVar15,dVar2);
|
||||
}
|
||||
if (*(longlong **)(lVar28 + 0x68) != (longlong *)0x0) {
|
||||
FUN_140009500(*(longlong **)(lVar28 + 0x68),dVar2);
|
||||
}
|
||||
DVar10 = timeGetTime();
|
||||
if (0x32 < DVar10 - DVar9) {
|
||||
param_4 = "DBCSessionManager->Process";
|
||||
puVar26 = (undefined *)(ulonglong)(DVar10 - DVar9);
|
||||
_Src = "% 9d [ ms ] %s\n";
|
||||
FUN_14011b2e0(DAT_1401ba9e8,"% 9d [ ms ] %s\n",puVar26,"DBCSessionManager->Process");
|
||||
}
|
||||
local_378 = "AgentSession->Process";
|
||||
local_370 = timeGetTime();
|
||||
if ((*(longlong *)(lVar28 + 0x30) != 0) &&
|
||||
(_Src = DAT_1401bd038, DAT_1401bd038[0x150] != '\0')) {
|
||||
FUN_140002540(*(longlong *)(lVar28 + 0x30),dVar2);
|
||||
lVar22 = *(longlong *)(lVar28 + 0x30);
|
||||
if ((lVar22 != 0) &&
|
||||
((*(char *)(lVar22 + 0x1a) != '\0' && (*(double *)(lVar28 + 0x38) + 1.0 <= dVar2)))) {
|
||||
*(double *)(lVar28 + 0x38) = dVar2;
|
||||
FUN_140064b50(lVar22,*(undefined4 *)(*(longlong *)(lVar28 + 0x58) + 0x10c));
|
||||
}
|
||||
local_400 = (void *)0x0;
|
||||
local_3f8 = 0;
|
||||
local_3f0 = 0;
|
||||
lVar22 = *(longlong *)(lVar28 + 0x30);
|
||||
local_388 = (int *)(lVar22 + 0xb8);
|
||||
FUN_14006b350(local_388);
|
||||
local_380 = 1;
|
||||
FUN_140064d80((longlong *)&local_400,(longlong *)(lVar22 + 0x98));
|
||||
_Src = *(char **)(lVar22 + 0xa0);
|
||||
pcVar21 = *(char **)(lVar22 + 0x98);
|
||||
if (pcVar21 != _Src) {
|
||||
puVar26 = (undefined *)0x0;
|
||||
memmove(pcVar21,_Src,0);
|
||||
*(char **)(lVar22 + 0xa0) = pcVar21;
|
||||
lVar28 = local_438;
|
||||
}
|
||||
FUN_14006b3e0((longlong)local_388);
|
||||
local_380 = 0;
|
||||
pcVar21 = pcVar25;
|
||||
pcVar27 = pcVar25;
|
||||
if (local_3f8 - (longlong)local_400 >> 2 != 0) {
|
||||
do {
|
||||
param_4 = (char *)(ulonglong)*(uint *)((longlong)local_400 + (longlong)pcVar21);
|
||||
iVar11 = (int)(*(longlong *)(lVar28 + 0x18) - *(longlong *)(lVar28 + 0x10) >> 3);
|
||||
puVar26 = (undefined *)(longlong)iVar11;
|
||||
_Src = pcVar25;
|
||||
if (0 < iVar11) {
|
||||
plVar17 = *(longlong **)(lVar28 + 0x10);
|
||||
do {
|
||||
if ((*plVar17 != 0) &&
|
||||
(*(uint *)(*plVar17 + 0x3c) == *(uint *)((longlong)local_400 + (longlong)pcVar21)
|
||||
)) {
|
||||
*(undefined1 *)((*(longlong **)(lVar28 + 0x10))[(longlong)_Src] + 0x1c) = 1;
|
||||
break;
|
||||
}
|
||||
_Src = _Src + 1;
|
||||
plVar17 = plVar17 + 1;
|
||||
} while ((longlong)_Src < (longlong)puVar26);
|
||||
}
|
||||
pcVar27 = (char *)(ulonglong)((int)pcVar27 + 1);
|
||||
pcVar21 = pcVar21 + 4;
|
||||
} while (pcVar27 < (char *)(local_3f8 - (longlong)local_400 >> 2));
|
||||
}
|
||||
if (local_400 != (void *)0x0) {
|
||||
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_400);
|
||||
operator_delete(local_400);
|
||||
}
|
||||
local_400 = (void *)0x0;
|
||||
local_3f8 = 0;
|
||||
local_3f0 = 0;
|
||||
}
|
||||
DVar9 = timeGetTime();
|
||||
if (0x32 < DVar9 - local_370) {
|
||||
param_4 = "AgentSession->Process";
|
||||
puVar26 = (undefined *)(ulonglong)(DVar9 - local_370);
|
||||
_Src = "% 9d [ ms ] %s\n";
|
||||
FUN_14011b2e0(DAT_1401ba9e8,"% 9d [ ms ] %s\n",puVar26,"AgentSession->Process");
|
||||
}
|
||||
if (DAT_1401bcf0f != '\0') {
|
||||
printf("RetryConnectSession\n");
|
||||
iVar11 = (int)(*(longlong *)(lVar28 + 0x18) - *(longlong *)(lVar28 + 0x10) >> 3);
|
||||
_Src = (char *)(longlong)iVar11;
|
||||
pcVar21 = pcVar25;
|
||||
if (0 < iVar11) {
|
||||
do {
|
||||
if (*(longlong *)(*(longlong *)(lVar28 + 0x10) + (longlong)pcVar21 * 8) != 0) {
|
||||
*(undefined1 *)
|
||||
(*(longlong *)(*(longlong *)(lVar28 + 0x10) + (longlong)pcVar21 * 8) + 0x1c) = 1;
|
||||
}
|
||||
pcVar21 = pcVar21 + 1;
|
||||
} while ((longlong)pcVar21 < (longlong)_Src);
|
||||
}
|
||||
DAT_1401bcf0f = DAT_1401bcf0f == '\0';
|
||||
}
|
||||
uVar32 = (undefined4)((ulonglong)dVar2 >> 0x20);
|
||||
if (0.10000000149011612 <= dVar2 - (double)CONCAT44(uVar33,uVar31)) {
|
||||
DAT_1401bcf1c = DAT_1401bcf1c + 1;
|
||||
FUN_140004960(lVar28);
|
||||
uVar31 = SUB84(dVar2,0);
|
||||
uVar33 = uVar32;
|
||||
}
|
||||
if (1.0 <= dVar2 - (double)CONCAT44(uVar30,uVar29)) {
|
||||
if (DAT_1401bcf18 != 0) {
|
||||
puVar26 = (undefined *)(ulonglong)*(uint *)(*(longlong *)(lVar28 + 0x58) + 0x10c);
|
||||
_Src = (char *)(ulonglong)DAT_1401bcf1c;
|
||||
printf("FPS : [%d], Connect[%d]\n");
|
||||
}
|
||||
DAT_1401bcf20 = DAT_1401bcf1c;
|
||||
DAT_1401bcf1c = 0;
|
||||
uVar29 = SUB84(dVar2,0);
|
||||
uVar30 = uVar32;
|
||||
}
|
||||
if (DAT_1401bcf10 != 0) {
|
||||
DAT_1401bcf10 = 0;
|
||||
wprintf(L"-MSG SERVER [CODE:%d]----------------------------------------------------\n",
|
||||
(ulonglong)*(uint *)(DAT_1401bd038 + 0x154));
|
||||
lVar22 = *(longlong *)(lVar28 + 0x58);
|
||||
puVar24 = *(undefined **)(lVar22 + 0x48);
|
||||
if (*(undefined **)(lVar22 + 0x48) == (undefined *)0x0) {
|
||||
puVar24 = PTR_DAT_1401ac010;
|
||||
}
|
||||
puVar26 = (undefined *)(ulonglong)*(uint *)(lVar22 + 0x50);
|
||||
wprintf(L"PRIVATE NETWORK : ADDRESS[ %s ] PORT[ %d ]\n",puVar24);
|
||||
_Src = (char *)(ulonglong)*(uint *)(lVar22 + 0x54);
|
||||
if ((0 < (int)*(uint *)(lVar22 + 0x54)) &&
|
||||
(puVar26 = (undefined *)(ulonglong)*(uint *)(lVar22 + 0x58),
|
||||
*(uint *)(lVar22 + 0x58) != 0)) {
|
||||
wprintf(L"UDP : PORT [ %d ] COUNT [ %d ]\n");
|
||||
}
|
||||
FUN_140001d70(lVar28);
|
||||
}
|
||||
*(double *)(lVar28 + 0x50) = dVar2;
|
||||
Sleep(1);
|
||||
}
|
||||
FUN_14000a950(L"+ Prepare Stop\n",_Src,puVar26,param_4);
|
||||
plVar17 = local_420;
|
||||
p_Var12 = local_430;
|
||||
p_Var13 = local_448;
|
||||
lVar22 = *(longlong *)(lVar28 + 0x58);
|
||||
puVar15 = *(undefined8 **)(lVar22 + 0x40);
|
||||
if (puVar15 != (undefined8 *)0x0) {
|
||||
_Src = (char *)0x1;
|
||||
(**(code **)*puVar15)();
|
||||
}
|
||||
*(undefined8 *)(lVar22 + 0x40) = 0;
|
||||
CoUninitialize();
|
||||
FUN_14000a810(L"# Msg Server Stoped... #\n",_Src,puVar26,param_4);
|
||||
if (*(char *)(*(longlong *)(lVar28 + 0x58) + 0x30) == '\0') {
|
||||
FUN_14000a950(L"Press any key... \n",_Src,puVar26,param_4);
|
||||
getchar();
|
||||
}
|
||||
plVar20 = local_428;
|
||||
if (plVar1 != (longlong *)0x0) {
|
||||
plVar1 = plVar1 + 1;
|
||||
*plVar1 = *plVar1 + -1;
|
||||
plVar17 = local_468;
|
||||
p_Var12 = (_Container_base0 *)local_460;
|
||||
p_Var13 = local_450;
|
||||
if (*plVar1 == 0) {
|
||||
p_Var13 = (_Container_base0 *)*local_428;
|
||||
local_448 = p_Var13;
|
||||
if (p_Var13 != (_Container_base0 *)0x0) {
|
||||
FUN_140009470((longlong *)p_Var13);
|
||||
if (DAT_1401bcf28 != (void *)0x0) {
|
||||
operator_delete__(DAT_1401bcf28);
|
||||
DAT_1401bcf28 = (void *)0x0;
|
||||
}
|
||||
if (*(longlong *)p_Var13 != 0) {
|
||||
std::_Container_base0::_Orphan_all(p_Var13);
|
||||
operator_delete(*(void **)p_Var13);
|
||||
}
|
||||
*(undefined8 *)p_Var13 = 0;
|
||||
*(undefined8 *)(p_Var13 + 8) = 0;
|
||||
*(undefined8 *)(p_Var13 + 0x10) = 0;
|
||||
operator_delete(p_Var13);
|
||||
}
|
||||
FUN_14006cc60(plVar20);
|
||||
plVar17 = local_468;
|
||||
p_Var12 = (_Container_base0 *)local_460;
|
||||
p_Var13 = local_450;
|
||||
}
|
||||
}
|
||||
p_Var8 = local_450;
|
||||
if (p_Var13 != (_Container_base0 *)0x0) {
|
||||
p_Var13 = p_Var13 + 8;
|
||||
*(longlong *)p_Var13 = *(longlong *)p_Var13 + -1;
|
||||
plVar17 = local_468;
|
||||
p_Var12 = (_Container_base0 *)local_460;
|
||||
if (*(longlong *)p_Var13 == 0) {
|
||||
FUN_140006460((undefined8 *)local_450);
|
||||
FUN_14006cc60(p_Var8);
|
||||
plVar17 = local_468;
|
||||
p_Var12 = (_Container_base0 *)local_460;
|
||||
}
|
||||
}
|
||||
plVar20 = local_460;
|
||||
if (p_Var12 != (_Container_base0 *)0x0) {
|
||||
plVar1 = (longlong *)((longlong)p_Var12 + 8);
|
||||
*plVar1 = *plVar1 + -1;
|
||||
plVar17 = local_468;
|
||||
if (*plVar1 == 0) {
|
||||
FUN_140006460(local_460);
|
||||
FUN_14006cc60(plVar20);
|
||||
plVar17 = local_468;
|
||||
}
|
||||
}
|
||||
plVar20 = local_468;
|
||||
if (plVar17 != (longlong *)0x0) {
|
||||
plVar17 = plVar17 + 1;
|
||||
*plVar17 = *plVar17 + -1;
|
||||
if (*plVar17 == 0) {
|
||||
FUN_140006460(local_468);
|
||||
FUN_14006cc60(plVar20);
|
||||
}
|
||||
}
|
||||
FUN_140006360((longlong *)&local_458,_Src,puVar26,param_4);
|
||||
}
|
||||
else {
|
||||
if (plVar1 != (longlong *)0x0) {
|
||||
plVar1 = plVar1 + 1;
|
||||
*plVar1 = *plVar1 + -1;
|
||||
p_Var13 = local_458;
|
||||
plVar17 = local_468;
|
||||
plVar20 = local_460;
|
||||
p_Var12 = local_450;
|
||||
if (*plVar1 == 0) {
|
||||
FUN_140006460(local_428);
|
||||
FUN_14006cc60(plVar19);
|
||||
p_Var13 = local_458;
|
||||
plVar17 = local_468;
|
||||
plVar20 = local_460;
|
||||
p_Var12 = local_450;
|
||||
}
|
||||
}
|
||||
p_Var8 = local_450;
|
||||
if (p_Var12 != (_Container_base0 *)0x0) {
|
||||
p_Var12 = p_Var12 + 8;
|
||||
*(longlong *)p_Var12 = *(longlong *)p_Var12 + -1;
|
||||
p_Var13 = local_458;
|
||||
plVar17 = local_468;
|
||||
plVar20 = local_460;
|
||||
if (*(longlong *)p_Var12 == 0) {
|
||||
FUN_140006460((undefined8 *)local_450);
|
||||
FUN_14006cc60(p_Var8);
|
||||
p_Var13 = local_458;
|
||||
plVar17 = local_468;
|
||||
plVar20 = local_460;
|
||||
}
|
||||
}
|
||||
plVar1 = local_460;
|
||||
if (plVar20 != (longlong *)0x0) {
|
||||
plVar20 = plVar20 + 1;
|
||||
*plVar20 = *plVar20 + -1;
|
||||
p_Var13 = local_458;
|
||||
plVar17 = local_468;
|
||||
if (*plVar20 == 0) {
|
||||
FUN_140006460(local_460);
|
||||
FUN_14006cc60(plVar1);
|
||||
p_Var13 = local_458;
|
||||
plVar17 = local_468;
|
||||
}
|
||||
}
|
||||
plVar20 = local_468;
|
||||
if (plVar17 != (longlong *)0x0) {
|
||||
plVar17 = plVar17 + 1;
|
||||
*plVar17 = *plVar17 + -1;
|
||||
p_Var13 = local_458;
|
||||
if (*plVar17 == 0) {
|
||||
FUN_140006460(local_468);
|
||||
FUN_14006cc60(plVar20);
|
||||
p_Var13 = local_458;
|
||||
}
|
||||
}
|
||||
if (p_Var13 != (_Container_base0 *)0x0) {
|
||||
local_398 = p_Var13;
|
||||
FUN_14006b350((int *)p_Var13);
|
||||
bVar7 = true;
|
||||
local_390 = 1;
|
||||
p_Var12 = p_Var13 + 0x40;
|
||||
*(longlong *)p_Var12 = *(longlong *)p_Var12 + -1;
|
||||
if (*(longlong *)p_Var12 == 0) {
|
||||
FUN_14006b3e0((longlong)p_Var13);
|
||||
bVar7 = false;
|
||||
local_390 = 0;
|
||||
local_448 = p_Var13;
|
||||
if (*(undefined8 **)(p_Var13 + 0x38) != (undefined8 *)0x0) {
|
||||
lVar22 = 1;
|
||||
(**(code **)**(undefined8 **)(p_Var13 + 0x38))();
|
||||
}
|
||||
FUN_14006b400((undefined4 *)p_Var13,lVar22,param_3,param_4);
|
||||
FUN_14006cc60(p_Var13);
|
||||
}
|
||||
if (bVar7) {
|
||||
FUN_14006b3e0((longlong)p_Var13);
|
||||
local_390 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
plVar17 = local_440;
|
||||
if (local_440 != (longlong *)0x0) {
|
||||
plVar20 = local_440 + 1;
|
||||
*plVar20 = *plVar20 + -1;
|
||||
if (*plVar20 == 0) {
|
||||
puVar15 = (undefined8 *)*local_440;
|
||||
if (puVar15 != (undefined8 *)0x0) {
|
||||
(**(code **)*puVar15)(puVar15,1);
|
||||
}
|
||||
FUN_14006cc60(plVar17);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue