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
119
decomp/DBCServer_Release_x64/full/functions/0x1401c63f0.c
Normal file
119
decomp/DBCServer_Release_x64/full/functions/0x1401c63f0.c
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x1401c63f0 FUN_1401c63f0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
longlong FUN_1401c63f0(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
|
||||
|
||||
{
|
||||
longlong *plVar1;
|
||||
undefined8 *puVar2;
|
||||
int iVar3;
|
||||
void *pvVar4;
|
||||
ulonglong *puVar5;
|
||||
longlong *plVar6;
|
||||
undefined4 uVar7;
|
||||
int iVar8;
|
||||
longlong lVar9;
|
||||
longlong lVar10;
|
||||
longlong lVar11;
|
||||
ulonglong uVar12;
|
||||
ulonglong uVar13;
|
||||
int iVar14;
|
||||
ulonglong uVar15;
|
||||
longlong lVar16;
|
||||
ulonglong uVar17;
|
||||
int iVar18;
|
||||
longlong *local_res18;
|
||||
undefined8 uVar19;
|
||||
|
||||
uVar19 = 0xfffffffffffffffe;
|
||||
uVar7 = FUN_140171510();
|
||||
FUN_14016da70(param_1,uVar7,1,param_4,uVar19);
|
||||
iVar18 = 0;
|
||||
*(undefined8 *)(param_1 + 0x38) = 0;
|
||||
*(undefined8 *)(param_1 + 0x40) = 0;
|
||||
*(undefined4 *)(param_1 + 0x48) = 0;
|
||||
puVar2 = (undefined8 *)(param_1 + 0x50);
|
||||
*puVar2 = Proud::CFastArray<Proud::RefCount<Proud::Thread>,0>::vftable;
|
||||
*(undefined8 *)(param_1 + 0x58) = 0;
|
||||
*(undefined8 *)(param_1 + 0x60) = 0;
|
||||
*(undefined8 *)(param_1 + 0x68) = 0;
|
||||
*(undefined8 *)(param_1 + 0x70) = 0;
|
||||
*(undefined1 *)(param_1 + 0x80) = 1;
|
||||
iVar8 = FUN_14016eed0();
|
||||
if (0 < iVar8) {
|
||||
do {
|
||||
lVar9 = 0;
|
||||
local_res18 = operator_new(0x28);
|
||||
if (local_res18 != (longlong *)0x0) {
|
||||
lVar9 = FUN_1401996b0(local_res18,&LAB_1401c6200,param_1);
|
||||
}
|
||||
if (lVar9 == 0) {
|
||||
local_res18 = (longlong *)0x0;
|
||||
}
|
||||
else {
|
||||
local_res18 = (longlong *)FUN_14016d940(0x10);
|
||||
local_res18[1] = 1;
|
||||
*local_res18 = lVar9;
|
||||
}
|
||||
plVar1 = local_res18;
|
||||
iVar3 = *(int *)(param_1 + 0x68);
|
||||
if (iVar3 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
iVar14 = *(int *)(param_1 + 0x68);
|
||||
FUN_1401a8910(puVar2,iVar14 + 1);
|
||||
iVar14 = iVar14 - iVar3;
|
||||
if ((0 < iVar14) && (iVar14 = iVar14 + -1, -1 < iVar14)) {
|
||||
lVar9 = (longlong)(iVar14 + iVar3 + 1) << 3;
|
||||
lVar16 = (longlong)(iVar14 + iVar3) << 3;
|
||||
do {
|
||||
lVar10 = FUN_14016ab80(puVar2);
|
||||
lVar11 = FUN_14016ab80(puVar2);
|
||||
FUN_1401a4b40(lVar9 + lVar11,lVar16 + lVar10);
|
||||
lVar16 = lVar16 + -8;
|
||||
lVar9 = lVar9 + -8;
|
||||
iVar14 = iVar14 + -1;
|
||||
} while (-1 < iVar14);
|
||||
}
|
||||
lVar9 = FUN_14016ab80(puVar2);
|
||||
FUN_1401a4b40(lVar9 + (longlong)iVar3 * 8,&local_res18);
|
||||
plVar6 = local_res18;
|
||||
if (plVar1 != (longlong *)0x0) {
|
||||
plVar1 = plVar1 + 1;
|
||||
*plVar1 = *plVar1 + -1;
|
||||
if (*plVar1 == 0) {
|
||||
pvVar4 = (void *)*local_res18;
|
||||
if (pvVar4 != (void *)0x0) {
|
||||
FUN_1401997c0(pvVar4);
|
||||
operator_delete(pvVar4);
|
||||
}
|
||||
FUN_14016d970(plVar6);
|
||||
}
|
||||
}
|
||||
iVar18 = iVar18 + 1;
|
||||
} while (iVar18 < iVar8);
|
||||
}
|
||||
uVar17 = 0;
|
||||
uVar13 = uVar17;
|
||||
uVar15 = uVar17;
|
||||
if (0 < iVar8) {
|
||||
do {
|
||||
if (((longlong)uVar13 < 0) || (*(int *)(param_1 + 0x68) <= (int)uVar15)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6e0();
|
||||
}
|
||||
puVar5 = *(ulonglong **)(*(longlong *)(param_1 + 0x60) + uVar13 * 8);
|
||||
uVar12 = uVar17;
|
||||
if (puVar5 != (ulonglong *)0x0) {
|
||||
uVar12 = *puVar5;
|
||||
}
|
||||
FUN_1401998a0(uVar12);
|
||||
uVar15 = (ulonglong)((int)uVar15 + 1);
|
||||
uVar13 = uVar13 + 1;
|
||||
} while ((longlong)uVar13 < (longlong)iVar8);
|
||||
}
|
||||
return param_1;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue