decomp DBCServer_Release and inspect/document database
This commit is contained in:
parent
4b267cbe05
commit
7834b98bf0
28222 changed files with 843300 additions and 144 deletions
160
decomp/DBCServer_Release_x64/full/functions/0x1401f2000.c
Normal file
160
decomp/DBCServer_Release_x64/full/functions/0x1401f2000.c
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x1401f2000 FUN_1401f2000
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
void FUN_1401f2000(longlong param_1,longlong param_2,longlong param_3)
|
||||
|
||||
{
|
||||
undefined *puVar1;
|
||||
int *piVar2;
|
||||
longlong *plVar3;
|
||||
undefined8 uVar4;
|
||||
undefined4 uVar5;
|
||||
int iVar6;
|
||||
undefined8 uVar7;
|
||||
longlong lVar8;
|
||||
undefined8 *puVar9;
|
||||
ulonglong uVar10;
|
||||
ulonglong uVar11;
|
||||
undefined *puVar12;
|
||||
undefined8 uVar13;
|
||||
undefined1 local_res8 [8];
|
||||
undefined *local_res10;
|
||||
undefined8 in_stack_fffffffffffffef8;
|
||||
undefined4 uVar14;
|
||||
longlong local_e8;
|
||||
undefined **local_e0;
|
||||
undefined4 local_d8;
|
||||
undefined2 local_d4;
|
||||
undefined **local_d0;
|
||||
undefined8 local_c8;
|
||||
longlong local_c0;
|
||||
undefined8 local_b8;
|
||||
undefined4 local_b0;
|
||||
undefined4 local_ac;
|
||||
undefined **local_a8;
|
||||
undefined4 local_a0;
|
||||
undefined2 local_9c;
|
||||
undefined **local_98;
|
||||
undefined4 local_90;
|
||||
undefined2 local_8c;
|
||||
undefined **local_88;
|
||||
undefined4 local_80;
|
||||
undefined2 local_7c;
|
||||
undefined **local_78;
|
||||
undefined4 local_70;
|
||||
undefined2 local_6c;
|
||||
undefined8 local_68;
|
||||
undefined1 local_60;
|
||||
undefined8 local_58;
|
||||
|
||||
uVar14 = (undefined4)((ulonglong)in_stack_fffffffffffffef8 >> 0x20);
|
||||
local_58 = 0xfffffffffffffffe;
|
||||
(**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x108) + 0x78) + 0x10))();
|
||||
*(undefined1 *)(param_2 + 0xc0) = 0;
|
||||
if ((*(double *)(param_2 + 0x148) == 0.0) && (0 < *(int *)(param_3 + 8))) {
|
||||
uVar13 = (**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x108) + 0x70) + 0x1c0))();
|
||||
plVar3 = (longlong *)(*(longlong *)(param_1 + 0x108) + 0x678);
|
||||
*plVar3 = *plVar3 + 1;
|
||||
plVar3 = (longlong *)(*(longlong *)(param_1 + 0x108) + 0x680);
|
||||
*plVar3 = *plVar3 + (longlong)*(int *)(param_3 + 8);
|
||||
local_e0 = Proud::AddrPort::vftable;
|
||||
uVar11 = 0;
|
||||
local_d8 = 0;
|
||||
local_d4 = 0;
|
||||
local_e8 = 0;
|
||||
FUN_14016d8c0();
|
||||
local_res10 = PTR_DAT_1403440a0;
|
||||
local_78 = Proud::AddrPort::vftable;
|
||||
local_80 = *(undefined4 *)(param_3 + 0x30);
|
||||
local_7c = *(undefined2 *)(param_3 + 0x34);
|
||||
local_88 = Proud::AddrPort::vftable;
|
||||
uVar10 = uVar11;
|
||||
if (*(ulonglong **)(param_2 + 0x100) != (ulonglong *)0x0) {
|
||||
uVar10 = **(ulonglong **)(param_2 + 0x100);
|
||||
}
|
||||
uVar4 = *(undefined8 *)(param_2 + 0x188);
|
||||
local_70 = local_80;
|
||||
local_6c = local_7c;
|
||||
uVar5 = (**(code **)(**(longlong **)(param_1 + 0x108) + 0xe0))
|
||||
(*(longlong **)(param_1 + 0x108),&local_78);
|
||||
uVar7 = FUN_14019c8b0(uVar10);
|
||||
iVar6 = FUN_1401b8b00(uVar4,uVar7,*(undefined4 *)(param_3 + 8),&local_88,CONCAT44(uVar14,uVar5),
|
||||
uVar13,&local_e8,&local_res10);
|
||||
if (iVar6 == 0) {
|
||||
local_c8 = 0;
|
||||
local_c0 = 0;
|
||||
local_b8 = 0;
|
||||
local_d0 = Proud::CReceivedMessageList::vftable;
|
||||
local_b0 = 1000;
|
||||
local_ac = 1;
|
||||
local_a8 = Proud::AddrPort::vftable;
|
||||
local_a0 = local_d8;
|
||||
local_9c = local_d4;
|
||||
uVar10 = uVar11;
|
||||
if (*(int *)(local_e8 + 0x40) != 0) {
|
||||
uVar10 = *(ulonglong *)(local_e8 + 0x38);
|
||||
}
|
||||
FUN_1401d5dd0(*(undefined8 *)(param_1 + 0x108),uVar10,*(int *)(local_e8 + 0x40),&local_a8,
|
||||
&local_d0,local_res8);
|
||||
while (iVar6 = (int)uVar11, iVar6 != (int)local_b8) {
|
||||
if ((iVar6 < 0) || ((int)local_b8 <= iVar6)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6e0();
|
||||
}
|
||||
lVar8 = *(longlong *)(param_1 + 0x108);
|
||||
uVar13 = FUN_1401ed6b0(lVar8 + 0x6e0,local_c0 + (longlong)iVar6 * 0x48,
|
||||
*(undefined8 *)(lVar8 + 0x6f0),0);
|
||||
if (*(undefined8 **)(lVar8 + 0x6f0) == (undefined8 *)0x0) {
|
||||
*(undefined8 *)(lVar8 + 0x6e8) = uVar13;
|
||||
}
|
||||
else {
|
||||
**(undefined8 **)(lVar8 + 0x6f0) = uVar13;
|
||||
}
|
||||
*(undefined8 *)(lVar8 + 0x6f0) = uVar13;
|
||||
if ((int)local_b8 <= iVar6) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6e0();
|
||||
}
|
||||
uVar11 = (ulonglong)(iVar6 + 1);
|
||||
}
|
||||
if ((*(longlong *)(param_2 + 0x120) != 0) ||
|
||||
(lVar8 = FUN_1401c71d0(*(undefined8 *)(param_1 + 0x108)), param_2 == lVar8)) {
|
||||
FUN_1401f1e50(param_1,param_2);
|
||||
}
|
||||
FUN_1401a7fe0(&local_d0);
|
||||
}
|
||||
else if (iVar6 == 2) {
|
||||
puVar12 = local_res10;
|
||||
if (local_res10 == (undefined *)0x0) {
|
||||
puVar12 = PTR_DAT_1403440a0;
|
||||
}
|
||||
local_98 = Proud::AddrPort::vftable;
|
||||
local_90 = *(undefined4 *)(param_3 + 0x30);
|
||||
local_8c = *(undefined2 *)(param_3 + 0x34);
|
||||
puVar9 = (undefined8 *)(*(longlong *)(param_1 + 0x108) + 0x88);
|
||||
(**(code **)*puVar9)(puVar9,&local_98,puVar12);
|
||||
}
|
||||
puVar12 = local_res10;
|
||||
if (((local_res10 != (undefined *)0x0) && (local_res10 != PTR_DAT_1403440a0)) &&
|
||||
(puVar1 = local_res10 + -8, puVar1 != (undefined *)0x0)) {
|
||||
uVar13 = FUN_14016d8c0();
|
||||
local_68 = uVar13;
|
||||
FUN_14016db50(uVar13);
|
||||
local_60 = 1;
|
||||
piVar2 = (int *)(puVar12 + -4);
|
||||
*piVar2 = *piVar2 + -1;
|
||||
if (*piVar2 == 0) {
|
||||
FUN_14016d970(puVar1);
|
||||
}
|
||||
FUN_14016dbe0(uVar13);
|
||||
}
|
||||
local_res10 = PTR_DAT_1403440a0;
|
||||
if (local_e8 != 0) {
|
||||
FUN_1401a4a90();
|
||||
}
|
||||
}
|
||||
FUN_1401fdf10(param_2);
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue