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,162 @@
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401dfbb0 FUN_1401dfbb0
* Pseudocode, not original source. */
void FUN_1401dfbb0(longlong *param_1,undefined4 param_2,longlong *param_3)
{
longlong *plVar1;
undefined4 uVar2;
undefined8 uVar3;
undefined8 *puVar4;
undefined8 *puVar5;
longlong lVar6;
undefined8 *puVar7;
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;
undefined4 local_90;
undefined **local_88;
undefined8 local_80;
undefined8 local_78;
undefined8 local_70;
undefined8 local_68;
undefined8 local_58;
undefined1 local_50;
undefined8 local_48;
local_48 = 0xfffffffffffffffe;
uVar3 = (**(code **)(*param_1 + 0x58))();
local_58 = uVar3;
FUN_14016db50(uVar3);
local_50 = 1;
if ((char)param_1[0x9d] == '\0') {
puVar7 = (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 = puVar7;
if (local_res8 != (undefined8 *)0x0) {
puVar4 = (undefined8 *)FUN_140198ee0(local_res8);
}
if (puVar4 == (undefined8 *)0x0) {
local_res8 = (undefined8 *)0x0;
puVar5 = puVar7;
}
else {
puVar5 = (undefined8 *)FUN_14016d940(0x48);
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(puVar5);
local_150 = 1;
plVar1 = puVar5 + 8;
*plVar1 = *plVar1 + -1;
if (*plVar1 == 0) {
FUN_14016dbe0(puVar5);
local_150 = 0;
FUN_140154a90(puVar5);
}
else {
FUN_14016dbe0(puVar5);
}
}
local_148[0] = 2;
puVar4 = puVar7;
if (local_140[0] != 0) {
puVar4 = *(undefined8 **)(local_140[0] + 0x38);
}
*(undefined4 *)puVar4 = param_2;
puVar4 = puVar7;
if (*param_3 != 0) {
puVar4 = *(undefined8 **)(*param_3 + 0x38);
}
if (local_140[0] != 0) {
puVar7 = *(undefined8 **)(local_140[0] + 0x38);
}
FUN_14004e6d0(puVar7 + 2,puVar4 + 2);
local_d8 = 1;
FUN_14016d8c0();
local_res8 = (undefined8 *)PTR_DAT_1403440a0;
FUN_14004e6d0(&local_res8,param_1 + 0x2b1);
lVar6 = FUN_14016fcb0(&local_158,&local_res8,(short)param_1[0x2b2]);
local_98 = *(undefined4 *)(lVar6 + 8);
local_94 = *(undefined2 *)(lVar6 + 0xc);
local_90 = 0;
FUN_1401dcb50(param_1,local_148);
*(undefined1 *)(param_1 + 0x9d) = 1;
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);
FUN_140154b00(param_3);
return;
}