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
|
|
@ -0,0 +1,87 @@
|
|||
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
||||
* Ghidra 12.1.2 decompiler output for 0x14000c370 FUN_14000c370
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
ulonglong FUN_14000c370(longlong *param_1,char *param_2)
|
||||
|
||||
{
|
||||
char cVar1;
|
||||
undefined1 auVar2 [16];
|
||||
FILE *_File;
|
||||
errno_t eVar3;
|
||||
__uint64 _Var4;
|
||||
undefined4 extraout_var;
|
||||
longlong *plVar5;
|
||||
longlong *extraout_RAX;
|
||||
ulonglong uVar6;
|
||||
size_t sVar7;
|
||||
char *pcVar8;
|
||||
size_t *psVar9;
|
||||
FILE *local_res8;
|
||||
size_t *local_38;
|
||||
|
||||
uVar6 = 0xffffffffffffffff;
|
||||
pcVar8 = param_2;
|
||||
do {
|
||||
if (uVar6 == 0) break;
|
||||
uVar6 = uVar6 - 1;
|
||||
cVar1 = *pcVar8;
|
||||
pcVar8 = pcVar8 + 1;
|
||||
} while (cVar1 != '\0');
|
||||
uVar6 = ~uVar6;
|
||||
sVar7 = uVar6 - 1;
|
||||
if (sVar7 == 0) {
|
||||
psVar9 = &DAT_1401bcf30;
|
||||
}
|
||||
else {
|
||||
auVar2._8_8_ = 0;
|
||||
auVar2._0_8_ = uVar6 + 0x1a >> 2;
|
||||
_Var4 = SUB168(ZEXT816(4) * auVar2,0);
|
||||
if (SUB168(ZEXT816(4) * auVar2,8) != 0) {
|
||||
_Var4 = 0xffffffffffffffff;
|
||||
}
|
||||
local_38 = operator_new(_Var4);
|
||||
*local_38 = sVar7;
|
||||
*(undefined1 *)((longlong)local_38 + uVar6 + 0xf) = 0;
|
||||
local_38[1] = sVar7;
|
||||
psVar9 = local_38;
|
||||
}
|
||||
memcpy(psVar9 + 2,param_2,*psVar9);
|
||||
FUN_14000af60(param_1 + 7,psVar9 + 2,*psVar9);
|
||||
local_res8 = (FILE *)0x0;
|
||||
eVar3 = fopen_s(&local_res8,(char *)(param_1[7] + 0x10),"rb");
|
||||
_File = local_res8;
|
||||
plVar5 = (longlong *)CONCAT44(extraout_var,eVar3);
|
||||
if ((eVar3 == 0) && (local_res8 != (FILE *)0x0)) {
|
||||
uVar6 = FUN_14000c4f0(param_1,local_res8);
|
||||
fclose(_File);
|
||||
if (psVar9 != &DAT_1401bcf30) {
|
||||
operator_delete__(local_38);
|
||||
}
|
||||
uVar6 = uVar6 & 0xff;
|
||||
}
|
||||
else {
|
||||
if ((char)param_1[0xb] == '\0') {
|
||||
*(undefined1 *)(param_1 + 0xb) = 1;
|
||||
*(undefined4 *)((longlong)param_1 + 0x5c) = 2;
|
||||
uVar6 = 0xffffffffffffffff;
|
||||
pcVar8 = PTR_s_Failed_to_open_file_1401b3370;
|
||||
do {
|
||||
if (uVar6 == 0) break;
|
||||
uVar6 = uVar6 - 1;
|
||||
cVar1 = *pcVar8;
|
||||
pcVar8 = pcVar8 + 1;
|
||||
} while (cVar1 != '\0');
|
||||
plVar5 = FUN_14000af60(param_1 + 0xc,PTR_s_Failed_to_open_file_1401b3370,~uVar6 - 1);
|
||||
*(undefined4 *)(param_1 + 0xf) = 0xffffffff;
|
||||
*(undefined4 *)((longlong)param_1 + 0x74) = 0xffffffff;
|
||||
}
|
||||
if (psVar9 != &DAT_1401bcf30) {
|
||||
operator_delete__(local_38);
|
||||
plVar5 = extraout_RAX;
|
||||
}
|
||||
uVar6 = (ulonglong)plVar5 & 0xffffffffffffff00;
|
||||
}
|
||||
return uVar6;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue