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
381
decomp/DBCServer_Release_x64/full/functions/0x14019a030.c
Normal file
381
decomp/DBCServer_Release_x64/full/functions/0x14019a030.c
Normal file
|
|
@ -0,0 +1,381 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x14019a030 FUN_14019a030
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
bool FUN_14019a030(short *param_1,UUID *param_2)
|
||||
|
||||
{
|
||||
short sVar1;
|
||||
undefined1 *puVar2;
|
||||
uint uVar3;
|
||||
int iVar4;
|
||||
uint uVar5;
|
||||
uint uVar6;
|
||||
RPC_STATUS RVar7;
|
||||
uint *puVar8;
|
||||
uint *puVar9;
|
||||
char cVar10;
|
||||
longlong lVar11;
|
||||
short *psVar12;
|
||||
uint *puVar13;
|
||||
undefined1 auStack_f8 [32];
|
||||
uint *local_d8;
|
||||
undefined1 local_d0;
|
||||
undefined8 local_c8;
|
||||
undefined1 *local_b8;
|
||||
undefined1 local_b0 [136];
|
||||
ulonglong local_28;
|
||||
|
||||
local_c8 = 0xfffffffffffffffe;
|
||||
local_28 = DAT_1403463c0 ^ (ulonglong)auStack_f8;
|
||||
lVar11 = -1;
|
||||
psVar12 = param_1;
|
||||
do {
|
||||
if (lVar11 == 0) break;
|
||||
lVar11 = lVar11 + -1;
|
||||
sVar1 = *psVar12;
|
||||
psVar12 = psVar12 + 1;
|
||||
} while (sVar1 != 0);
|
||||
if (lVar11 == -2) {
|
||||
param_2->Data1 = 0;
|
||||
param_2->Data2 = 0;
|
||||
param_2->Data3 = 0;
|
||||
param_2->Data4[0] = '\0';
|
||||
param_2->Data4[1] = '\0';
|
||||
param_2->Data4[2] = '\0';
|
||||
param_2->Data4[3] = '\0';
|
||||
param_2->Data4[4] = '\0';
|
||||
param_2->Data4[5] = '\0';
|
||||
param_2->Data4[6] = '\0';
|
||||
param_2->Data4[7] = '\0';
|
||||
return false;
|
||||
}
|
||||
local_b8 = local_b0;
|
||||
FUN_14016ac90(&local_b8,param_1,3);
|
||||
puVar2 = local_b8;
|
||||
FUN_14016d8c0();
|
||||
puVar13 = (uint *)PTR_DAT_140344098;
|
||||
local_d8 = (uint *)PTR_DAT_140344098;
|
||||
uVar3 = FUN_14016d7e0(puVar2);
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
iVar4 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
iVar4 = 0;
|
||||
}
|
||||
else {
|
||||
iVar4 = *(int *)((longlong)puVar13 + -8);
|
||||
}
|
||||
uVar5 = uVar3;
|
||||
if ((int)uVar3 <= iVar4) {
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else {
|
||||
uVar5 = *(uint *)((longlong)puVar13 + -8);
|
||||
}
|
||||
}
|
||||
uVar6 = 1;
|
||||
if (1 < (int)uVar5) {
|
||||
uVar6 = uVar5;
|
||||
}
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
iVar4 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
iVar4 = 0;
|
||||
}
|
||||
else {
|
||||
iVar4 = *(int *)((longlong)puVar13 + -8);
|
||||
}
|
||||
if (iVar4 < (int)uVar6) {
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
puVar13 = (uint *)PTR_DAT_140344098;
|
||||
}
|
||||
local_d8 = puVar13;
|
||||
if ((int)uVar6 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
if (uVar6 == 0) {
|
||||
FUN_14004f5a0(&local_d8);
|
||||
}
|
||||
else {
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else {
|
||||
uVar5 = puVar13[-2];
|
||||
}
|
||||
if (uVar6 != uVar5) {
|
||||
puVar8 = (uint *)FUN_14016d940();
|
||||
if (puVar8 != (uint *)0x0) {
|
||||
*puVar8 = 0;
|
||||
puVar8[1] = 1;
|
||||
}
|
||||
*puVar8 = uVar6;
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else {
|
||||
uVar5 = puVar13[-2];
|
||||
}
|
||||
puVar9 = (uint *)PTR_DAT_140344098;
|
||||
if ((int)uVar6 < (int)uVar5) {
|
||||
LAB_14019a1d9:
|
||||
if (puVar13 != (uint *)0x0) {
|
||||
puVar9 = puVar13;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (puVar13 != (uint *)0x0) {
|
||||
if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else {
|
||||
uVar6 = puVar13[-2];
|
||||
}
|
||||
goto LAB_14019a1d9;
|
||||
}
|
||||
uVar6 = 0;
|
||||
}
|
||||
FUN_14016d810(puVar8 + 2,puVar9,uVar6);
|
||||
FUN_14004f5a0(&local_d8);
|
||||
local_d8 = puVar8 + 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
FUN_14013c600(&local_d8);
|
||||
puVar13 = local_d8;
|
||||
puVar8 = local_d8;
|
||||
if (local_d8 == (uint *)0x0) {
|
||||
puVar8 = (uint *)PTR_DAT_140344098;
|
||||
}
|
||||
FUN_14016d810(puVar8,puVar2,uVar3);
|
||||
uVar5 = FUN_14016d7e0();
|
||||
uVar3 = 0;
|
||||
if (0 < (int)uVar5) {
|
||||
uVar3 = uVar5;
|
||||
}
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else {
|
||||
uVar5 = puVar13[-2];
|
||||
}
|
||||
if ((int)uVar5 <= (int)uVar3) {
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
uVar3 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar3 = 0;
|
||||
}
|
||||
else {
|
||||
uVar3 = puVar13[-2];
|
||||
}
|
||||
}
|
||||
if (((puVar13 != (uint *)PTR_DAT_140344098) && (puVar13 != (uint *)0x0)) &&
|
||||
(puVar13 = puVar13 + -2, puVar13 != (uint *)0x0)) {
|
||||
*puVar13 = uVar3;
|
||||
*(char *)((longlong)(int)uVar3 + 8 + (longlong)puVar13) = '\0';
|
||||
}
|
||||
if (local_b8 != local_b0) {
|
||||
free(local_b8);
|
||||
}
|
||||
FUN_140199970(&local_d8,0x7b);
|
||||
puVar13 = local_d8;
|
||||
puVar8 = local_d8;
|
||||
if (local_d8 == (uint *)0x0) {
|
||||
puVar8 = (uint *)PTR_DAT_140344098;
|
||||
}
|
||||
puVar9 = (uint *)0x0;
|
||||
cVar10 = (char)*puVar8;
|
||||
if (cVar10 != '\0') {
|
||||
do {
|
||||
if (cVar10 == '}') {
|
||||
if (puVar9 == (uint *)0x0) {
|
||||
puVar9 = puVar8;
|
||||
}
|
||||
}
|
||||
else {
|
||||
puVar9 = (uint *)0x0;
|
||||
}
|
||||
puVar8 = (uint *)_mbsinc((uchar *)puVar8);
|
||||
cVar10 = (char)*puVar8;
|
||||
} while (cVar10 != '\0');
|
||||
if (puVar9 != (uint *)0x0) {
|
||||
iVar4 = (int)puVar13;
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
iVar4 = (int)PTR_DAT_140344098;
|
||||
}
|
||||
uVar3 = (int)puVar9 - iVar4;
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else {
|
||||
uVar5 = puVar13[-2];
|
||||
}
|
||||
uVar6 = uVar3;
|
||||
if ((int)uVar3 <= (int)uVar5) {
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else {
|
||||
uVar6 = puVar13[-2];
|
||||
}
|
||||
}
|
||||
uVar5 = 1;
|
||||
if (1 < (int)uVar6) {
|
||||
uVar5 = uVar6;
|
||||
}
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else {
|
||||
uVar6 = puVar13[-2];
|
||||
}
|
||||
if ((int)uVar6 < (int)uVar5) {
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
puVar13 = (uint *)PTR_DAT_140344098;
|
||||
}
|
||||
local_d8 = puVar13;
|
||||
if ((int)uVar5 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
if (uVar5 == 0) {
|
||||
FUN_14004f5a0(&local_d8);
|
||||
}
|
||||
else {
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else {
|
||||
uVar6 = puVar13[-2];
|
||||
}
|
||||
if (uVar5 != uVar6) {
|
||||
puVar8 = (uint *)FUN_14016d940();
|
||||
if (puVar8 != (uint *)0x0) {
|
||||
*puVar8 = 0;
|
||||
puVar8[1] = 1;
|
||||
}
|
||||
*puVar8 = uVar5;
|
||||
if (puVar13 == (uint *)0x0) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else {
|
||||
uVar6 = puVar13[-2];
|
||||
}
|
||||
puVar9 = (uint *)PTR_DAT_140344098;
|
||||
if ((int)uVar5 < (int)uVar6) {
|
||||
LAB_14019a3fe:
|
||||
if (puVar13 != (uint *)0x0) {
|
||||
puVar9 = puVar13;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (puVar13 != (uint *)0x0) {
|
||||
if (puVar13 == (uint *)PTR_DAT_140344098) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else {
|
||||
uVar5 = puVar13[-2];
|
||||
}
|
||||
goto LAB_14019a3fe;
|
||||
}
|
||||
uVar5 = 0;
|
||||
}
|
||||
FUN_14016d810(puVar8 + 2,puVar9,uVar5);
|
||||
FUN_14004f5a0(&local_d8);
|
||||
local_d8 = puVar8 + 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
FUN_14013c600(&local_d8);
|
||||
uVar5 = 0;
|
||||
if (0 < (int)uVar3) {
|
||||
uVar5 = uVar3;
|
||||
}
|
||||
if (local_d8 == (uint *)0x0) {
|
||||
uVar3 = 0;
|
||||
}
|
||||
else if (local_d8 == (uint *)PTR_DAT_140344098) {
|
||||
uVar3 = 0;
|
||||
}
|
||||
else {
|
||||
uVar3 = local_d8[-2];
|
||||
}
|
||||
if ((int)uVar3 <= (int)uVar5) {
|
||||
if (local_d8 == (uint *)0x0) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else if (local_d8 == (uint *)PTR_DAT_140344098) {
|
||||
uVar5 = 0;
|
||||
}
|
||||
else {
|
||||
uVar5 = local_d8[-2];
|
||||
}
|
||||
}
|
||||
puVar13 = local_d8;
|
||||
if (local_d8 != (uint *)PTR_DAT_140344098) {
|
||||
puVar8 = (uint *)PTR_DAT_140344098;
|
||||
if (local_d8 == (uint *)0x0) goto LAB_14019a4a2;
|
||||
puVar8 = local_d8 + -2;
|
||||
if (puVar8 != (uint *)0x0) {
|
||||
*puVar8 = uVar5;
|
||||
*(char *)((longlong)(int)uVar5 + 8 + (longlong)puVar8) = '\0';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
puVar8 = (uint *)PTR_DAT_140344098;
|
||||
if (puVar13 != (uint *)0x0) {
|
||||
puVar8 = puVar13;
|
||||
}
|
||||
LAB_14019a4a2:
|
||||
RVar7 = UuidFromStringA((RPC_CSTR)puVar8,param_2);
|
||||
if (((puVar13 != (uint *)0x0) && (puVar13 != (uint *)PTR_DAT_140344098)) &&
|
||||
(puVar13 + -2 != (uint *)0x0)) {
|
||||
puVar9 = (uint *)FUN_14016d8c0();
|
||||
local_d8 = puVar9;
|
||||
FUN_14016db50(puVar9);
|
||||
local_d0 = 1;
|
||||
puVar8 = puVar13 + -1;
|
||||
*puVar8 = *puVar8 - 1;
|
||||
if (*puVar8 == 0) {
|
||||
FUN_14016d970(puVar13 + -2);
|
||||
}
|
||||
FUN_14016dbe0(puVar9);
|
||||
}
|
||||
return RVar7 == 0;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue