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
150
decomp/DBCServer_Release_x64/full/functions/0x14004fb10.c
Normal file
150
decomp/DBCServer_Release_x64/full/functions/0x14004fb10.c
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x14004fb10 FUN_14004fb10
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
void FUN_14004fb10(longlong param_1,longlong param_2,undefined8 param_3)
|
||||
|
||||
{
|
||||
int *piVar1;
|
||||
short sVar2;
|
||||
uint *puVar3;
|
||||
undefined8 *puVar4;
|
||||
undefined8 uVar5;
|
||||
ulonglong uVar6;
|
||||
short *psVar7;
|
||||
undefined2 *puVar8;
|
||||
longlong lVar9;
|
||||
undefined4 *puVar10;
|
||||
short *psVar11;
|
||||
undefined *puVar12;
|
||||
undefined1 auStack_f8 [32];
|
||||
undefined8 *local_d8;
|
||||
undefined2 local_d0;
|
||||
undefined2 local_ce;
|
||||
undefined8 local_cc;
|
||||
undefined2 local_c4;
|
||||
undefined4 local_c2;
|
||||
undefined2 local_be;
|
||||
undefined *local_b8;
|
||||
undefined *local_b0 [2];
|
||||
longlong local_a0;
|
||||
undefined1 local_98;
|
||||
undefined8 local_90;
|
||||
undefined1 local_88;
|
||||
undefined8 local_80;
|
||||
undefined1 local_78;
|
||||
undefined8 local_70;
|
||||
undefined2 local_68;
|
||||
undefined6 uStack_66;
|
||||
undefined8 local_58;
|
||||
ulonglong local_50;
|
||||
ulonglong local_40;
|
||||
|
||||
local_70 = 0xfffffffffffffffe;
|
||||
local_40 = DAT_1403463c0 ^ (ulonglong)auStack_f8;
|
||||
lVar9 = param_1 + 0x150;
|
||||
local_a0 = lVar9;
|
||||
FUN_14016db50(lVar9);
|
||||
local_98 = 1;
|
||||
puVar4 = (undefined8 *)FUN_14004f780(param_1,&local_d8,*(undefined4 *)(param_2 + 0x30));
|
||||
puVar10 = (undefined4 *)0x0;
|
||||
if ((undefined8 *)*puVar4 != (undefined8 *)0x0) {
|
||||
puVar10 = *(undefined4 **)*puVar4;
|
||||
}
|
||||
if ((local_d8 != (undefined8 *)0x0) &&
|
||||
(local_d8[1] = local_d8[1] + -1, lVar9 = local_a0, local_d8[1] == 0)) {
|
||||
if ((void *)*local_d8 != (void *)0x0) {
|
||||
operator_delete((void *)*local_d8);
|
||||
}
|
||||
FUN_14016d970(local_d8);
|
||||
lVar9 = local_a0;
|
||||
}
|
||||
if (puVar10 != (undefined4 *)0x0) {
|
||||
local_be = *(undefined2 *)(puVar10 + 1);
|
||||
local_c2 = *puVar10;
|
||||
local_c4 = 0;
|
||||
local_ce = 0x465;
|
||||
local_d0 = 0x14;
|
||||
local_cc = 0;
|
||||
FUN_140130d00(*(undefined8 *)(param_1 + 0xe0));
|
||||
}
|
||||
uVar6 = (ulonglong)*(uint *)(param_2 + 0x30) % (ulonglong)*(uint *)(param_1 + 0x120);
|
||||
if (*(longlong *)(param_1 + 0x100) != 0) {
|
||||
puVar3 = *(uint **)(*(longlong *)(param_1 + 0x100) + uVar6 * 8);
|
||||
while( true ) {
|
||||
if ((puVar3 == (uint *)0x0) || ((uint)uVar6 != puVar3[8] % *(uint *)(param_1 + 0x120)))
|
||||
goto LAB_14004fc5c;
|
||||
if (*puVar3 == *(uint *)(param_2 + 0x30)) break;
|
||||
puVar3 = *(uint **)(puVar3 + 4);
|
||||
}
|
||||
FUN_140044ee0(param_1 + 0xf8,puVar3);
|
||||
}
|
||||
LAB_14004fc5c:
|
||||
FUN_140170990(local_b0,param_2);
|
||||
puVar4 = (undefined8 *)FUN_1401990a0(param_3,&local_b8);
|
||||
psVar7 = (short *)*puVar4;
|
||||
if ((short *)*puVar4 == (short *)0x0) {
|
||||
psVar7 = (short *)PTR_DAT_1403440a0;
|
||||
}
|
||||
local_50 = 7;
|
||||
local_58 = 0;
|
||||
local_68 = 0;
|
||||
uVar6 = 0xffffffffffffffff;
|
||||
psVar11 = psVar7;
|
||||
do {
|
||||
if (uVar6 == 0) break;
|
||||
uVar6 = uVar6 - 1;
|
||||
sVar2 = *psVar11;
|
||||
psVar11 = psVar11 + 1;
|
||||
} while (sVar2 != 0);
|
||||
FUN_140056040(&local_68,psVar7,~uVar6 - 1);
|
||||
if (((local_b8 != (undefined *)0x0) && (local_b8 != PTR_DAT_1403440a0)) &&
|
||||
(local_b8 + -8 != (undefined *)0x0)) {
|
||||
uVar5 = FUN_14016d8c0();
|
||||
local_80 = uVar5;
|
||||
FUN_14016db50(uVar5);
|
||||
local_78 = 1;
|
||||
piVar1 = (int *)(local_b8 + -4);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14016d970(local_b8 + -8);
|
||||
}
|
||||
FUN_14016dbe0(uVar5);
|
||||
}
|
||||
local_b8 = PTR_DAT_1403440a0;
|
||||
puVar12 = local_b0[0];
|
||||
if (local_b0[0] == (undefined *)0x0) {
|
||||
puVar12 = PTR_DAT_140344098;
|
||||
}
|
||||
FUN_1400a6b90("Server Leave [%d][%s] ",*(undefined4 *)(param_2 + 0x30),puVar12);
|
||||
puVar8 = &local_68;
|
||||
if (7 < local_50) {
|
||||
puVar8 = (undefined2 *)CONCAT62(uStack_66,local_68);
|
||||
}
|
||||
FUN_1400a6c00(L"[%s]\n",puVar8);
|
||||
if (7 < local_50) {
|
||||
operator_delete((void *)CONCAT62(uStack_66,local_68));
|
||||
}
|
||||
local_50 = 7;
|
||||
local_58 = 0;
|
||||
local_68 = 0;
|
||||
if (((local_b0[0] != (undefined *)0x0) && (local_b0[0] != PTR_DAT_140344098)) &&
|
||||
(local_b0[0] + -8 != (undefined *)0x0)) {
|
||||
uVar5 = FUN_14016d8c0();
|
||||
local_90 = uVar5;
|
||||
FUN_14016db50(uVar5);
|
||||
local_88 = 1;
|
||||
piVar1 = (int *)(local_b0[0] + -4);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14016d970(local_b0[0] + -8);
|
||||
}
|
||||
FUN_14016dbe0(uVar5);
|
||||
}
|
||||
local_b0[0] = PTR_DAT_140344098;
|
||||
FUN_14016dbe0(lVar9);
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue