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
116
decomp/DBCServer_Release_x64/full/functions/0x1401c2b40.c
Normal file
116
decomp/DBCServer_Release_x64/full/functions/0x1401c2b40.c
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x1401c2b40 FUN_1401c2b40
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __chkstk replaced with injection: alloca_probe */
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
void FUN_1401c2b40(int *param_1,longlong param_2,undefined8 param_3)
|
||||
|
||||
{
|
||||
longlong lVar1;
|
||||
int iVar2;
|
||||
longlong lVar3;
|
||||
undefined1 auStack_1a08 [32];
|
||||
undefined1 local_19e8 [72];
|
||||
undefined8 local_19a0;
|
||||
undefined1 local_1998 [80];
|
||||
undefined1 local_1948 [3200];
|
||||
longlong local_cc8;
|
||||
undefined4 local_cc0;
|
||||
int local_cbc;
|
||||
undefined1 local_cb8 [3200];
|
||||
longlong local_38;
|
||||
int local_2c;
|
||||
ulonglong local_28;
|
||||
undefined8 uStack_20;
|
||||
|
||||
uStack_20 = 0x1401c2b4e;
|
||||
local_19a0 = 0xfffffffffffffffe;
|
||||
local_28 = DAT_1403463c0 ^ (ulonglong)auStack_1a08;
|
||||
if (*(longlong *)(param_2 + 0xc80) == 0) {
|
||||
FUN_14016d300(local_19e8,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0);
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_19e8,(ThrowInfo *)&DAT_1403417f8);
|
||||
}
|
||||
if (*(int *)(param_2 + 0xc8c) < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
lVar3 = 0;
|
||||
*(undefined4 *)(param_2 + 0xc88) = 0;
|
||||
FUN_14004eef0(param_3,0x13);
|
||||
FUN_14004eef0(param_3,(char)*param_1);
|
||||
if (*param_1 == 1) {
|
||||
FUN_140153c40(param_3,param_1[1]);
|
||||
if (*(longlong *)(param_1 + 2) == 0) {
|
||||
if (*(longlong *)(param_1 + 4) == 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d1e0();
|
||||
}
|
||||
iVar2 = param_1[6];
|
||||
}
|
||||
else {
|
||||
iVar2 = *(int *)(*(longlong *)(param_1 + 2) + 0x18);
|
||||
}
|
||||
FUN_14016cac0(param_3,(longlong)iVar2);
|
||||
FUN_14016e080(local_1948,param_3);
|
||||
FUN_14016ded0(param_2,local_1948);
|
||||
if (local_cc8 == 0) {
|
||||
FUN_14016d300(local_19e8,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0);
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_19e8,(ThrowInfo *)&DAT_1403417f8);
|
||||
}
|
||||
if (local_cbc < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
local_cc0 = 0;
|
||||
lVar1 = *(longlong *)(param_1 + 2);
|
||||
if ((lVar1 == 0) && (*(longlong *)(param_1 + 4) == 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d1e0();
|
||||
}
|
||||
if (*(longlong *)(param_1 + 4) == 0) {
|
||||
if (lVar1 == 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d1e0();
|
||||
}
|
||||
if (*(int *)(lVar1 + 0x18) != 0) {
|
||||
lVar3 = *(longlong *)(lVar1 + 0x10);
|
||||
}
|
||||
}
|
||||
else {
|
||||
lVar3 = *(longlong *)(param_1 + 4);
|
||||
if (lVar3 == 0) {
|
||||
FUN_14016d300(local_1998,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0);
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_1998,(ThrowInfo *)&DAT_1403417f8);
|
||||
}
|
||||
}
|
||||
FUN_14016de40(param_2,lVar3);
|
||||
}
|
||||
else if (*param_1 == 2) {
|
||||
if ((*(longlong **)(param_1 + 8) == (longlong *)0x0) ||
|
||||
(lVar3 = **(longlong **)(param_1 + 8), lVar3 == 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
FUN_1401c3450(lVar3,param_3);
|
||||
FUN_140153c40(param_3,param_1[0xd]);
|
||||
FUN_140153c40(param_3,param_1[0xc]);
|
||||
FUN_14016e080(local_cb8,param_3);
|
||||
FUN_14016ded0(param_2,local_cb8);
|
||||
if (local_38 == 0) {
|
||||
FUN_14016d300(local_19e8,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0);
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_19e8,(ThrowInfo *)&DAT_1403417f8);
|
||||
}
|
||||
if (local_2c < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue