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,172 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x14008a7f0 FUN_14008a7f0
* Pseudocode, not original source. */
undefined1
FUN_14008a7f0(longlong *param_1,undefined8 param_2,SIZE_T param_3,undefined8 param_4,uint *param_5,
uint *param_6,longlong param_7,uint *param_8,longlong param_9,longlong param_10,
uint *param_11,undefined8 *param_12,byte *param_13,ushort *param_14)
{
uint uVar1;
int iVar2;
undefined1 uVar3;
undefined4 *puVar4;
undefined8 uVar5;
undefined8 *puVar6;
ulonglong uVar7;
longlong lVar8;
undefined8 *puVar9;
undefined8 uVar10;
ulonglong uVar11;
undefined8 local_68;
undefined8 uStack_60;
undefined4 local_58;
undefined4 local_54;
longlong local_50;
longlong local_48;
int local_40;
int local_3c;
uVar11 = param_3 & 0xffffffff;
uVar5 = param_2;
uVar10 = param_4;
FUN_1400bca00(&local_58);
FUN_1400bc4d0((longlong)&local_58,uVar5,param_3,uVar10);
FUN_140054930((longlong)&local_58,0xfbf5,param_3,uVar10);
FUN_140014500((longlong)&local_58,(ulonglong)*param_5,param_3,uVar10);
FUN_140014500((longlong)&local_58,(ulonglong)*param_6,param_3,uVar10);
uVar1 = *(uint *)(param_7 + 0x18);
FUN_1400bddd0((longlong)&local_58,(longlong)(int)uVar1,param_3,uVar10);
puVar9 = (undefined8 *)0x0;
puVar6 = puVar9;
if (*(int *)(param_7 + 0x18) != 0) {
puVar6 = *(undefined8 **)(param_7 + 0x10);
}
if (uVar1 != 0) {
local_54 = 0;
if (local_50 == 0) {
if (local_48 == 0) {
/* WARNING: Subroutine does not return */
FUN_1400d1900(0,puVar6,param_3,uVar10);
}
LAB_14008a8ab:
param_3 = (SIZE_T)uVar1;
FUN_1400145e0(&local_48,puVar6,param_3,uVar10);
}
else {
if (local_48 != 0) goto LAB_14008a8ab;
if (local_50 == 0) {
/* WARNING: Subroutine does not return */
FUN_1400d1900(0,puVar6,param_3,uVar10);
}
param_3 = (SIZE_T)uVar1;
FUN_1400147b0(local_50,puVar6,param_3);
}
FUN_140014820((longlong)&local_58,puVar6,param_3,uVar10);
}
FUN_140014500((longlong)&local_58,(ulonglong)*param_8,param_3,uVar10);
uVar1 = *(uint *)(param_9 + 0x18);
FUN_1400bddd0((longlong)&local_58,(longlong)(int)uVar1,param_3,uVar10);
puVar6 = puVar9;
if (*(int *)(param_9 + 0x18) != 0) {
puVar6 = *(undefined8 **)(param_9 + 0x10);
}
if (uVar1 != 0) {
local_54 = 0;
if (local_50 == 0) {
if (local_48 == 0) {
/* WARNING: Subroutine does not return */
FUN_1400d1900(0,puVar6,param_3,uVar10);
}
LAB_14008a928:
param_3 = (SIZE_T)uVar1;
FUN_1400145e0(&local_48,puVar6,param_3,uVar10);
}
else {
if (local_48 != 0) goto LAB_14008a928;
if (local_50 == 0) {
/* WARNING: Subroutine does not return */
FUN_1400d1900(0,puVar6,param_3,uVar10);
}
param_3 = (SIZE_T)uVar1;
FUN_1400147b0(local_50,puVar6,param_3);
}
FUN_140014820((longlong)&local_58,puVar6,param_3,uVar10);
}
uVar1 = *(uint *)(param_10 + 0x18);
FUN_1400bddd0((longlong)&local_58,(longlong)(int)uVar1,param_3,uVar10);
puVar6 = puVar9;
if (*(int *)(param_10 + 0x18) != 0) {
puVar6 = *(undefined8 **)(param_10 + 0x10);
}
if (uVar1 != 0) {
local_54 = 0;
if (local_50 == 0) {
if (local_48 == 0) {
/* WARNING: Subroutine does not return */
FUN_1400d1900(0,puVar6,param_3,uVar10);
}
LAB_14008a996:
param_3 = (SIZE_T)uVar1;
FUN_1400145e0(&local_48,puVar6,param_3,uVar10);
}
else {
if (local_48 != 0) goto LAB_14008a996;
if (local_50 == 0) {
/* WARNING: Subroutine does not return */
FUN_1400d1900(0,puVar6,param_3,uVar10);
}
param_3 = (SIZE_T)uVar1;
FUN_1400147b0(local_50,puVar6,param_3);
}
FUN_140014820((longlong)&local_58,puVar6,param_3,uVar10);
}
uVar7 = (ulonglong)*param_11;
puVar4 = &local_58;
FUN_140014500((longlong)puVar4,uVar7,param_3,uVar10);
local_68 = *param_12;
uStack_60 = param_12[1];
local_54 = 0;
if (local_50 == 0) {
if (local_48 == 0) {
/* WARNING: Subroutine does not return */
FUN_1400d1900(puVar4,uVar7,param_3,uVar10);
}
}
else if (local_48 == 0) {
if (local_50 == 0) {
/* WARNING: Subroutine does not return */
FUN_1400d1900(puVar4,uVar7,param_3,uVar10);
}
iVar2 = *(int *)(local_50 + 0x18);
FUN_1400146f0(local_50,iVar2 + 0x10,param_3);
if (*(int *)(local_50 + 0x18) != 0) {
puVar9 = *(undefined8 **)(local_50 + 0x10);
}
*(undefined8 *)((longlong)iVar2 + (longlong)puVar9) = local_68;
*(undefined8 *)((longlong)iVar2 + 8 + (longlong)puVar9) = uStack_60;
goto LAB_14008aa68;
}
lVar8 = (longlong)local_40;
local_40 = local_40 + 0x10;
if ((local_40 < 0) || (local_3c < local_40)) {
/* WARNING: Subroutine does not return */
FUN_14006be00();
}
*(undefined8 *)(local_48 + lVar8) = local_68;
((undefined8 *)(local_48 + lVar8))[1] = uStack_60;
LAB_14008aa68:
FUN_140014820((longlong)&local_58,&local_68,param_3,uVar10);
FUN_140054a10((longlong)&local_58,(ulonglong)*param_13,param_3,uVar10);
FUN_140054930((longlong)&local_58,(ulonglong)*param_14,param_3,uVar10);
uVar3 = (**(code **)(*param_1 + 0x18))
(param_1,param_2,uVar11,param_4,&local_58,PTR_DAT_1401ac960,0xfbf5);
FUN_1400d1800(&local_50);
if ((local_48 != 0) && (local_3c < 0)) {
/* WARNING: Subroutine does not return */
FUN_14006be00();
}
return uVar3;
}