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,72 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400e84c0 FUN_1400e84c0
* Pseudocode, not original source. */
undefined8 FUN_1400e84c0(longlong param_1,undefined **param_2)
{
longlong *plVar1;
undefined8 *puVar2;
bool bVar3;
uint uVar4;
IMAGE_DOS_HEADER *pIVar5;
undefined8 uVar6;
undefined *puVar7;
int *piVar8;
wchar_t *pwVar9;
IMAGE_DOS_HEADER *pIVar10;
TypeDescriptor *pTVar11;
ulonglong uVar12;
TypeDescriptor *pTVar13;
int *piVar14;
IMAGE_DOS_HEADER *local_res18 [2];
pIVar10 = (IMAGE_DOS_HEADER *)0x0;
pTVar13 = &Proud::CUdpSocket_C::RTTI_Type_Descriptor;
pTVar11 = &Proud::ICompletionContext::RTTI_Type_Descriptor;
uVar6 = 0;
pIVar5 = (IMAGE_DOS_HEADER *)__RTDynamicCast(*param_2);
if (pIVar5 == (IMAGE_DOS_HEADER *)0x0) {
uVar6 = 0;
}
else {
piVar14 = (int *)(param_1 + 0x10);
local_res18[0] = pIVar5;
FUN_14006b350(piVar14);
bVar3 = true;
if (*(int *)(param_2 + 2) == 1) {
plVar1 = *(longlong **)(*(longlong *)&pIVar5[2].e_lfarlc + 0x5d0);
if (plVar1 != (longlong *)0x0) {
pIVar10 = (IMAGE_DOS_HEADER *)*plVar1;
}
uVar6 = FUN_1400e0070((longlong)pIVar10,(longlong)pIVar5,(longlong)param_2,pTVar13);
}
else if (*(int *)(param_2 + 2) == 2) {
puVar2 = *(undefined8 **)(*(longlong *)&pIVar5[2].e_lfarlc + 0x5d0);
if (puVar2 != (undefined8 *)0x0) {
pIVar10 = (IMAGE_DOS_HEADER *)*puVar2;
}
uVar6 = FUN_1400e76a0(pIVar10,pIVar5,param_2,&pTVar13->pVFTable);
}
else {
piVar8 = piVar14;
FUN_14006b3e0((longlong)piVar14);
bVar3 = false;
FUN_14006cb70(piVar8,uVar6,pTVar11,pTVar13);
local_res18[0] = (IMAGE_DOS_HEADER *)PTR_DAT_1401ac010;
uVar4 = FUN_14006c9f0(L"Unexpected at Client IOCP UDP completion!");
puVar7 = FUN_140002f30((longlong *)local_res18,uVar4);
uVar12 = (ulonglong)uVar4;
pwVar9 = L"Unexpected at Client IOCP UDP completion!";
FUN_14006ca20(puVar7,L"Unexpected at Client IOCP UDP completion!",uVar4);
FUN_140003010((longlong *)local_res18);
uVar6 = FUN_14006fa80((longlong *)local_res18,pwVar9,uVar12,pTVar13);
}
if (bVar3) {
uVar6 = FUN_14006b3e0((longlong)piVar14);
}
uVar6 = CONCAT71((int7)((ulonglong)uVar6 >> 8),1);
}
return uVar6;
}