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