517 lines
16 KiB
C
517 lines
16 KiB
C
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
undefined8 FUN_140002790(longlong param_1,undefined8 param_2,undefined8 param_3,longlong **param_4)
|
|
|
|
{
|
|
double dVar1;
|
|
char cVar2;
|
|
undefined4 *puVar3;
|
|
undefined1 auVar4 [16];
|
|
bool bVar5;
|
|
longlong *plVar6;
|
|
BOOL BVar7;
|
|
DWORD DVar8;
|
|
undefined8 *puVar9;
|
|
undefined8 *puVar10;
|
|
longlong *plVar11;
|
|
longlong lVar12;
|
|
wchar_t *pwVar13;
|
|
LPCSTR pCVar14;
|
|
short *psVar15;
|
|
longlong *plVar16;
|
|
longlong *plVar17;
|
|
undefined8 uVar18;
|
|
undefined *puVar19;
|
|
void **ppvVar20;
|
|
undefined8 *puVar21;
|
|
undefined8 *puVar22;
|
|
undefined8 *puVar23;
|
|
longlong lVar24;
|
|
undefined4 uVar25;
|
|
undefined4 uVar26;
|
|
undefined4 uVar27;
|
|
undefined4 uVar28;
|
|
undefined4 uVar29;
|
|
undefined4 uVar30;
|
|
undefined1 auStack_4d8 [32];
|
|
longlong *local_4b8;
|
|
longlong *local_4b0;
|
|
undefined8 *local_4a8;
|
|
longlong *local_4a0;
|
|
undefined8 *local_498;
|
|
undefined8 *local_490;
|
|
undefined8 *local_488;
|
|
undefined4 local_480 [2];
|
|
undefined8 *local_478;
|
|
undefined8 *local_470;
|
|
undefined8 *local_468;
|
|
LARGE_INTEGER local_460;
|
|
undefined8 local_458;
|
|
undefined2 local_448;
|
|
undefined1 local_446 [158];
|
|
undefined1 local_3a8 [160];
|
|
undefined4 local_308;
|
|
uint uStack_304;
|
|
undefined2 local_300;
|
|
undefined6 uStack_2fe;
|
|
undefined8 local_2f0;
|
|
ulonglong local_2e8;
|
|
WCHAR local_2d8;
|
|
undefined6 uStack_2d6;
|
|
undefined8 local_2c8;
|
|
ulonglong local_2c0;
|
|
short *local_2a8;
|
|
short local_2a0 [132];
|
|
short *local_198;
|
|
short local_190 [132];
|
|
ulonglong local_88;
|
|
|
|
local_458 = 0xfffffffffffffffe;
|
|
local_88 = DAT_14016f5a0 ^ (ulonglong)auStack_4d8;
|
|
pwVar13 = L"\t # PREPARE # \n";
|
|
FUN_1400ef250(DAT_14017c8a8,L"\t # PREPARE # \n",param_3,param_4);
|
|
CoInitialize((LPVOID)0x0);
|
|
local_460 = (LARGE_INTEGER)operator_new(0xd8);
|
|
puVar22 = (undefined8 *)0x0;
|
|
puVar9 = puVar22;
|
|
if ((undefined8 *)local_460.QuadPart != (undefined8 *)0x0) {
|
|
puVar9 = FUN_140005280((undefined8 *)local_460,pwVar13,param_3,param_4);
|
|
}
|
|
if (puVar9 == (undefined8 *)0x0) {
|
|
local_4b8 = (longlong *)0x0;
|
|
}
|
|
else {
|
|
local_4b8 = (longlong *)FUN_14003e840(0x10);
|
|
local_4b8[1] = 1;
|
|
*local_4b8 = (longlong)puVar9;
|
|
}
|
|
plVar16 = local_4b8;
|
|
local_498 = operator_new(0x118);
|
|
puVar9 = puVar22;
|
|
if (local_498 != (undefined8 *)0x0) {
|
|
puVar9 = FUN_1400060f0(local_498,pwVar13,param_3,param_4);
|
|
}
|
|
if (puVar9 == (undefined8 *)0x0) {
|
|
local_4b0 = (longlong *)0x0;
|
|
}
|
|
else {
|
|
local_4b0 = (longlong *)FUN_14003e840(0x10);
|
|
local_4b0[1] = 1;
|
|
*local_4b0 = (longlong)puVar9;
|
|
}
|
|
plVar17 = local_4b0;
|
|
local_498 = operator_new(0xa0);
|
|
puVar9 = puVar22;
|
|
if (local_498 != (undefined8 *)0x0) {
|
|
puVar9 = FUN_140007010(local_498,pwVar13,param_3,param_4);
|
|
}
|
|
if (puVar9 == (undefined8 *)0x0) {
|
|
local_4a8 = (undefined8 *)0x0;
|
|
}
|
|
else {
|
|
local_4a8 = (undefined8 *)FUN_14003e840(0x10);
|
|
local_4a8[1] = 1;
|
|
*local_4a8 = puVar9;
|
|
}
|
|
puVar9 = local_4a8;
|
|
local_468 = local_4a8;
|
|
puVar10 = operator_new(0x50);
|
|
puVar21 = puVar22;
|
|
local_498 = puVar10;
|
|
if (puVar10 != (undefined8 *)0x0) {
|
|
FUN_1400721c0(puVar10);
|
|
FUN_140073a40((void **)(puVar10 + 1));
|
|
puVar10[3] = 0;
|
|
puVar10[4] = 0;
|
|
puVar10[8] = 7;
|
|
puVar10[7] = 0;
|
|
*(undefined2 *)(puVar10 + 5) = 0;
|
|
puVar21 = puVar10;
|
|
}
|
|
if (puVar21 == (undefined8 *)0x0) {
|
|
local_490 = (undefined8 *)0x0;
|
|
}
|
|
else {
|
|
local_490 = (undefined8 *)FUN_14003e840(0x10);
|
|
local_490[1] = 1;
|
|
*local_490 = puVar21;
|
|
}
|
|
puVar21 = local_490;
|
|
local_498 = local_490;
|
|
puVar10 = operator_new(0x50);
|
|
local_488 = puVar10;
|
|
if (puVar10 != (undefined8 *)0x0) {
|
|
FUN_1400721c0(puVar10);
|
|
FUN_140073a40((void **)(puVar10 + 1));
|
|
puVar10[3] = 0;
|
|
puVar10[4] = 0;
|
|
puVar10[8] = 7;
|
|
puVar10[7] = 0;
|
|
*(undefined2 *)(puVar10 + 5) = 0;
|
|
puVar22 = puVar10;
|
|
}
|
|
if (puVar22 == (undefined8 *)0x0) {
|
|
local_488 = (undefined8 *)0x0;
|
|
}
|
|
else {
|
|
local_488 = (undefined8 *)FUN_14003e840(0x10);
|
|
local_488[1] = 1;
|
|
*local_488 = puVar22;
|
|
}
|
|
puVar22 = local_488;
|
|
puVar23 = (undefined8 *)0x0;
|
|
puVar10 = puVar23;
|
|
if (plVar16 != (longlong *)0x0) {
|
|
puVar10 = (undefined8 *)*plVar16;
|
|
}
|
|
*(undefined8 **)(param_1 + 0x49450) = puVar10;
|
|
puVar10 = puVar23;
|
|
if (plVar17 != (longlong *)0x0) {
|
|
puVar10 = (undefined8 *)*plVar17;
|
|
}
|
|
*(undefined8 **)(param_1 + 0x49458) = puVar10;
|
|
puVar10 = puVar23;
|
|
if (puVar9 != (undefined8 *)0x0) {
|
|
puVar10 = (undefined8 *)*puVar9;
|
|
}
|
|
*(undefined8 **)(param_1 + 0x49448) = puVar10;
|
|
puVar10 = puVar23;
|
|
if (puVar21 != (undefined8 *)0x0) {
|
|
puVar10 = (undefined8 *)*puVar21;
|
|
}
|
|
*(undefined8 **)(param_1 + 0x49460) = puVar10;
|
|
puVar10 = puVar23;
|
|
if (local_488 != (undefined8 *)0x0) {
|
|
puVar10 = (undefined8 *)*local_488;
|
|
}
|
|
*(undefined8 **)(param_1 + 0x49468) = puVar10;
|
|
pCVar14 = (LPCSTR)(DAT_14017cf28 + 0x90);
|
|
if (0xf < *(ulonglong *)(DAT_14017cf28 + 0xa8)) {
|
|
pCVar14 = *(LPCSTR *)pCVar14;
|
|
}
|
|
local_2a8 = local_2a0;
|
|
uVar18 = 3;
|
|
FUN_140005110((longlong *)&local_2a8,pCVar14,3);
|
|
FUN_140007430(*(longlong *)(param_1 + 0x49460),local_2a8,uVar18,(short *)param_4);
|
|
if (local_2a8 != local_2a0) {
|
|
free(local_2a8);
|
|
}
|
|
pCVar14 = (LPCSTR)(DAT_14017cf28 + 0x108);
|
|
if (0xf < *(ulonglong *)(DAT_14017cf28 + 0x120)) {
|
|
pCVar14 = *(LPCSTR *)pCVar14;
|
|
}
|
|
local_198 = local_190;
|
|
puVar19 = (undefined *)0x3;
|
|
FUN_140005110((longlong *)&local_198,pCVar14,3);
|
|
psVar15 = local_198;
|
|
FUN_140007430(*(longlong *)(param_1 + 0x49468),local_198,puVar19,(short *)param_4);
|
|
if (local_198 != local_190) {
|
|
free(local_198);
|
|
}
|
|
local_480[0] = 3;
|
|
*(undefined4 *)(param_1 + 0x10) = 3;
|
|
printf("STEP : DB_LOAD \n");
|
|
lVar24 = *(longlong *)(param_1 + 0x38);
|
|
if ((lVar24 != 0) && (*(char *)(lVar24 + 0x1a) != '\0')) {
|
|
param_4 = (longlong **)local_480;
|
|
puVar19 = &DAT_14016f5d0;
|
|
psVar15 = (short *)0x1;
|
|
(**(code **)(*(longlong *)(lVar24 + 0x68) + 0xb0))();
|
|
}
|
|
printf("AgentManager Auth...\n");
|
|
uVar18 = FUN_140007a20(*(longlong *)(param_1 + 0x49460),psVar15,puVar19,param_4);
|
|
if ((char)uVar18 == '\0') {
|
|
printf("AgentManager Auth Failed !!!\n");
|
|
Sleep(3000);
|
|
*(undefined1 *)(param_1 + 0x49440) = 0;
|
|
}
|
|
printf("Read ServerOption...\n");
|
|
uVar18 = FUN_140008410(*(longlong *)(param_1 + 0x49460),psVar15,puVar19,param_4);
|
|
if ((char)uVar18 == '\0') {
|
|
printf("Read ServerOption Failed !!!\n");
|
|
Sleep(3000);
|
|
*(undefined1 *)(param_1 + 0x49440) = 0;
|
|
}
|
|
printf("Read ServerFile...\n");
|
|
uVar18 = FUN_140009240(*(longlong *)(param_1 + 0x49460),psVar15,puVar19,(longlong)param_4);
|
|
if ((char)uVar18 == '\0') {
|
|
printf("Read ServerFile Failed !!!\n");
|
|
Sleep(3000);
|
|
*(undefined1 *)(param_1 + 0x49440) = 0;
|
|
}
|
|
printf("Read RealTimeEvent...\n");
|
|
uVar18 = FUN_140009760(*(longlong *)(param_1 + 0x49460),psVar15,puVar19,param_4);
|
|
if ((char)uVar18 == '\0') {
|
|
printf("Read RealTimeEvent Failed !!!\n");
|
|
Sleep(3000);
|
|
*(undefined1 *)(param_1 + 0x49440) = 0;
|
|
}
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49460) + 0x18) = *(undefined8 *)(param_1 + 0x49450);
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49468) + 0x18) = *(undefined8 *)(param_1 + 0x49450);
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49450) + 0x68) = *(undefined8 *)(param_1 + 0x49460);
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49450) + 0x70) = *(undefined8 *)(param_1 + 0x49468);
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49450) + 0x78) = *(undefined8 *)(param_1 + 0x49458);
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49450) + 0x80) = *(undefined8 *)(param_1 + 0x49448);
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49458) + 0x68) = *(undefined8 *)(param_1 + 0x49460);
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49458) + 0x70) = *(undefined8 *)(param_1 + 0x49468);
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49458) + 0x78) = *(undefined8 *)(param_1 + 0x49450);
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49458) + 0x80) = *(undefined8 *)(param_1 + 0x49448);
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x49448) + 0x98) = *(undefined8 *)(param_1 + 0x49450);
|
|
pwVar13 = L"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
|
|
FUN_1400ef250(DAT_14017c8a8,L"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",puVar19,param_4);
|
|
local_308 = 0;
|
|
uStack_304 = 0;
|
|
local_2e8 = 7;
|
|
local_2f0 = 0;
|
|
local_300 = 0;
|
|
local_2c0 = 7;
|
|
local_2c8 = 0;
|
|
local_2d8 = L'\0';
|
|
if (*(longlong *)(DAT_14017cf28 + 0x1c8) != 0) {
|
|
auVar4._8_8_ = 0;
|
|
auVar4._0_8_ = *(ulonglong *)(DAT_14017cf28 + 0x1b0);
|
|
pwVar13 = SUB168((ZEXT816(0) << 0x40 | ZEXT816(0x17)) % auVar4,0);
|
|
local_478 = (undefined8 *)(*(longlong *)(DAT_14017cf28 + 0x1a8) + (longlong)pwVar13 * 8);
|
|
for (local_470 = (undefined8 *)*local_478; local_470 != (undefined8 *)0x0;
|
|
local_470 = (undefined8 *)*local_470) {
|
|
if (*(char *)(local_470 + 1) == '\x17') {
|
|
if (local_470 != (undefined8 *)0x0) goto LAB_140002dd4;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
local_478 = (undefined8 *)0x0;
|
|
local_470 = puVar23;
|
|
LAB_140002dd4:
|
|
if ((local_470 != (undefined8 *)0x0) &&
|
|
(puVar3 = (undefined4 *)local_470[2], puVar3 != (undefined4 *)local_470[3])) {
|
|
local_308 = *puVar3;
|
|
uStack_304 = puVar3[1];
|
|
FUN_140001630((longlong *)&local_300,(longlong *)(puVar3 + 2),0,0xffffffffffffffff);
|
|
param_4 = (longlong **)0xffffffffffffffff;
|
|
FUN_140001630((longlong *)&local_2d8,(longlong *)(puVar3 + 0xc),0,0xffffffffffffffff);
|
|
pwVar13 = &local_2d8;
|
|
if (7 < local_2c0) {
|
|
pwVar13 = (LPCWSTR)CONCAT62(uStack_2d6,local_2d8);
|
|
}
|
|
puVar19 = (undefined *)(ulonglong)uStack_304;
|
|
FUN_14003bcb0(*(void **)(param_1 + 0x49448),pwVar13,puVar19,param_4);
|
|
}
|
|
lVar24 = 0;
|
|
lVar12 = lVar24;
|
|
if (plVar16 != (longlong *)0x0) {
|
|
lVar12 = *plVar16;
|
|
}
|
|
FUN_140005460(lVar12,pwVar13,puVar19,(longlong)param_4);
|
|
if (plVar17 != (longlong *)0x0) {
|
|
lVar24 = *plVar17;
|
|
}
|
|
FUN_140006380(lVar24,pwVar13,puVar19,(longlong)param_4);
|
|
FUN_1400ef250(DAT_14017c8a8,L"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",puVar19,param_4);
|
|
plVar11 = operator_new(0x18);
|
|
if (plVar11 == (longlong *)0x0) {
|
|
plVar11 = (longlong *)0x0;
|
|
}
|
|
else {
|
|
*plVar11 = (longlong)TimeSourceHRWin32::vftable;
|
|
BVar7 = QueryPerformanceFrequency(&local_460);
|
|
if (BVar7 == 0) {
|
|
*(undefined1 *)(plVar11 + 2) = 0;
|
|
GetLastError();
|
|
}
|
|
else {
|
|
*(undefined1 *)(plVar11 + 2) = 1;
|
|
plVar11[1] = (longlong)(1.0 / (double)local_460.QuadPart);
|
|
}
|
|
}
|
|
local_4a0 = DAT_14017cf18;
|
|
if ((undefined8 *)DAT_14017cf18[2] != (undefined8 *)0x0) {
|
|
(*(code *)**(undefined8 **)DAT_14017cf18[2])();
|
|
}
|
|
local_4a0[2] = (longlong)plVar11;
|
|
if (plVar11 != (longlong *)0x0) {
|
|
lVar24 = (**(code **)(*plVar11 + 8))(plVar11);
|
|
local_4a0[6] = lVar24;
|
|
local_4a0[7] = lVar24;
|
|
}
|
|
local_4a0[0x12] = 0x3ff0000000000000;
|
|
plVar11 = operator_new(0x28);
|
|
local_4a0 = plVar11;
|
|
if (plVar11 != (longlong *)0x0) {
|
|
*plVar11 = (longlong)Magi::Timer::vftable;
|
|
plVar6 = DAT_14017cf18;
|
|
plVar11[1] = (longlong)DAT_14017cf18;
|
|
plVar11[2] = 0;
|
|
plVar11[3] = 0;
|
|
*(undefined1 *)(plVar11 + 4) = 0;
|
|
*(undefined4 *)((longlong)plVar11 + 0x24) = 0x3f800000;
|
|
(**(code **)(*plVar6 + 0x10))();
|
|
}
|
|
*(longlong **)(param_1 + 0x49430) = plVar11;
|
|
local_448 = 0;
|
|
memset(local_446,0,0x9e);
|
|
ppvVar20 = (void **)0xa0;
|
|
memset(local_3a8,0,0xa0);
|
|
uVar26 = 0;
|
|
uVar28 = 0;
|
|
bVar5 = false;
|
|
pwVar13 = L"\t # RUN # \n";
|
|
FUN_1400ef250(DAT_14017c8a8,L"\t # RUN # \n",ppvVar20,param_4);
|
|
local_4a0 = (longlong *)CONCAT44(local_4a0._4_4_,5);
|
|
*(undefined4 *)(param_1 + 0x10) = 5;
|
|
if (DAT_14017ce74 != 0) {
|
|
printf("********************************\n");
|
|
DVar8 = timeGetTime();
|
|
pwVar13 = (wchar_t *)((ulonglong)(DVar8 - DAT_14017ce74) / 1000);
|
|
printf("** Server Load Time : %d sec\n");
|
|
printf("********************************\n");
|
|
}
|
|
printf("STEP : SERVER_RUN \n");
|
|
lVar24 = *(longlong *)(param_1 + 0x38);
|
|
if ((lVar24 != 0) && (*(char *)(lVar24 + 0x1a) != '\0')) {
|
|
param_4 = &local_4a0;
|
|
ppvVar20 = (void **)&DAT_14016f5d0;
|
|
pwVar13 = (wchar_t *)0x1;
|
|
(**(code **)(*(longlong *)(lVar24 + 0x68) + 0xb0))();
|
|
}
|
|
cVar2 = *(char *)(param_1 + 0x49440);
|
|
uVar29 = uVar26;
|
|
uVar30 = uVar28;
|
|
while (cVar2 != '\0') {
|
|
FUN_1400ed240((longlong)DAT_14017cf18);
|
|
dVar1 = *(double *)(*(longlong *)(param_1 + 0x49430) + 0x10);
|
|
if (DAT_14017ce84 != '\0') {
|
|
printf("AgentSession->Connect\n");
|
|
DAT_14017ce84 = DAT_14017ce84 == '\0';
|
|
}
|
|
FUN_14003c0a0(*(undefined8 **)(param_1 + 0x49448));
|
|
uVar25 = SUB84(dVar1,0);
|
|
uVar27 = (undefined4)((ulonglong)dVar1 >> 0x20);
|
|
if (1.0 <= dVar1 - (double)CONCAT44(uVar28,uVar26)) {
|
|
if (DAT_14017ce78 != 0) {
|
|
pwVar13 = (wchar_t *)&DAT_14012ea5c;
|
|
if (bVar5) {
|
|
pwVar13 = (wchar_t *)&DAT_14012ea58;
|
|
}
|
|
ppvVar20 = (void **)(ulonglong)DAT_14017ce7c;
|
|
printf("[ %s ] FPS[ %d ]\n");
|
|
bVar5 = !bVar5;
|
|
}
|
|
_DAT_14017ce80 = DAT_14017ce7c;
|
|
DAT_14017ce7c = 0;
|
|
uVar26 = uVar25;
|
|
uVar28 = uVar27;
|
|
}
|
|
if (0.10000000149011612 <= dVar1 - (double)CONCAT44(uVar30,uVar29)) {
|
|
DAT_14017ce7c = DAT_14017ce7c + 1;
|
|
FUN_140003420(param_1,(ulonglong *******)pwVar13,(undefined *)ppvVar20,(undefined2 *)param_4);
|
|
FUN_1400054f0(*(longlong *)(param_1 + 0x49450),dVar1,ppvVar20,(ulonglong)param_4);
|
|
uVar29 = uVar25;
|
|
uVar30 = uVar27;
|
|
if (*(char *)(*(longlong *)(param_1 + 0x49450) + 0x9c) != '\0') {
|
|
*(undefined4 *)(param_1 + 0x49444) = 1;
|
|
*(undefined1 *)(*(longlong *)(param_1 + 0x49450) + 0x9c) = 0;
|
|
}
|
|
}
|
|
*(double *)(param_1 + 0x49438) = dVar1;
|
|
if (0 < *(int *)(param_1 + 0x49444)) {
|
|
FUN_140003d00(param_1,pwVar13,ppvVar20,(longlong)param_4);
|
|
}
|
|
Sleep(1);
|
|
puVar9 = local_468;
|
|
puVar21 = local_498;
|
|
cVar2 = *(char *)(param_1 + 0x49440);
|
|
}
|
|
FUN_14003bfd0(*(longlong *)(param_1 + 0x49448),pwVar13,ppvVar20,param_4);
|
|
lVar24 = *(longlong *)(param_1 + 0x49450);
|
|
puVar10 = *(undefined8 **)(lVar24 + 0x28);
|
|
if (puVar10 != (undefined8 *)0x0) {
|
|
(**(code **)*puVar10)(puVar10,1);
|
|
}
|
|
*(undefined8 *)(lVar24 + 0x28) = 0;
|
|
FUN_140006430(*(longlong *)(param_1 + 0x49458));
|
|
CoUninitialize();
|
|
pwVar13 = L"# SERVER END... #\n";
|
|
FUN_1400ef250(DAT_14017c8a8,L"# SERVER END... #\n",ppvVar20,param_4);
|
|
if (7 < local_2c0) {
|
|
operator_delete((void *)CONCAT62(uStack_2d6,local_2d8));
|
|
}
|
|
local_2c0 = 7;
|
|
local_2c8 = 0;
|
|
local_2d8 = L'\0';
|
|
if (7 < local_2e8) {
|
|
operator_delete((void *)CONCAT62(uStack_2fe,local_300));
|
|
}
|
|
local_2e8 = 7;
|
|
local_2f0 = 0;
|
|
local_300 = 0;
|
|
if (puVar22 != (undefined8 *)0x0) {
|
|
plVar11 = puVar22 + 1;
|
|
*plVar11 = *plVar11 + -1;
|
|
plVar16 = local_4b8;
|
|
puVar9 = local_4a8;
|
|
plVar17 = local_4b0;
|
|
puVar21 = local_490;
|
|
if (*plVar11 == 0) {
|
|
FUN_140004b20(local_488,pwVar13,ppvVar20);
|
|
plVar16 = local_4b8;
|
|
puVar9 = local_4a8;
|
|
plVar17 = local_4b0;
|
|
puVar21 = local_490;
|
|
}
|
|
}
|
|
if (puVar21 != (undefined8 *)0x0) {
|
|
plVar11 = puVar21 + 1;
|
|
*plVar11 = *plVar11 + -1;
|
|
plVar16 = local_4b8;
|
|
puVar9 = local_4a8;
|
|
plVar17 = local_4b0;
|
|
if (*plVar11 == 0) {
|
|
FUN_140004b20(local_490,pwVar13,ppvVar20);
|
|
plVar16 = local_4b8;
|
|
puVar9 = local_4a8;
|
|
plVar17 = local_4b0;
|
|
}
|
|
}
|
|
if (puVar9 != (undefined8 *)0x0) {
|
|
plVar11 = puVar9 + 1;
|
|
*plVar11 = *plVar11 + -1;
|
|
plVar16 = local_4b8;
|
|
plVar17 = local_4b0;
|
|
if (*plVar11 == 0) {
|
|
FUN_140004aa0(local_4a8,pwVar13,ppvVar20,param_4);
|
|
plVar16 = local_4b8;
|
|
plVar17 = local_4b0;
|
|
}
|
|
}
|
|
plVar11 = local_4b0;
|
|
if (plVar17 != (longlong *)0x0) {
|
|
plVar17 = plVar17 + 1;
|
|
*plVar17 = *plVar17 + -1;
|
|
plVar16 = local_4b8;
|
|
if (*plVar17 == 0) {
|
|
puVar9 = (undefined8 *)*local_4b0;
|
|
if (puVar9 != (undefined8 *)0x0) {
|
|
(**(code **)*puVar9)(puVar9,1);
|
|
}
|
|
FUN_14003e8b0(plVar11);
|
|
plVar16 = local_4b8;
|
|
}
|
|
}
|
|
plVar17 = local_4b8;
|
|
if (plVar16 != (longlong *)0x0) {
|
|
plVar16 = plVar16 + 1;
|
|
*plVar16 = *plVar16 + -1;
|
|
if (*plVar16 == 0) {
|
|
puVar9 = (undefined8 *)*local_4b8;
|
|
if (puVar9 != (undefined8 *)0x0) {
|
|
(**(code **)*puVar9)(puVar9,1);
|
|
}
|
|
FUN_14003e8b0(plVar17);
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|