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
241
decomp/DBCServer_Release_x64/full/functions/0x1401d6d60.c
Normal file
241
decomp/DBCServer_Release_x64/full/functions/0x1401d6d60.c
Normal file
|
|
@ -0,0 +1,241 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x1401d6d60 FUN_1401d6d60
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Removing unreachable block (ram,0x0001401d716c) */
|
||||
/* WARNING: Removing unreachable block (ram,0x0001401d717b) */
|
||||
/* WARNING: Removing unreachable block (ram,0x0001401d7180) */
|
||||
/* WARNING: Removing unreachable block (ram,0x0001401d71be) */
|
||||
/* WARNING: Removing unreachable block (ram,0x0001401d7190) */
|
||||
/* WARNING: Removing unreachable block (ram,0x0001401d71af) */
|
||||
/* WARNING: Removing unreachable block (ram,0x0001401d71a1) */
|
||||
/* WARNING: Removing unreachable block (ram,0x0001401d71b7) */
|
||||
/* WARNING: Removing unreachable block (ram,0x0001401d71bc) */
|
||||
|
||||
undefined8 FUN_1401d6d60(undefined8 *param_1,LPCWSTR param_2)
|
||||
|
||||
{
|
||||
int *piVar1;
|
||||
undefined8 *puVar2;
|
||||
undefined8 *puVar3;
|
||||
undefined8 *puVar4;
|
||||
undefined8 *puVar5;
|
||||
int iVar6;
|
||||
DWORD DVar7;
|
||||
BOOL BVar8;
|
||||
longlong lVar9;
|
||||
undefined8 *puVar10;
|
||||
undefined8 uVar11;
|
||||
HANDLE hFile;
|
||||
undefined8 uVar12;
|
||||
undefined *puVar13;
|
||||
undefined8 *puVar14;
|
||||
undefined8 *puVar15;
|
||||
undefined *puVar16;
|
||||
undefined *puVar17;
|
||||
HANDLE pvVar18;
|
||||
undefined8 *local_res8;
|
||||
LPCWSTR local_res10;
|
||||
undefined2 local_res18 [4];
|
||||
undefined8 *local_res20;
|
||||
undefined *local_118;
|
||||
undefined8 *local_110;
|
||||
undefined8 *local_108;
|
||||
undefined8 *local_100;
|
||||
undefined8 *local_f8;
|
||||
HANDLE local_f0;
|
||||
undefined8 local_e8;
|
||||
undefined8 local_e0;
|
||||
undefined1 local_d8;
|
||||
undefined8 local_d0;
|
||||
undefined8 local_c8;
|
||||
longlong local_c0;
|
||||
undefined *local_b8;
|
||||
undefined4 local_b0;
|
||||
undefined8 local_a8;
|
||||
undefined8 local_a0;
|
||||
undefined1 local_98;
|
||||
undefined8 local_90;
|
||||
undefined1 local_88;
|
||||
undefined8 local_80;
|
||||
undefined8 local_78;
|
||||
undefined1 local_70;
|
||||
undefined *local_68 [5];
|
||||
|
||||
local_80 = 0xfffffffffffffffe;
|
||||
local_res8 = param_1;
|
||||
local_res10 = param_2;
|
||||
local_e0 = (**(code **)(param_1[-0xe] + 0x58))();
|
||||
FUN_14016db50(local_e0);
|
||||
puVar4 = local_res8;
|
||||
local_d8 = 1;
|
||||
puVar14 = (undefined8 *)0x0;
|
||||
local_110 = (undefined8 *)0x0;
|
||||
local_f8 = (undefined8 *)0x0;
|
||||
local_108 = (undefined8 *)0x0;
|
||||
local_100 = (undefined8 *)0x0;
|
||||
lVar9 = param_1[0x2eb];
|
||||
puVar2 = puVar14;
|
||||
puVar3 = puVar14;
|
||||
puVar10 = local_110;
|
||||
while (local_110 = puVar10, lVar9 != 0) {
|
||||
lVar9 = FUN_1401d3d60(param_1 + 0x2e8,local_68);
|
||||
puVar10 = (undefined8 *)FUN_14016d940(0x28);
|
||||
local_res8 = puVar10;
|
||||
local_res20 = puVar10;
|
||||
if (puVar10 != (undefined8 *)0x0) {
|
||||
FUN_14016d8c0();
|
||||
puVar10[2] = PTR_DAT_1403440a0;
|
||||
FUN_14004e6d0(puVar10 + 2,lVar9);
|
||||
*(undefined4 *)(puVar10 + 3) = *(undefined4 *)(lVar9 + 8);
|
||||
puVar10[4] = *(undefined8 *)(lVar9 + 0x10);
|
||||
}
|
||||
puVar16 = local_68[0];
|
||||
puVar10[1] = puVar2;
|
||||
*puVar10 = 0;
|
||||
puVar14 = (undefined8 *)((longlong)puVar14 + 1);
|
||||
puVar15 = puVar10;
|
||||
puVar5 = puVar10;
|
||||
if (puVar2 != (undefined8 *)0x0) {
|
||||
*puVar2 = puVar10;
|
||||
puVar15 = puVar3;
|
||||
puVar5 = local_108;
|
||||
}
|
||||
local_108 = puVar5;
|
||||
local_100 = puVar10;
|
||||
local_f8 = puVar14;
|
||||
if (((local_68[0] != (undefined *)0x0) && (local_68[0] != PTR_DAT_1403440a0)) &&
|
||||
(puVar13 = local_68[0] + -8, puVar13 != (undefined *)0x0)) {
|
||||
uVar11 = FUN_14016d8c0();
|
||||
local_90 = uVar11;
|
||||
FUN_14016db50(uVar11);
|
||||
local_88 = 1;
|
||||
piVar1 = (int *)(puVar16 + -4);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14016d970(puVar13);
|
||||
}
|
||||
FUN_14016dbe0(uVar11);
|
||||
local_88 = 0;
|
||||
}
|
||||
puVar2 = puVar10;
|
||||
puVar3 = puVar15;
|
||||
param_1 = puVar4;
|
||||
puVar10 = local_110;
|
||||
lVar9 = puVar4[0x2eb];
|
||||
}
|
||||
FUN_14016dbe0(local_e0);
|
||||
local_d8 = 0;
|
||||
local_f0 = (HANDLE)0x0;
|
||||
local_e8 = 0;
|
||||
hFile = CreateFileW(local_res10,0x40000000,1,(LPSECURITY_ATTRIBUTES)0x0,2,0x80,(HANDLE)0x0);
|
||||
pvVar18 = hFile;
|
||||
if ((hFile == (HANDLE)0xffffffffffffffff) &&
|
||||
(iVar6 = FUN_1401ad250(), hFile = (HANDLE)0x0, pvVar18 = local_f0, iVar6 < 0)) {
|
||||
for (; puVar14 != (undefined8 *)0x0; puVar14 = (undefined8 *)((longlong)puVar14 + -1)) {
|
||||
if (puVar3 == (undefined8 *)0x0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14004dc60(0x80004005);
|
||||
}
|
||||
puVar2 = (undefined8 *)*puVar3;
|
||||
FUN_14004eb70(puVar3 + 2);
|
||||
FUN_14016d970(puVar3);
|
||||
puVar3 = puVar2;
|
||||
}
|
||||
uVar11 = 0;
|
||||
}
|
||||
else {
|
||||
local_f0 = pvVar18;
|
||||
local_d0 = 0;
|
||||
DVar7 = SetFilePointer(hFile,0,(PLONG)((longlong)&local_d0 + 4),0);
|
||||
if (DVar7 == 0xffffffff) {
|
||||
FUN_1401ad250();
|
||||
}
|
||||
local_res18[0] = 0xfeff;
|
||||
BVar8 = WriteFile(hFile,local_res18,2,(LPDWORD)&local_res8,(LPOVERLAPPED)0x0);
|
||||
if (BVar8 == 0) {
|
||||
FUN_1401ad250();
|
||||
}
|
||||
FUN_14016d8c0();
|
||||
local_118 = PTR_DAT_1403440a0;
|
||||
puVar16 = PTR_DAT_1403440a0;
|
||||
while (puVar14 != (undefined8 *)0x0) {
|
||||
FUN_1401d3d60(&local_110,&local_b8);
|
||||
local_c8 = local_a8;
|
||||
puVar14 = (undefined8 *)FUN_1401ad910(&local_c8,&local_c0,&DAT_140283898);
|
||||
puVar16 = local_b8;
|
||||
if (local_b8 == (undefined *)0x0) {
|
||||
puVar16 = PTR_DAT_1403440a0;
|
||||
}
|
||||
uVar11 = *puVar14;
|
||||
uVar12 = FUN_1401bbc90(local_b0);
|
||||
FUN_14004c020(&local_118,L"[%s] [%s] %s\r\n",uVar12,uVar11,puVar16);
|
||||
LOCK();
|
||||
piVar1 = (int *)(local_c0 + -8);
|
||||
iVar6 = *piVar1;
|
||||
*piVar1 = *piVar1 + -1;
|
||||
UNLOCK();
|
||||
if (iVar6 + -1 < 1) {
|
||||
(**(code **)(**(longlong **)(local_c0 + -0x18) + 8))();
|
||||
}
|
||||
hFile = local_f0;
|
||||
puVar16 = local_118;
|
||||
iVar6 = 0;
|
||||
puVar13 = PTR_DAT_1403440a0;
|
||||
if (local_118 != (undefined *)0x0) {
|
||||
pvVar18 = (HANDLE)0x0;
|
||||
if (local_118 != PTR_DAT_1403440a0) {
|
||||
pvVar18 = (HANDLE)(ulonglong)*(uint *)(local_118 + -8);
|
||||
}
|
||||
iVar6 = (int)pvVar18;
|
||||
puVar13 = local_118;
|
||||
}
|
||||
BVar8 = WriteFile(local_f0,puVar13,iVar6 * 2,(LPDWORD)&local_res20,(LPOVERLAPPED)0x0);
|
||||
if (BVar8 == 0) {
|
||||
FUN_1401ad250();
|
||||
}
|
||||
puVar13 = local_b8;
|
||||
puVar10 = local_110;
|
||||
puVar14 = local_f8;
|
||||
if (((local_b8 != (undefined *)0x0) && (local_b8 != PTR_DAT_1403440a0)) &&
|
||||
(puVar17 = local_b8 + -8, puVar17 != (undefined *)0x0)) {
|
||||
uVar11 = FUN_14016d8c0();
|
||||
local_a0 = uVar11;
|
||||
FUN_14016db50(uVar11);
|
||||
local_98 = 1;
|
||||
piVar1 = (int *)(puVar13 + -4);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14016d970(puVar17);
|
||||
}
|
||||
FUN_14016dbe0(uVar11);
|
||||
local_98 = 0;
|
||||
puVar10 = local_110;
|
||||
puVar14 = local_f8;
|
||||
}
|
||||
}
|
||||
if (hFile != (HANDLE)0x0) {
|
||||
CloseHandle(hFile);
|
||||
local_f0 = (HANDLE)0x0;
|
||||
}
|
||||
if (((puVar16 != (undefined *)0x0) && (puVar16 != PTR_DAT_1403440a0)) &&
|
||||
(puVar16 + -8 != (undefined *)0x0)) {
|
||||
uVar11 = FUN_14016d8c0();
|
||||
local_78 = uVar11;
|
||||
FUN_14016db50(uVar11);
|
||||
local_70 = 1;
|
||||
piVar1 = (int *)(puVar16 + -4);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14016d970(puVar16 + -8);
|
||||
}
|
||||
FUN_14016dbe0(uVar11);
|
||||
}
|
||||
if (puVar10 != (undefined8 *)0x0) {
|
||||
(**(code **)*puVar10)(puVar10,1);
|
||||
}
|
||||
uVar11 = 1;
|
||||
}
|
||||
return uVar11;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue