/* 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; }