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
205
decomp/DBCServer_Release_x64/full/functions/0x1401a22b0.c
Normal file
205
decomp/DBCServer_Release_x64/full/functions/0x1401a22b0.c
Normal file
|
|
@ -0,0 +1,205 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x1401a22b0 FUN_1401a22b0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
undefined8 FUN_1401a22b0(longlong param_1,undefined8 *param_2,uint param_3)
|
||||
|
||||
{
|
||||
undefined8 *puVar1;
|
||||
undefined8 *puVar2;
|
||||
bool bVar3;
|
||||
undefined4 uVar4;
|
||||
undefined2 uVar5;
|
||||
int iVar6;
|
||||
char cVar7;
|
||||
DWORD DVar8;
|
||||
longlong lVar9;
|
||||
undefined8 *puVar10;
|
||||
int iVar11;
|
||||
double dVar12;
|
||||
double dVar13;
|
||||
int local_res8 [2];
|
||||
longlong local_res20;
|
||||
longlong local_a8;
|
||||
undefined1 local_a0;
|
||||
undefined8 local_98;
|
||||
longlong local_90;
|
||||
undefined8 local_88;
|
||||
undefined4 local_80;
|
||||
undefined8 local_78;
|
||||
undefined **local_70;
|
||||
undefined4 local_68;
|
||||
undefined2 local_64;
|
||||
undefined4 local_60;
|
||||
|
||||
local_98 = 0xfffffffffffffffe;
|
||||
if (*(longlong *)(param_1 + 0x28) == 0) {
|
||||
SetLastError(0);
|
||||
dVar12 = (double)FUN_1401a1eb0(param_1);
|
||||
local_res20 = param_1 + 0x50;
|
||||
puVar1 = (undefined8 *)(param_1 + 0x38);
|
||||
iVar11 = 0;
|
||||
do {
|
||||
local_a8 = param_1 + 0x50;
|
||||
FUN_14016db50(local_a8);
|
||||
local_a0 = 1;
|
||||
local_res8[0] = *(int *)(param_1 + 0x48) * 3 + 3;
|
||||
puVar2 = (undefined8 *)*puVar1;
|
||||
local_70 = Proud::AddrPort::vftable;
|
||||
local_60 = 0;
|
||||
local_78 = 0;
|
||||
local_68 = DAT_140344450;
|
||||
local_64 = DAT_140344454;
|
||||
for (; puVar2 != (undefined8 *)0x0; puVar2 = (undefined8 *)puVar2[1]) {
|
||||
cVar7 = FUN_14019c560(puVar2,0,&local_78);
|
||||
if (cVar7 != '\0') {
|
||||
*(undefined4 *)(param_2 + 2) = 1;
|
||||
puVar10 = puVar2 + 0x48;
|
||||
LAB_1401a2619:
|
||||
FUN_14019bbb0(puVar10,0,0);
|
||||
*param_2 = puVar2[0x5d];
|
||||
*(undefined4 *)((longlong)param_2 + 0xc) = local_78._4_4_;
|
||||
*(undefined4 *)(param_2 + 1) = local_60;
|
||||
if (puVar2[2] != 0) {
|
||||
FUN_14019c130(puVar2[2],puVar2);
|
||||
}
|
||||
if (puVar2[2] != 0) {
|
||||
FUN_14019c130(puVar1,puVar2);
|
||||
}
|
||||
if (*(longlong *)(param_1 + 0x40) == 0) {
|
||||
*puVar1 = puVar2;
|
||||
}
|
||||
else {
|
||||
*(undefined8 **)(*(longlong *)(param_1 + 0x40) + 8) = puVar2;
|
||||
*puVar2 = *(undefined8 *)(param_1 + 0x40);
|
||||
}
|
||||
*(undefined8 **)(param_1 + 0x40) = puVar2;
|
||||
puVar2[2] = puVar1;
|
||||
*(int *)(param_1 + 0x48) = *(int *)(param_1 + 0x48) + 1;
|
||||
lVar9 = local_res20;
|
||||
goto LAB_1401a26ca;
|
||||
}
|
||||
cVar7 = FUN_14019c2f0(puVar2,0,&local_78);
|
||||
if (cVar7 != '\0') {
|
||||
*(undefined4 *)(param_2 + 2) = 2;
|
||||
*(undefined4 *)(param_2 + 4) = *(undefined4 *)((longlong)puVar2 + 0x304);
|
||||
FUN_14016f840(param_2 + 5,puVar2 + 0x5e);
|
||||
puVar10 = puVar2 + 0x30;
|
||||
goto LAB_1401a2619;
|
||||
}
|
||||
cVar7 = FUN_14019c3c0(puVar2,0,&local_78);
|
||||
if (cVar7 != '\0') {
|
||||
*(undefined4 *)(param_2 + 2) = 3;
|
||||
puVar10 = puVar2 + 0x18;
|
||||
goto LAB_1401a2619;
|
||||
}
|
||||
cVar7 = FUN_14019c490(puVar2,0,&local_78);
|
||||
if (cVar7 != '\0') {
|
||||
*(undefined4 *)(param_2 + 2) = 4;
|
||||
puVar10 = puVar2 + 0x68;
|
||||
goto LAB_1401a2619;
|
||||
}
|
||||
}
|
||||
if (*(longlong *)(param_1 + 0xa0) != 0) {
|
||||
FUN_1401a2180(param_1 + 0x88,&local_90);
|
||||
if (local_90 == 0) {
|
||||
*param_2 = 0;
|
||||
}
|
||||
else {
|
||||
*param_2 = *(undefined8 *)(local_90 + 0x2e8);
|
||||
}
|
||||
*(undefined4 *)(param_2 + 2) = local_80;
|
||||
param_2[3] = local_88;
|
||||
param_2[1] = 0;
|
||||
lVar9 = param_1 + 0x50;
|
||||
LAB_1401a26ca:
|
||||
FUN_14016dbe0(lVar9);
|
||||
return 1;
|
||||
}
|
||||
FUN_14016dbe0(param_1 + 0x50);
|
||||
local_a0 = 0;
|
||||
if ((param_3 == 0) ||
|
||||
((param_3 != 0xffffffff &&
|
||||
(dVar13 = (double)FUN_1401a1eb0(param_1), (double)param_3 < (dVar13 - dVar12) * 1000.0))))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
bVar3 = local_res8[0] <= iVar11;
|
||||
iVar6 = 0;
|
||||
if (!bVar3) {
|
||||
iVar6 = iVar11 + 1;
|
||||
}
|
||||
iVar11 = iVar6;
|
||||
Sleep((uint)bVar3);
|
||||
} while( true );
|
||||
}
|
||||
local_res8[0] = 0;
|
||||
local_a8 = 0;
|
||||
local_res20 = 0;
|
||||
SetLastError(0);
|
||||
uVar5 = DAT_140344454;
|
||||
uVar4 = DAT_140344450;
|
||||
*param_2 = 0;
|
||||
param_2[1] = 0;
|
||||
*(undefined4 *)(param_2 + 2) = 5;
|
||||
param_2[3] = 0;
|
||||
*(undefined4 *)(param_2 + 4) = 0;
|
||||
*(undefined4 *)(param_2 + 6) = uVar4;
|
||||
*(undefined2 *)((longlong)param_2 + 0x34) = uVar5;
|
||||
lVar9 = FUN_14016f040();
|
||||
(**(code **)(lVar9 + 0x18))
|
||||
(*(undefined8 *)(param_1 + 0x28),local_res8,&local_a8,&local_res20,param_3);
|
||||
if (local_res20 == 0) {
|
||||
DVar8 = GetLastError();
|
||||
*(DWORD *)((longlong)param_2 + 0xc) = DVar8;
|
||||
return 0;
|
||||
}
|
||||
if (local_a8 == 0) {
|
||||
*param_2 = 0;
|
||||
}
|
||||
else {
|
||||
*param_2 = *(undefined8 *)(local_a8 + 0x2e8);
|
||||
}
|
||||
if (local_res20 < 0) {
|
||||
*(int *)(param_2 + 1) = local_res8[0];
|
||||
param_2[3] = local_res20;
|
||||
*(undefined8 *)((longlong)param_2 + 0xc) = 0;
|
||||
*(undefined4 *)(param_2 + 6) = DAT_140344450;
|
||||
*(undefined2 *)((longlong)param_2 + 0x34) = DAT_140344454;
|
||||
*(undefined4 *)(param_2 + 4) = 0;
|
||||
return 1;
|
||||
}
|
||||
if (local_a8 != 0) {
|
||||
lVar9 = local_a8 + 0x180;
|
||||
if (local_res20 == lVar9) {
|
||||
*(undefined4 *)(param_2 + 2) = 2;
|
||||
*(undefined4 *)(param_2 + 4) = *(undefined4 *)(local_a8 + 0x304);
|
||||
FUN_14016f840(param_2 + 5,local_a8 + 0x2f0);
|
||||
FUN_14019bbb0(lVar9,0,0);
|
||||
goto LAB_1401a2461;
|
||||
}
|
||||
if (local_res20 == local_a8 + 0x240) {
|
||||
*(undefined4 *)(param_2 + 2) = 1;
|
||||
FUN_14019bbb0(local_a8 + 0x240,0,0);
|
||||
goto LAB_1401a2461;
|
||||
}
|
||||
if (local_res20 == local_a8 + 0xc0) {
|
||||
*(undefined4 *)(param_2 + 2) = 3;
|
||||
FUN_14019bbb0(local_a8 + 0xc0,0,0);
|
||||
goto LAB_1401a2461;
|
||||
}
|
||||
if (local_res20 == local_a8 + 0x340) {
|
||||
*(undefined4 *)(param_2 + 2) = 4;
|
||||
FUN_14019bbb0(local_a8 + 0x340,0,0);
|
||||
goto LAB_1401a2461;
|
||||
}
|
||||
}
|
||||
*(undefined4 *)(param_2 + 2) = 0;
|
||||
param_2[3] = local_res20;
|
||||
LAB_1401a2461:
|
||||
*(int *)(param_2 + 1) = local_res8[0];
|
||||
*(undefined4 *)((longlong)param_2 + 0xc) = 0;
|
||||
GetLastError();
|
||||
return 1;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue