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/0x14016c760.c
Normal file
173
decomp/DBCServer_Release_x64/full/functions/0x14016c760.c
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x14016c760 FUN_14016c760
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
undefined1 FUN_14016c760(uint *param_1,int *param_2)
|
||||
|
||||
{
|
||||
char cVar1;
|
||||
undefined1 uVar2;
|
||||
uint uVar3;
|
||||
int iVar4;
|
||||
int *piVar5;
|
||||
undefined8 uVar6;
|
||||
uint uVar7;
|
||||
uint uVar8;
|
||||
int *piVar9;
|
||||
int *piVar10;
|
||||
int iVar11;
|
||||
int iVar12;
|
||||
undefined1 auStack_1e8 [32];
|
||||
char local_1c8 [8];
|
||||
int *local_1c0;
|
||||
undefined2 *local_1b8;
|
||||
int **local_1b0;
|
||||
int *local_1a8;
|
||||
undefined8 local_1a0;
|
||||
undefined1 local_198 [80];
|
||||
undefined1 *local_148;
|
||||
undefined1 local_140 [264];
|
||||
ulonglong local_38;
|
||||
|
||||
local_1a0 = 0xfffffffffffffffe;
|
||||
local_38 = DAT_1403463c0 ^ (ulonglong)auStack_1e8;
|
||||
uVar8 = (int)*param_1 >> 0x1f & 7;
|
||||
uVar3 = *param_1 + uVar8;
|
||||
uVar7 = uVar3 & 0xfffffff8;
|
||||
*param_1 = uVar7;
|
||||
if (0 < (int)((uVar3 & 7) - uVar8)) {
|
||||
*param_1 = uVar7 + 8;
|
||||
}
|
||||
cVar1 = FUN_14016b100(param_1,local_1c8,1);
|
||||
if (cVar1 == '\0') {
|
||||
return 0;
|
||||
}
|
||||
FUN_14016b2e0(param_1);
|
||||
cVar1 = FUN_14016ba10(param_1,&local_1c0);
|
||||
piVar10 = local_1c0;
|
||||
if (cVar1 == '\0') {
|
||||
return 0;
|
||||
}
|
||||
iVar11 = (int)local_1c0;
|
||||
if ((iVar11 < 0) || (0x100000 < iVar11)) {
|
||||
FUN_14016d300(local_198,L"CMessage.ReadString failed! length=%d",
|
||||
(ulonglong)local_1c0 & 0xffffffff);
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_198,(ThrowInfo *)&DAT_1403417f8);
|
||||
}
|
||||
if (local_1c8[0] == '\x02') {
|
||||
local_1c0 = param_2;
|
||||
local_1b8 = (undefined2 *)FUN_14004e940(param_2,iVar11 + 1);
|
||||
*local_1b8 = 0;
|
||||
local_1b8[iVar11] = 0;
|
||||
uVar2 = FUN_14016b370(param_1,local_1b8,iVar11 * 2);
|
||||
FUN_14004e560(param_2);
|
||||
return uVar2;
|
||||
}
|
||||
FUN_14016d8c0();
|
||||
local_1c0 = (int *)PTR_DAT_140344098;
|
||||
iVar4 = iVar11 + 1;
|
||||
local_1b0 = &local_1c0;
|
||||
if (iVar4 < 1) {
|
||||
iVar4 = 0;
|
||||
}
|
||||
iVar12 = 1;
|
||||
if (1 < iVar4) {
|
||||
iVar12 = iVar4;
|
||||
}
|
||||
if (iVar12 < 1) goto LAB_14016c926;
|
||||
local_1c0 = (int *)PTR_DAT_140344098;
|
||||
if (iVar12 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
if (iVar12 == 0) {
|
||||
FUN_14004f5a0(&local_1c0);
|
||||
goto LAB_14016c926;
|
||||
}
|
||||
piVar5 = (int *)FUN_14016d940((longlong)iVar12 + 9);
|
||||
if (piVar5 != (int *)0x0) {
|
||||
*piVar5 = 0;
|
||||
piVar5[1] = 1;
|
||||
}
|
||||
*piVar5 = iVar12;
|
||||
iVar4 = 0;
|
||||
if ((local_1c0 != (int *)0x0) && (iVar4 = 0, local_1c0 != (int *)PTR_DAT_140344098)) {
|
||||
iVar4 = local_1c0[-2];
|
||||
}
|
||||
piVar9 = (int *)PTR_DAT_140344098;
|
||||
if (iVar12 < iVar4) {
|
||||
LAB_14016c900:
|
||||
if (local_1c0 != (int *)0x0) {
|
||||
piVar9 = local_1c0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
iVar12 = 0;
|
||||
if (local_1c0 != (int *)0x0) {
|
||||
if (local_1c0 != (int *)PTR_DAT_140344098) {
|
||||
iVar12 = local_1c0[-2];
|
||||
}
|
||||
goto LAB_14016c900;
|
||||
}
|
||||
}
|
||||
FUN_14016d810(piVar5 + 2,piVar9,iVar12);
|
||||
FUN_14004f5a0(&local_1c0);
|
||||
local_1c0 = piVar5 + 2;
|
||||
LAB_14016c926:
|
||||
FUN_14013c600(&local_1c0);
|
||||
local_1a8 = local_1c0;
|
||||
if (local_1c0 == (int *)0x0) {
|
||||
local_1a8 = (int *)PTR_DAT_140344098;
|
||||
}
|
||||
*(undefined1 *)local_1a8 = 0;
|
||||
*(undefined1 *)((longlong)iVar11 + (longlong)local_1a8) = 0;
|
||||
cVar1 = FUN_14016b370(param_1,local_1a8,(ulonglong)piVar10 & 0xffffffff);
|
||||
if (cVar1 == '\0') {
|
||||
FUN_14013c7e0(&local_1c0);
|
||||
piVar10 = local_1c0;
|
||||
if (((local_1c0 != (int *)0x0) && (local_1c0 != (int *)PTR_DAT_140344098)) &&
|
||||
(piVar5 = local_1c0 + -2, piVar5 != (int *)0x0)) {
|
||||
uVar6 = FUN_14016d8c0();
|
||||
local_1b0 = (int **)uVar6;
|
||||
FUN_14016db50(uVar6);
|
||||
local_1a8 = (int *)CONCAT71(local_1a8._1_7_,1);
|
||||
piVar10 = piVar10 + -1;
|
||||
*piVar10 = *piVar10 + -1;
|
||||
if (*piVar10 == 0) {
|
||||
FUN_14016d970(piVar5);
|
||||
}
|
||||
FUN_14016dbe0(uVar6);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
FUN_14013c7e0(&local_1c0);
|
||||
piVar10 = local_1c0;
|
||||
if (local_1c0 == (int *)0x0) {
|
||||
piVar10 = (int *)PTR_DAT_140344098;
|
||||
}
|
||||
local_148 = local_140;
|
||||
FUN_14015b060(&local_148,piVar10,3);
|
||||
FUN_14004c050(param_2,local_148);
|
||||
if (local_148 != local_140) {
|
||||
free(local_148);
|
||||
}
|
||||
piVar10 = local_1c0;
|
||||
if (((local_1c0 != (int *)0x0) && (local_1c0 != (int *)PTR_DAT_140344098)) &&
|
||||
(piVar5 = local_1c0 + -2, piVar5 != (int *)0x0)) {
|
||||
uVar6 = FUN_14016d8c0();
|
||||
local_1b0 = (int **)uVar6;
|
||||
FUN_14016db50(uVar6);
|
||||
local_1a8 = (int *)CONCAT71(local_1a8._1_7_,1);
|
||||
piVar10 = piVar10 + -1;
|
||||
*piVar10 = *piVar10 + -1;
|
||||
if (*piVar10 == 0) {
|
||||
FUN_14016d970(piVar5);
|
||||
}
|
||||
FUN_14016dbe0(uVar6);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue