106 lines
3.5 KiB
C
106 lines
3.5 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14009f490 FUN_14009f490
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
void FUN_14009f490(longlong param_1)
|
|
|
|
{
|
|
undefined8 *puVar1;
|
|
errno_t eVar2;
|
|
undefined8 *puVar3;
|
|
undefined1 auStack_218 [32];
|
|
undefined8 local_1f8;
|
|
uint local_1f0;
|
|
uint local_1e8;
|
|
undefined4 local_1e0;
|
|
undefined4 local_1d8;
|
|
undefined4 local_1d0;
|
|
undefined4 local_1c8;
|
|
undefined4 local_1c0;
|
|
undefined4 local_1b8;
|
|
undefined4 local_1b0;
|
|
undefined4 local_1a8;
|
|
undefined4 local_1a0;
|
|
undefined4 local_198;
|
|
undefined4 local_190;
|
|
undefined4 local_188;
|
|
undefined4 local_180;
|
|
undefined4 local_178;
|
|
undefined4 local_170;
|
|
undefined4 local_168;
|
|
FILE *local_158;
|
|
undefined8 *local_150;
|
|
undefined8 *local_148;
|
|
_SYSTEMTIME local_140;
|
|
char local_128;
|
|
undefined1 local_127 [271];
|
|
ulonglong local_18;
|
|
|
|
local_18 = DAT_1403463c0 ^ (ulonglong)auStack_218;
|
|
local_128 = '\0';
|
|
memset(local_127,0,0x103);
|
|
local_158 = (FILE *)0x0;
|
|
GetLocalTime(&local_140);
|
|
local_1e8 = (uint)local_140.wHour;
|
|
local_1f0 = (uint)local_140.wDay;
|
|
local_1f8 = CONCAT44(local_1f8._4_4_,(uint)local_140.wMonth);
|
|
FUN_1400a4c50(&local_128,0x104,"LOG_PVP_%04d-%02d-%02d_%02d.txt",local_140.wYear);
|
|
eVar2 = fopen_s(&local_158,&local_128,"wt");
|
|
if (eVar2 != 0) {
|
|
return;
|
|
}
|
|
if (local_158 == (FILE *)0x0) goto LAB_14009f6b3;
|
|
if (*(longlong *)(param_1 + 0x20) == 0) {
|
|
local_150 = (undefined8 *)0x0;
|
|
LAB_14009f599:
|
|
local_148 = (undefined8 *)0x0;
|
|
puVar3 = local_150;
|
|
puVar1 = local_148;
|
|
}
|
|
else {
|
|
local_150 = *(undefined8 **)(param_1 + 0x30);
|
|
if (local_150 == (undefined8 *)0x0) goto LAB_14009f599;
|
|
local_148 = (undefined8 *)*local_150;
|
|
puVar3 = local_150;
|
|
puVar1 = local_148;
|
|
}
|
|
while (puVar1 != (undefined8 *)0x0) {
|
|
local_168 = *(undefined4 *)((longlong)puVar1 + 100);
|
|
local_170 = *(undefined4 *)(puVar1 + 0xc);
|
|
local_178 = *(undefined4 *)((longlong)puVar1 + 0x5c);
|
|
local_180 = *(undefined4 *)(puVar1 + 0xb);
|
|
local_188 = *(undefined4 *)((longlong)puVar1 + 0x54);
|
|
local_190 = *(undefined4 *)(puVar1 + 10);
|
|
local_198 = *(undefined4 *)((longlong)puVar1 + 0x4c);
|
|
local_1a0 = *(undefined4 *)(puVar1 + 9);
|
|
local_1a8 = *(undefined4 *)((longlong)puVar1 + 0x44);
|
|
local_1b0 = *(undefined4 *)(puVar1 + 8);
|
|
local_1b8 = *(undefined4 *)((longlong)puVar1 + 0x3c);
|
|
local_1c0 = *(undefined4 *)(puVar1 + 7);
|
|
local_1c8 = *(undefined4 *)((longlong)puVar1 + 0x34);
|
|
local_1d0 = *(undefined4 *)(puVar1 + 6);
|
|
local_1d8 = *(undefined4 *)((longlong)puVar1 + 0x2c);
|
|
local_1e0 = *(undefined4 *)(puVar1 + 5);
|
|
local_1e8 = *(uint *)((longlong)puVar1 + 0x24);
|
|
local_1f0 = *(uint *)(puVar1 + 4);
|
|
local_1f8 = puVar1[3];
|
|
fprintf(local_158,
|
|
"CLASS\t%d\tCOUNT\t%d\tEXP\t%I64d\tPoint\t%d\tDisconnect\t%d\tTotalWin\t%d\tTotalLose\t%d\tPvpWin\t%d\tPvpLose\t%d\tTeamWin\t%d\tTeamLose\t%d\tLeaderWin\t%d\tLeaderLose\t%d\tTagWin\t%d\tTagLose\t%d\tDeathWin\t%d\tDeathLose\t%d\tLadderWin\t%d\tLadderLose\t%d\tDuel_ladder_point\t%d\tDuel_ladder_exp\t%d\n"
|
|
);
|
|
for (puVar1 = (undefined8 *)*puVar1; puVar1 == (undefined8 *)0x0; puVar1 = (undefined8 *)*puVar1
|
|
) {
|
|
puVar1 = puVar3 + 1;
|
|
puVar3 = puVar3 + 1;
|
|
}
|
|
if (puVar3 == puVar1) {
|
|
puVar1 = (undefined8 *)0x0;
|
|
}
|
|
}
|
|
fclose(local_158);
|
|
LAB_14009f6b3:
|
|
printf("Completed Report_PVP\n");
|
|
return;
|
|
}
|
|
|