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,156 @@
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14013cc80 FUN_14013cc80
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
int FUN_14013cc80(longlong param_1,ushort param_2,undefined4 param_3,undefined4 param_4,
undefined8 *param_5,wchar_t *param_6,undefined2 param_7,undefined2 param_8,
undefined4 *param_9,undefined4 param_10,char *param_11)
{
wchar_t wVar1;
int iVar2;
longlong lVar3;
wchar_t *pwVar4;
undefined1 auStack_f8 [32];
undefined2 local_d8;
undefined2 local_d6;
undefined4 local_d4;
undefined4 local_d0;
undefined2 local_cc;
undefined8 local_ca;
undefined8 local_c2;
char local_ba [48];
ushort local_8a;
wchar_t local_88 [12];
ulonglong local_70;
undefined4 local_68;
undefined4 local_64;
undefined4 local_60;
undefined4 local_5c;
undefined4 local_58;
undefined4 local_54;
ulonglong local_48;
local_48 = DAT_1403463c0 ^ (ulonglong)auStack_f8;
if (param_6 == (wchar_t *)0x0) {
iVar2 = 0;
}
else {
lVar3 = -1;
pwVar4 = param_6;
do {
if (lVar3 == 0) break;
lVar3 = lVar3 + -1;
wVar1 = *pwVar4;
pwVar4 = pwVar4 + 1;
} while (wVar1 != L'\0');
iVar2 = 0;
if (lVar3 != -2) {
iVar2 = 0;
local_64 = 0;
local_60 = 0;
local_5c = 0;
local_cc = 0;
local_58 = 0;
local_68 = 0;
local_ba[0] = '\0';
local_ba[1] = '\0';
local_ba[2] = '\0';
local_ba[3] = '\0';
local_ba[4] = '\0';
local_ba[5] = '\0';
local_ba[6] = '\0';
local_ba[7] = '\0';
local_ba[8] = '\0';
local_ba[9] = '\0';
local_ba[10] = '\0';
local_ba[0xb] = '\0';
local_ba[0xc] = '\0';
local_ba[0xd] = '\0';
local_ba[0xe] = '\0';
local_ba[0xf] = '\0';
local_ba[0x10] = '\0';
local_ba[0x11] = '\0';
local_ba[0x12] = '\0';
local_ba[0x13] = '\0';
local_ba[0x14] = '\0';
local_ba[0x15] = '\0';
local_ba[0x16] = '\0';
local_ba[0x17] = '\0';
local_ba[0x18] = '\0';
local_ba[0x19] = '\0';
local_ba[0x1a] = '\0';
local_ba[0x1b] = '\0';
local_ba[0x1c] = '\0';
local_ba[0x1d] = '\0';
local_ba[0x1e] = '\0';
local_ba[0x1f] = '\0';
local_ba[0x20] = '\0';
local_ba[0x21] = '\0';
local_ba[0x22] = '\0';
local_ba[0x23] = '\0';
local_ba[0x24] = '\0';
local_ba[0x25] = '\0';
local_ba[0x26] = '\0';
local_ba[0x27] = '\0';
local_ba[0x28] = '\0';
local_ba[0x29] = '\0';
local_ba[0x2a] = '\0';
local_ba[0x2b] = '\0';
local_ba[0x2c] = '\0';
local_ba[0x2d] = '\0';
local_ba[0x2e] = '\0';
local_ba[0x2f] = '\0';
local_8a = 0;
local_88[0] = L'\0';
local_88[1] = L'\0';
local_88[2] = L'\0';
local_88[3] = L'\0';
local_88[4] = L'\0';
local_88[5] = L'\0';
local_88[6] = L'\0';
local_88[7] = L'\0';
local_88[8] = L'\0';
local_88[9] = L'\0';
local_88[10] = L'\0';
local_88[0xb] = L'\0';
local_70 = 0;
local_d6 = 0x3ee;
local_54 = 0;
local_d8 = 0x88;
local_ca = *param_5;
local_c2 = param_5[1];
local_d4 = param_4;
local_d0 = param_3;
wcsncpy(local_88,param_6,0xf);
local_70 = local_70 & 0xffffffffffff;
strncpy(local_ba,param_11,0x31);
local_8a = local_8a & 0xff;
local_68 = CONCAT22(param_8,param_7);
local_64 = *param_9;
local_60 = param_9[1];
local_5c = param_9[2];
local_58 = param_9[3];
local_54 = param_10;
if (param_2 < 1000) {
lVar3 = *(longlong *)(*(longlong *)(param_1 + 200) + (longlong)(short)param_2 * 8);
iVar2 = 0;
if (lVar3 != 0) {
EnterCriticalSection((LPCRITICAL_SECTION)(lVar3 + 0x38));
iVar2 = FUN_1400a7630(*(undefined8 *)(lVar3 + 0x18),&local_d8);
if (iVar2 != 0) {
ReleaseSemaphore(*(HANDLE *)(lVar3 + 0x10),1,(LPLONG)0x0);
}
LeaveCriticalSection((LPCRITICAL_SECTION)(lVar3 + 0x38));
}
}
else {
wprintf(L"Invalid Queue Index\n");
}
}
}
return iVar2;
}