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
116
decomp/MessageServer_Release_x64/full/functions/0x14000b500.c
Normal file
116
decomp/MessageServer_Release_x64/full/functions/0x14000b500.c
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
||||
* Ghidra 12.1.2 decompiler output for 0x14000b500 FUN_14000b500
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
void FUN_14000b500(undefined8 *param_1,longlong *param_2)
|
||||
|
||||
{
|
||||
ulonglong uVar1;
|
||||
char cVar2;
|
||||
byte bVar3;
|
||||
longlong *plVar4;
|
||||
undefined *_Src;
|
||||
int *piVar5;
|
||||
int iVar6;
|
||||
longlong lVar7;
|
||||
size_t _Size;
|
||||
undefined8 uVar8;
|
||||
ulonglong uVar9;
|
||||
ulonglong uVar10;
|
||||
char *pcVar11;
|
||||
undefined1 auStack_78 [32];
|
||||
char local_58 [32];
|
||||
ulonglong local_38;
|
||||
|
||||
local_38 = DAT_1401ac5a0 ^ (ulonglong)auStack_78;
|
||||
piVar5 = (int *)*param_1;
|
||||
iVar6 = 0;
|
||||
uVar8 = *(undefined8 *)piVar5;
|
||||
if (0 < (int)uVar8) {
|
||||
do {
|
||||
_Src = PTR_s__amp__1401b33f0;
|
||||
lVar7 = (longlong)iVar6;
|
||||
bVar3 = *(byte *)((longlong)piVar5 + lVar7 + 0x10);
|
||||
if (bVar3 == 0x26) {
|
||||
if ((((int)uVar8 + -2 <= iVar6) ||
|
||||
(*(char *)((longlong)(iVar6 + 1) + 0x10 + (longlong)piVar5) != '#')) ||
|
||||
(*(char *)((longlong)(iVar6 + 2) + 0x10 + (longlong)piVar5) != 'x')) {
|
||||
plVar4 = (longlong *)*param_2;
|
||||
uVar9 = (ulonglong)DAT_1401b33f8;
|
||||
uVar10 = *plVar4 + uVar9;
|
||||
if (((ulonglong)plVar4[1] < uVar10) &&
|
||||
(uVar1 = plVar4[1] + uVar10, (ulonglong)plVar4[1] < uVar1)) {
|
||||
FUN_14000ae90(param_2,uVar1);
|
||||
}
|
||||
memmove((void *)(*(longlong *)*param_2 + 0x10 + *param_2),_Src,uVar9);
|
||||
*(ulonglong *)*param_2 = uVar10;
|
||||
*(undefined1 *)(*param_2 + 0x10 + uVar10) = 0;
|
||||
goto LAB_14000b768;
|
||||
}
|
||||
if (iVar6 < (int)uVar8 + -1) {
|
||||
do {
|
||||
plVar4 = (longlong *)*param_2;
|
||||
uVar9 = *plVar4 + 1;
|
||||
if (((ulonglong)plVar4[1] < uVar9) &&
|
||||
(uVar10 = plVar4[1] + uVar9, (ulonglong)plVar4[1] < uVar10)) {
|
||||
FUN_14000ae90(param_2,uVar10);
|
||||
}
|
||||
memmove((void *)(*(longlong *)*param_2 + 0x10 + *param_2),
|
||||
(void *)((longlong)iVar6 + 0x10 + (longlong)piVar5),1);
|
||||
*(ulonglong *)*param_2 = uVar9;
|
||||
iVar6 = iVar6 + 1;
|
||||
*(undefined1 *)(*param_2 + 0x10 + uVar9) = 0;
|
||||
piVar5 = (int *)*param_1;
|
||||
} while ((*(char *)((longlong)piVar5 + lVar7 + 0x11) != ';') &&
|
||||
(lVar7 = lVar7 + 1, iVar6 < *piVar5 + -1));
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (bVar3 == 0x3c) {
|
||||
FUN_14000b060(param_2,PTR_DAT_1401b3400,(ulonglong)DAT_1401b3408);
|
||||
}
|
||||
else if (bVar3 == 0x3e) {
|
||||
FUN_14000b060(param_2,PTR_DAT_1401b3410,(ulonglong)DAT_1401b3418);
|
||||
}
|
||||
else if (bVar3 == 0x22) {
|
||||
FUN_14000b060(param_2,PTR_s__quot__1401b3420,(ulonglong)DAT_1401b3428);
|
||||
}
|
||||
else if (bVar3 == 0x27) {
|
||||
FUN_14000b060(param_2,PTR_s__apos__1401b3430,(ulonglong)DAT_1401b3438);
|
||||
}
|
||||
else if (bVar3 < 0x20) {
|
||||
FUN_14000ae60(local_58,0x20,"&#x%02X;",(ulonglong)bVar3);
|
||||
lVar7 = -1;
|
||||
pcVar11 = local_58;
|
||||
do {
|
||||
if (lVar7 == 0) break;
|
||||
lVar7 = lVar7 + -1;
|
||||
cVar2 = *pcVar11;
|
||||
pcVar11 = pcVar11 + 1;
|
||||
} while (cVar2 != '\0');
|
||||
_Size = (size_t)(int)(~(uint)lVar7 - 1);
|
||||
plVar4 = (longlong *)*param_2;
|
||||
uVar9 = *plVar4 + _Size;
|
||||
if (((ulonglong)plVar4[1] < uVar9) &&
|
||||
(uVar10 = plVar4[1] + uVar9, (ulonglong)plVar4[1] < uVar10)) {
|
||||
FUN_14000ae90(param_2,uVar10);
|
||||
}
|
||||
memmove((void *)(*(longlong *)*param_2 + 0x10 + *param_2),local_58,_Size);
|
||||
*(ulonglong *)*param_2 = uVar9;
|
||||
*(undefined1 *)(*param_2 + 0x10 + uVar9) = 0;
|
||||
}
|
||||
else {
|
||||
FUN_14000b0e0(param_2,bVar3);
|
||||
}
|
||||
LAB_14000b768:
|
||||
iVar6 = iVar6 + 1;
|
||||
}
|
||||
piVar5 = (int *)*param_1;
|
||||
uVar8 = *(undefined8 *)piVar5;
|
||||
} while (iVar6 < (int)uVar8);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue