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
128
decomp/DBCServer_Release_x64/full/functions/0x14016d300.c
Normal file
128
decomp/DBCServer_Release_x64/full/functions/0x14016d300.c
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x14016d300 FUN_14016d300
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
exception * FUN_14016d300(exception *param_1,wchar_t *param_2,undefined8 param_3,undefined8 param_4)
|
||||
|
||||
{
|
||||
int *piVar1;
|
||||
undefined *puVar2;
|
||||
int iVar3;
|
||||
int iVar4;
|
||||
int iVar5;
|
||||
undefined *puVar6;
|
||||
undefined8 local_res18;
|
||||
undefined8 local_res20;
|
||||
undefined1 auStack_928 [32];
|
||||
undefined *local_908;
|
||||
undefined1 local_900;
|
||||
exception *local_8f8;
|
||||
undefined8 local_8f0;
|
||||
undefined1 *local_8e8;
|
||||
undefined1 local_8e0 [136];
|
||||
wchar_t local_858 [1040];
|
||||
ulonglong local_38;
|
||||
|
||||
local_8f0 = 0xfffffffffffffffe;
|
||||
local_38 = DAT_1403463c0 ^ (ulonglong)auStack_928;
|
||||
local_res18 = param_3;
|
||||
local_res20 = param_4;
|
||||
local_8f8 = param_1;
|
||||
std::exception::exception(param_1);
|
||||
*(undefined ***)param_1 = Proud::Exception::vftable;
|
||||
FUN_14016d8c0();
|
||||
*(undefined **)(param_1 + 0x40) = PTR_DAT_140344098;
|
||||
FUN_14016d8c0();
|
||||
puVar2 = PTR_DAT_1403440a0;
|
||||
local_908 = PTR_DAT_1403440a0;
|
||||
if (param_2 == (wchar_t *)0x0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14004dc60(0x80070057);
|
||||
}
|
||||
iVar3 = vswprintf_s(local_858,0x400,param_2,(va_list)&local_res18);
|
||||
iVar4 = 0;
|
||||
if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_1403440a0)) {
|
||||
iVar4 = *(int *)(puVar2 + -8);
|
||||
}
|
||||
iVar5 = iVar3;
|
||||
if (((iVar3 <= iVar4) && (iVar5 = 0, puVar2 != (undefined *)0x0)) && (puVar2 != PTR_DAT_1403440a0)
|
||||
) {
|
||||
iVar5 = *(int *)(puVar2 + -8);
|
||||
}
|
||||
iVar4 = 1;
|
||||
if (1 < iVar5) {
|
||||
iVar4 = iVar5;
|
||||
}
|
||||
iVar5 = 0;
|
||||
if ((puVar2 != (undefined *)0x0) && (iVar5 = 0, puVar2 != PTR_DAT_1403440a0)) {
|
||||
iVar5 = *(int *)(puVar2 + -8);
|
||||
}
|
||||
if (iVar5 < iVar4) {
|
||||
FUN_14004e770(&local_908);
|
||||
}
|
||||
FUN_14004e850(&local_908);
|
||||
puVar2 = local_908;
|
||||
puVar6 = local_908;
|
||||
if (local_908 == (undefined *)0x0) {
|
||||
puVar6 = PTR_DAT_1403440a0;
|
||||
}
|
||||
FUN_14016d770(puVar6,local_858,iVar3);
|
||||
puVar6 = puVar2;
|
||||
if (puVar2 == (undefined *)0x0) {
|
||||
puVar6 = PTR_DAT_1403440a0;
|
||||
}
|
||||
iVar3 = FUN_14016d740(puVar6);
|
||||
iVar4 = 0;
|
||||
if (0 < iVar3) {
|
||||
iVar4 = iVar3;
|
||||
}
|
||||
iVar3 = 0;
|
||||
if ((puVar2 != (undefined *)0x0) && (iVar3 = 0, puVar2 != PTR_DAT_1403440a0)) {
|
||||
iVar3 = *(int *)(puVar2 + -8);
|
||||
}
|
||||
if ((iVar4 < iVar3) || (iVar4 = 0, puVar2 == (undefined *)0x0)) {
|
||||
LAB_14016d472:
|
||||
if (puVar2 != PTR_DAT_1403440a0) {
|
||||
puVar6 = PTR_DAT_1403440a0;
|
||||
if (puVar2 == (undefined *)0x0) goto LAB_14016d4a0;
|
||||
if ((int *)(puVar2 + -8) != (int *)0x0) {
|
||||
*(int *)(puVar2 + -8) = iVar4;
|
||||
*(undefined2 *)(puVar2 + (longlong)iVar4 * 2) = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (puVar2 != PTR_DAT_1403440a0) {
|
||||
iVar4 = *(int *)(puVar2 + -8);
|
||||
goto LAB_14016d472;
|
||||
}
|
||||
puVar6 = PTR_DAT_1403440a0;
|
||||
if (puVar2 != (undefined *)0x0) {
|
||||
puVar6 = puVar2;
|
||||
}
|
||||
LAB_14016d4a0:
|
||||
local_8e8 = local_8e0;
|
||||
FUN_14016ac90(&local_8e8,puVar6,3);
|
||||
FUN_14016bfb0(param_1 + 0x40,local_8e8);
|
||||
if (local_8e8 != local_8e0) {
|
||||
free(local_8e8);
|
||||
}
|
||||
*(undefined4 *)(param_1 + 0x18) = 0;
|
||||
*(undefined4 *)(param_1 + 0x38) = 1;
|
||||
if (((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_1403440a0)) &&
|
||||
(puVar2 + -8 != (undefined *)0x0)) {
|
||||
puVar6 = (undefined *)FUN_14016d8c0();
|
||||
local_908 = puVar6;
|
||||
FUN_14016db50(puVar6);
|
||||
local_900 = 1;
|
||||
piVar1 = (int *)(puVar2 + -4);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14016d970(puVar2 + -8);
|
||||
}
|
||||
FUN_14016dbe0(puVar6);
|
||||
}
|
||||
return param_1;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue