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
236
decomp/DBCServer_Release_x64/full/functions/0x1401e4a40.c
Normal file
236
decomp/DBCServer_Release_x64/full/functions/0x1401e4a40.c
Normal file
|
|
@ -0,0 +1,236 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x1401e4a40 FUN_1401e4a40
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
ulonglong FUN_1401e4a40(longlong param_1,undefined4 param_2,undefined4 *param_3)
|
||||
|
||||
{
|
||||
int iVar1;
|
||||
ulonglong uVar2;
|
||||
byte *_Memory;
|
||||
byte bVar3;
|
||||
undefined8 *puVar4;
|
||||
uint uVar5;
|
||||
int iVar6;
|
||||
byte *pbVar7;
|
||||
byte *pbVar8;
|
||||
undefined1 auStack_2a8 [32];
|
||||
undefined8 *local_288;
|
||||
undefined8 *local_280;
|
||||
undefined8 *local_278;
|
||||
undefined8 *local_270;
|
||||
undefined8 local_268;
|
||||
undefined8 local_260;
|
||||
undefined8 local_258;
|
||||
undefined4 local_250;
|
||||
undefined4 local_248;
|
||||
undefined8 local_240;
|
||||
undefined4 local_238;
|
||||
undefined4 local_230;
|
||||
undefined8 local_228;
|
||||
undefined4 local_220;
|
||||
undefined4 local_218;
|
||||
undefined8 local_210;
|
||||
undefined4 local_208;
|
||||
undefined4 local_200;
|
||||
undefined8 local_1f8;
|
||||
undefined4 local_1f0;
|
||||
undefined4 local_1e8;
|
||||
undefined8 local_1e0;
|
||||
undefined4 local_1d8;
|
||||
undefined4 local_1d0;
|
||||
undefined8 local_1c8;
|
||||
undefined8 local_1c0;
|
||||
undefined8 local_1b8;
|
||||
undefined8 local_1b0;
|
||||
undefined8 *local_1a8;
|
||||
undefined8 local_1a0;
|
||||
undefined8 *local_198;
|
||||
undefined8 *local_190;
|
||||
undefined8 *local_188;
|
||||
undefined8 *local_180;
|
||||
undefined8 *local_178;
|
||||
undefined4 local_168 [2];
|
||||
undefined4 *local_160;
|
||||
undefined8 local_158;
|
||||
undefined4 local_130;
|
||||
byte *local_128;
|
||||
undefined8 local_120;
|
||||
undefined4 local_f8 [2];
|
||||
undefined1 *local_f0;
|
||||
undefined8 local_e8;
|
||||
undefined4 local_c0;
|
||||
undefined8 local_b8;
|
||||
undefined8 local_b0;
|
||||
undefined1 local_88 [64];
|
||||
ulonglong local_48;
|
||||
|
||||
local_48 = DAT_1403463c0 ^ (ulonglong)auStack_2a8;
|
||||
if (((param_1 == 0) || (param_3 == (undefined4 *)0x0)) || (DAT_14039d260 == 0)) {
|
||||
uVar2 = 0x10;
|
||||
}
|
||||
else {
|
||||
local_278 = (undefined8 *)(param_3 + 8);
|
||||
local_280 = (undefined8 *)(param_3 + 0xc);
|
||||
local_270 = (undefined8 *)(param_3 + 10);
|
||||
local_288 = (undefined8 *)(param_3 + 0xe);
|
||||
local_190 = (undefined8 *)(param_3 + 4);
|
||||
local_178 = (undefined8 *)(param_3 + 0x10);
|
||||
local_268 = 0;
|
||||
local_1a8 = local_270;
|
||||
local_198 = local_288;
|
||||
local_188 = local_280;
|
||||
local_180 = local_278;
|
||||
uVar2 = FUN_140205a40(param_3 + 2,local_190,param_3 + 6);
|
||||
if ((int)uVar2 == 0) {
|
||||
_Memory = calloc(1,0x8000);
|
||||
if (_Memory == (byte *)0x0) {
|
||||
uVar5 = 0xd;
|
||||
puVar4 = local_1a8;
|
||||
}
|
||||
else {
|
||||
local_f0 = local_88;
|
||||
local_b8 = 0;
|
||||
local_b0 = 0;
|
||||
local_160 = local_f8;
|
||||
local_f8[0] = 7;
|
||||
local_e8 = 0x10;
|
||||
local_c0 = 6;
|
||||
local_168[0] = 0xd;
|
||||
local_158 = 2;
|
||||
local_130 = 4;
|
||||
local_120 = 0x8000;
|
||||
local_288 = (undefined8 *)CONCAT44(local_288._4_4_,1);
|
||||
local_128 = _Memory;
|
||||
iVar1 = FUN_140205c60(param_1,param_2,local_168);
|
||||
if (iVar1 == 0) {
|
||||
uVar5 = 0;
|
||||
iVar1 = 0;
|
||||
bVar3 = 0;
|
||||
iVar6 = 0;
|
||||
pbVar7 = _Memory;
|
||||
pbVar8 = _Memory;
|
||||
if ((uint)local_120 != 0) {
|
||||
do {
|
||||
iVar1 = iVar1 + 1;
|
||||
bVar3 = bVar3 * '\x02' | *pbVar7;
|
||||
if (iVar1 == 8) {
|
||||
*pbVar8 = bVar3;
|
||||
pbVar8 = pbVar8 + 1;
|
||||
bVar3 = 0;
|
||||
iVar6 = iVar6 + 1;
|
||||
iVar1 = 0;
|
||||
}
|
||||
uVar5 = uVar5 + 1;
|
||||
pbVar7 = pbVar7 + 1;
|
||||
} while (uVar5 < (uint)local_120);
|
||||
}
|
||||
local_270 = *(undefined8 **)(param_3 + 2);
|
||||
local_258 = 0;
|
||||
local_260 = 0;
|
||||
local_268 = 0;
|
||||
local_288 = *(undefined8 **)(param_3 + 6);
|
||||
local_278 = (undefined8 *)CONCAT44(local_278._4_4_,1);
|
||||
local_280 = (undefined8 *)CONCAT44(local_280._4_4_,2);
|
||||
uVar5 = FUN_140205b20(_Memory,iVar6,2);
|
||||
if (uVar5 == 0) {
|
||||
free(_Memory);
|
||||
*param_3 = 0;
|
||||
return 0;
|
||||
}
|
||||
free(_Memory);
|
||||
puVar4 = local_1a8;
|
||||
}
|
||||
else {
|
||||
free(_Memory);
|
||||
local_288 = *(undefined8 **)(param_3 + 6);
|
||||
local_270 = (undefined8 *)0x0;
|
||||
local_278 = (undefined8 *)0x0;
|
||||
local_280 = (undefined8 *)0x0;
|
||||
uVar5 = FUN_140205b20(param_1,param_2,2,1);
|
||||
puVar4 = local_1a8;
|
||||
if (uVar5 == 0) {
|
||||
iVar1 = (*DAT_14039d2c0)(*(undefined8 *)(param_3 + 6),0);
|
||||
if (iVar1 == 0) {
|
||||
uVar5 = (*DAT_14039d270)(&local_1a0);
|
||||
puVar4 = local_1a8;
|
||||
if (uVar5 == 0) {
|
||||
local_1c8 = *(undefined8 *)(param_3 + 0xc);
|
||||
local_1b0 = 0;
|
||||
local_1b8 = 0;
|
||||
local_1c0 = 0;
|
||||
local_1e0 = *(undefined8 *)(param_3 + 0x10);
|
||||
local_1d0 = 1;
|
||||
local_1d8 = 2;
|
||||
local_1f8 = *(undefined8 *)(param_3 + 0xe);
|
||||
local_1e8 = 1;
|
||||
local_1f0 = 2;
|
||||
local_210 = *(undefined8 *)(param_3 + 10);
|
||||
local_200 = 1;
|
||||
local_208 = 2;
|
||||
local_228 = *(undefined8 *)(param_3 + 8);
|
||||
local_218 = 1;
|
||||
local_220 = 2;
|
||||
local_240 = *(undefined8 *)(param_3 + 4);
|
||||
local_230 = 1;
|
||||
local_238 = 2;
|
||||
local_258 = *(undefined8 *)(param_3 + 2);
|
||||
local_248 = 1;
|
||||
local_250 = 2;
|
||||
local_270 = *(undefined8 **)(param_3 + 6);
|
||||
local_260 = CONCAT44(local_260._4_4_,1);
|
||||
local_268 = CONCAT44(local_268._4_4_,2);
|
||||
local_278 = (undefined8 *)CONCAT44(local_278._4_4_,1);
|
||||
local_280 = (undefined8 *)CONCAT44(local_280._4_4_,2);
|
||||
local_288 = (undefined8 *)local_1a0;
|
||||
uVar5 = FUN_140205b20(param_1,param_2,2,1);
|
||||
if (uVar5 == 0) {
|
||||
(*DAT_14039d280)(local_1a0);
|
||||
*param_3 = 1;
|
||||
return 0;
|
||||
}
|
||||
(*DAT_14039d280)();
|
||||
puVar4 = (undefined8 *)(param_3 + 10);
|
||||
}
|
||||
}
|
||||
else {
|
||||
iVar1 = (*DAT_14039d2c0)(*(undefined8 *)(param_3 + 6),1);
|
||||
if (iVar1 == 0) {
|
||||
uVar5 = 0x12;
|
||||
puVar4 = local_1a8;
|
||||
}
|
||||
else {
|
||||
local_270 = *(undefined8 **)(param_3 + 2);
|
||||
local_258 = 0;
|
||||
local_260 = 0;
|
||||
local_268 = 0;
|
||||
local_288 = *(undefined8 **)(param_3 + 6);
|
||||
local_278 = (undefined8 *)CONCAT44(local_278._4_4_,1);
|
||||
local_280 = (undefined8 *)CONCAT44(local_280._4_4_,2);
|
||||
uVar2 = FUN_140205b20(param_1,param_2,2);
|
||||
uVar5 = (uint)uVar2;
|
||||
puVar4 = local_1a8;
|
||||
if (uVar5 == 0) {
|
||||
*param_3 = 0;
|
||||
return uVar2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
local_270 = (undefined8 *)*puVar4;
|
||||
local_268 = 0;
|
||||
local_278 = (undefined8 *)*local_180;
|
||||
local_280 = (undefined8 *)*local_188;
|
||||
local_288 = (undefined8 *)*local_198;
|
||||
FUN_140205ad0(*local_190,*(undefined8 *)(param_3 + 2),*(undefined8 *)(param_3 + 6),*local_178)
|
||||
;
|
||||
uVar2 = (ulonglong)uVar5;
|
||||
}
|
||||
}
|
||||
return uVar2;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue