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,173 @@
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401df890 FUN_1401df890
* Pseudocode, not original source. */
void FUN_1401df890(longlong *param_1,undefined4 param_2,undefined4 param_3,undefined8 param_4)
{
longlong *plVar1;
undefined4 uVar2;
undefined8 uVar3;
undefined8 *puVar4;
undefined8 *puVar5;
undefined4 *puVar6;
longlong lVar7;
undefined8 *local_res8;
undefined8 *local_158;
undefined1 local_150;
undefined4 local_148 [2];
longlong local_140 [2];
undefined8 local_130;
undefined8 local_128;
undefined **local_120;
undefined8 local_118;
undefined8 local_110;
undefined8 local_108;
undefined8 local_100;
undefined8 local_f8;
longlong local_f0;
ulonglong local_e8;
undefined4 local_d8;
undefined **local_d0;
undefined8 local_c8;
undefined8 local_c0;
undefined8 local_b8;
undefined8 local_b0;
undefined **local_a0;
undefined4 local_98;
undefined2 local_94;
undefined **local_88;
undefined8 local_80;
undefined8 local_78;
undefined8 local_70;
undefined8 local_68;
undefined8 local_58;
undefined1 local_50;
longlong local_48;
undefined1 local_40;
undefined8 local_38;
local_38 = 0xfffffffffffffffe;
uVar3 = (**(code **)(*param_1 + 0x58))();
local_58 = uVar3;
FUN_14016db50(uVar3);
local_50 = 1;
if ((char)param_1[0x9d] == '\0') {
puVar5 = (undefined8 *)0x0;
local_140[0] = 0;
local_130 = 0;
local_128 = 0;
local_118 = 0;
local_110 = 0;
local_108 = 0;
local_100 = 0;
local_120 = Proud::ByteArray::vftable;
local_e8 = 0;
local_f0 = 0;
local_f8 = 0;
local_c8 = 0;
local_c0 = 0;
local_b8 = 0;
local_b0 = 0;
local_d0 = Proud::ByteArray::vftable;
local_a0 = Proud::AddrPort::vftable;
local_98 = 0;
local_94 = 0;
local_80 = 0;
local_78 = 0;
local_70 = 0;
local_68 = 0;
local_88 = Proud::ByteArray::vftable;
local_res8 = (undefined8 *)FUN_14016d940(0x60);
puVar4 = puVar5;
if (local_res8 != (undefined8 *)0x0) {
puVar4 = (undefined8 *)FUN_140198ee0(local_res8);
}
if (puVar4 == (undefined8 *)0x0) {
local_res8 = (undefined8 *)0x0;
}
else {
puVar5 = (undefined8 *)FUN_14016d940(0x48);
local_158 = puVar5;
if (puVar5 != (undefined8 *)0x0) {
local_res8 = puVar5;
uVar2 = FUN_140171510();
FUN_14016da70(puVar5,uVar2,1);
}
local_res8 = puVar5;
FUN_14016db50(puVar5);
puVar5[8] = 1;
puVar5[7] = puVar4;
FUN_14016dbe0(puVar5);
}
FUN_140184b90(local_140,&local_res8);
if (puVar5 != (undefined8 *)0x0) {
local_158 = puVar5;
FUN_14016db50();
local_150 = 1;
plVar1 = puVar5 + 8;
*plVar1 = *plVar1 + -1;
if (*plVar1 == 0) {
FUN_14016dbe0(puVar5);
local_150 = 0;
FUN_140154a90();
}
else {
FUN_14016dbe0();
}
}
local_148[0] = 3;
if (local_140[0] == 0) {
puVar6 = (undefined4 *)0x0;
}
else {
puVar6 = *(undefined4 **)(local_140[0] + 0x38);
}
*puVar6 = param_2;
lVar7 = 0;
if (local_140[0] != 0) {
lVar7 = *(longlong *)(local_140[0] + 0x38);
}
*(undefined4 *)(lVar7 + 4) = param_3;
if (local_140[0] == 0) {
lVar7 = 0;
}
else {
lVar7 = *(longlong *)(local_140[0] + 0x38);
}
FUN_14004e6d0(lVar7 + 0x10,param_4);
local_d8 = 1;
FUN_1401dcb50(param_1,local_148);
*(undefined1 *)(param_1 + 0x9d) = 1;
if (param_1[0xb] != 0) {
lVar7 = param_1[0xb] + 0x98;
local_48 = lVar7;
FUN_14016db50(lVar7);
local_40 = 1;
local_res8 = (undefined8 *)((ulonglong)local_res8 & 0xffffffffffffff00);
uVar2 = (**(code **)(param_1[0xe] + 0x108))(param_1 + 0xe,&local_res8);
local_158 = (undefined8 *)CONCAT44(local_158._4_4_,uVar2);
(**(code **)(*(longlong *)(param_1[0xb] + 0x68) + 0x60))
((longlong *)(param_1[0xb] + 0x68),1,&DAT_14034c4b0,&local_158);
FUN_14016dbe0(lVar7);
}
FUN_14019a9e0(&local_88);
FUN_14019a9e0(&local_d0);
local_res8 = &local_f8;
FUN_14016d0e0(&local_f8);
if (local_f0 != 0) {
if ((longlong)local_e8 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
local_e8 = local_e8 & 0xffffffff00000000;
}
FUN_14019a9e0(&local_120);
FUN_14018b600(&local_128);
FUN_14018b580(&local_130);
FUN_140154b00(local_140);
}
FUN_14016dbe0(uVar3);
return;
}