decomp DBCServer_Release and inspect/document database

This commit is contained in:
Benjamin Palko 2026-10-14 23:22:03 -04:00
parent 4b267cbe05
commit 7834b98bf0
28222 changed files with 843300 additions and 144 deletions

View file

@ -0,0 +1,106 @@
/* 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;
}