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,69 @@
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14005a930 FUN_14005a930
* Pseudocode, not original source. */
void FUN_14005a930(longlong param_1,longlong param_2)
{
void *_Src;
longlong lVar1;
void *pvVar2;
int iVar3;
undefined4 local_res10 [2];
void *local_50;
void *local_48;
void *local_40;
if ((*(short *)(param_2 + 0xc) == 0xe9) || (*(short *)(param_2 + 0xc) == 0xea)) {
iVar3 = 0;
local_50 = (void *)0x0;
local_48 = (void *)0x0;
local_40 = (void *)0x0;
if (*(short *)(param_2 + 0xe) < 1) {
*(int *)(param_1 + 0x634) = *(int *)(param_1 + 0x634) + 1;
local_res10[0] = *(undefined4 *)(param_2 + 4);
(**(code **)(*(longlong *)(param_1 + 0xa8) + 0x260))
((longlong *)(param_1 + 0xa8),*(undefined4 *)(param_2 + 8),&DAT_1403440f0,
local_res10,&local_50);
}
else {
pvVar2 = (void *)(param_2 + 0x10);
if (0 < *(short *)(param_2 + 0xe)) {
do {
if ((pvVar2 < local_48) && (local_50 <= pvVar2)) {
lVar1 = (longlong)pvVar2 - (longlong)local_50;
if (local_48 == local_40) {
FUN_14004a550(&local_50);
}
_Src = (void *)((lVar1 / 0xaf) * 0xaf + (longlong)local_50);
}
else {
_Src = pvVar2;
if (local_48 == local_40) {
FUN_14004a550(&local_50);
}
}
if (local_48 != (void *)0x0) {
memcpy(local_48,_Src,0xaf);
}
local_48 = (void *)((longlong)local_48 + 0xaf);
pvVar2 = (void *)((longlong)pvVar2 + 0xaf);
iVar3 = iVar3 + 1;
} while (iVar3 < *(short *)(param_2 + 0xe));
}
*(int *)(param_1 + 0x634) = *(int *)(param_1 + 0x634) + 1;
local_res10[0] = *(undefined4 *)(param_2 + 4);
(**(code **)(*(longlong *)(param_1 + 0xa8) + 0x260))
((longlong *)(param_1 + 0xa8),*(undefined4 *)(param_2 + 8),&DAT_1403440f0,
local_res10,&local_50);
if (local_50 != local_48) {
local_48 = local_50;
}
}
if (local_50 != (void *)0x0) {
operator_delete(local_50);
}
}
return;
}