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
173
decomp/DBCServer_Release_x64/full/functions/0x1401d15c0.c
Normal file
173
decomp/DBCServer_Release_x64/full/functions/0x1401d15c0.c
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x1401d15c0 FUN_1401d15c0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
/* WARNING: Removing unreachable block (ram,0x0001401d1941) */
|
||||
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
||||
|
||||
void FUN_1401d15c0(longlong param_1)
|
||||
|
||||
{
|
||||
double dVar1;
|
||||
undefined4 uVar2;
|
||||
longlong lVar3;
|
||||
undefined8 uVar4;
|
||||
longlong lVar5;
|
||||
longlong lVar6;
|
||||
longlong lVar7;
|
||||
double dVar8;
|
||||
undefined1 auStack_d98 [32];
|
||||
undefined1 local_d78 [8];
|
||||
longlong local_d70;
|
||||
longlong local_d68;
|
||||
undefined4 local_d60;
|
||||
int local_d5c;
|
||||
undefined4 local_d50 [2];
|
||||
undefined8 local_d48;
|
||||
undefined1 local_d40;
|
||||
undefined4 local_d3c;
|
||||
undefined1 local_d38;
|
||||
undefined1 local_d37;
|
||||
undefined8 local_d30;
|
||||
undefined4 uStack_d28;
|
||||
undefined4 uStack_d24;
|
||||
longlong *local_d20;
|
||||
undefined8 local_d18;
|
||||
undefined1 local_d10 [72];
|
||||
undefined4 local_cc8;
|
||||
undefined4 uStack_cc4;
|
||||
undefined4 uStack_cc0;
|
||||
undefined4 uStack_cbc;
|
||||
undefined4 *local_48;
|
||||
undefined4 local_40;
|
||||
int local_3c;
|
||||
ulonglong local_38;
|
||||
|
||||
local_d18 = 0xfffffffffffffffe;
|
||||
local_38 = DAT_1403463c0 ^ (ulonglong)auStack_d98;
|
||||
(**(code **)(*(longlong *)(param_1 + 0x78) + 0x10))();
|
||||
lVar7 = 0;
|
||||
lVar3 = lVar7;
|
||||
if (*(longlong *)(param_1 + 0x1670) != 0) {
|
||||
lVar3 = *(longlong *)(param_1 + 0x1660);
|
||||
}
|
||||
do {
|
||||
lVar6 = lVar3;
|
||||
if (lVar6 == 0) {
|
||||
return;
|
||||
}
|
||||
if ((((*(longlong **)(lVar6 + 8) != (longlong *)0x0) &&
|
||||
(lVar3 = **(longlong **)(lVar6 + 8), lVar3 != 0)) && (*(char *)(lVar3 + 0x684) == '\0')) &&
|
||||
(*(int *)(lVar3 + 0x56c) != 1)) {
|
||||
lVar5 = lVar7;
|
||||
if (*(longlong *)(param_1 + 0x5d8) != 0) {
|
||||
lVar5 = *(longlong *)(*(longlong *)(param_1 + 0x5d8) + 0x38);
|
||||
}
|
||||
dVar8 = *(double *)(lVar3 + 0x148) - *(double *)(lVar5 + 0x100);
|
||||
*(double *)(lVar3 + 0x148) = dVar8;
|
||||
if (dVar8 <= 0.0) {
|
||||
*(undefined8 *)(lVar3 + 0x148) = DAT_140344d20;
|
||||
uVar4 = (**(code **)(*(longlong *)(param_1 + 0x70) + 0x1c0))(param_1 + 0x70);
|
||||
*(undefined8 *)(lVar3 + 0x80) = uVar4;
|
||||
if (*(char *)(lVar3 + 0x608) == '\0') {
|
||||
FUN_14016b440(local_d78);
|
||||
FUN_14016abe0(local_d78);
|
||||
FUN_14016b5a0(local_d78,0x800);
|
||||
FUN_14016b5a0(local_d78,0);
|
||||
FUN_14004eef0(local_d78,0x20);
|
||||
uVar4 = FUN_1401a1eb0(param_1 + 0x1620);
|
||||
FUN_14004ee00(local_d78,uVar4);
|
||||
local_3c = 200;
|
||||
local_40 = 0;
|
||||
local_48 = &local_cc8;
|
||||
if (local_d70 == 0) {
|
||||
uVar2 = local_d60;
|
||||
if (local_d68 == 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d1e0();
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar2 = *(undefined4 *)(local_d70 + 0x18);
|
||||
}
|
||||
lVar5 = local_d68;
|
||||
if (local_d68 == 0) {
|
||||
if (local_d70 == 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d1e0();
|
||||
}
|
||||
lVar5 = lVar7;
|
||||
if (*(int *)(local_d70 + 0x18) != 0) {
|
||||
lVar5 = *(longlong *)(local_d70 + 0x10);
|
||||
}
|
||||
}
|
||||
local_40 = 1;
|
||||
local_d30._0_4_ = (undefined4)lVar5;
|
||||
local_d30._4_4_ = (undefined4)((ulonglong)lVar5 >> 0x20);
|
||||
local_cc8 = (undefined4)local_d30;
|
||||
uStack_cc4 = local_d30._4_4_;
|
||||
uStack_cbc = uStack_d24;
|
||||
local_d50[0] = 0;
|
||||
local_d48 = 0;
|
||||
local_d40 = 1;
|
||||
local_d3c = 0xffffffff;
|
||||
local_d38 = 1;
|
||||
local_d37 = DAT_140344dfc;
|
||||
local_d30 = lVar5;
|
||||
uStack_d28 = uVar2;
|
||||
uStack_cc0 = uVar2;
|
||||
FUN_1401fa510(lVar3 + 0x668,&local_cc8,local_d50);
|
||||
if (local_48 == (undefined4 *)0x0) {
|
||||
FUN_14016d300(local_d10,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0);
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_d10,(ThrowInfo *)&DAT_1403417f8);
|
||||
}
|
||||
if (local_3c < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
local_40 = 0;
|
||||
local_d20 = &local_d70;
|
||||
FUN_14016d0e0(&local_d70);
|
||||
if (local_d68 != 0) {
|
||||
if (local_d5c < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
local_d60 = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
dVar8 = (double)(**(code **)(*(longlong *)(param_1 + 0x70) + 0x1c0))(param_1 + 0x70);
|
||||
dVar8 = dVar8 - *(double *)(lVar3 + 0xc0);
|
||||
if (0.0 < dVar8) {
|
||||
*(double *)(lVar3 + 0x140) = dVar8;
|
||||
}
|
||||
uVar4 = (**(code **)(*(longlong *)(param_1 + 0x70) + 0x1c0))(param_1 + 0x70);
|
||||
*(undefined8 *)(lVar3 + 0xc0) = uVar4;
|
||||
*(int *)(lVar3 + 0x100) = *(int *)(lVar3 + 0x100) + 1;
|
||||
*(undefined8 *)(lVar3 + 0x150) = 0;
|
||||
dVar8 = *(double *)(param_1 + 0x4f8) + *(double *)(lVar3 + 0x60);
|
||||
*(double *)(lVar3 + 0x158) = dVar8;
|
||||
if (*(char *)(lVar3 + 0x618) != '\0') {
|
||||
*(undefined8 *)(lVar3 + 0x50) = 0;
|
||||
*(undefined1 *)(lVar3 + 0x618) = 0;
|
||||
}
|
||||
dVar1 = *(double *)(lVar3 + 0x50);
|
||||
if (dVar1 <= 0.0) {
|
||||
*(undefined8 *)(lVar3 + 0x50) = *(undefined8 *)(lVar3 + 0x158);
|
||||
}
|
||||
else {
|
||||
*(double *)(lVar3 + 0x50) = (dVar8 - dVar1) * _DAT_140344d38 + dVar1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
lVar3 = lVar7;
|
||||
if (lVar6 != 0) {
|
||||
lVar3 = *(longlong *)(lVar6 + 0x10);
|
||||
}
|
||||
} while( true );
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue