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
183
decomp/MessageServer_Release_x64/full/functions/0x1400eb620.c
Normal file
183
decomp/MessageServer_Release_x64/full/functions/0x1400eb620.c
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400eb620 FUN_1400eb620
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
longlong *
|
||||
FUN_1400eb620(undefined8 param_1,longlong *param_2,longlong *******param_3,longlong *param_4)
|
||||
|
||||
{
|
||||
int *piVar1;
|
||||
longlong *****ppppplVar2;
|
||||
longlong ************pppppppppppplVar3;
|
||||
char *pcVar4;
|
||||
longlong ******pppppplVar5;
|
||||
longlong ***********ppppppppppplVar6;
|
||||
longlong ************_Str;
|
||||
longlong ******_Str_00;
|
||||
longlong *****_SubStr;
|
||||
longlong ***********_SubStr_00;
|
||||
longlong *plVar7;
|
||||
uint uVar8;
|
||||
uint uVar9;
|
||||
int iVar10;
|
||||
undefined *puVar11;
|
||||
ulonglong uVar12;
|
||||
ulonglong uVar13;
|
||||
longlong *****local_48;
|
||||
longlong ***********local_40;
|
||||
undefined1 local_38;
|
||||
undefined8 local_30;
|
||||
|
||||
local_30 = 0xfffffffffffffffe;
|
||||
plVar7 = param_4;
|
||||
FUN_14006cb70(param_1,param_2,param_3,param_4);
|
||||
local_48 = (longlong *****)PTR_DAT_1401ac008;
|
||||
puVar11 = (undefined *)*param_4;
|
||||
if ((undefined *)*param_4 == (undefined *)0x0) {
|
||||
puVar11 = PTR_DAT_1401ac008;
|
||||
}
|
||||
pppppplVar5 = &local_48;
|
||||
FUN_14006e800((longlong *)pppppplVar5,"<%s>",puVar11,plVar7);
|
||||
ppppplVar2 = local_48;
|
||||
_SubStr = local_48;
|
||||
if (local_48 == (longlong *****)0x0) {
|
||||
_SubStr = (longlong *****)PTR_DAT_1401ac008;
|
||||
}
|
||||
if (_SubStr == (longlong *****)0x0) {
|
||||
uVar8 = 0xffffffff;
|
||||
}
|
||||
else {
|
||||
pppppplVar5 = *param_3;
|
||||
_Str_00 = (longlong ******)PTR_DAT_1401ac008;
|
||||
if (((pppppplVar5 == (longlong ******)0x0) ||
|
||||
(_Str_00 = pppppplVar5, pppppplVar5 == (longlong ******)PTR_DAT_1401ac008)) ||
|
||||
(uVar8 = 0xffffffff, -1 < *(int *)(pppppplVar5 + -1))) {
|
||||
pcVar4 = strstr((char *)_Str_00,(char *)_SubStr);
|
||||
if (pcVar4 == (char *)0x0) {
|
||||
pppppplVar5 = _Str_00;
|
||||
uVar8 = 0xffffffff;
|
||||
}
|
||||
else {
|
||||
pppppplVar5 = *param_3;
|
||||
if (*param_3 == (longlong ******)0x0) {
|
||||
pppppplVar5 = (longlong ******)PTR_DAT_1401ac008;
|
||||
}
|
||||
uVar8 = (int)pcVar4 - (int)pppppplVar5;
|
||||
pppppplVar5 = (longlong ******)PTR_DAT_1401ac008;
|
||||
if (-1 < (int)uVar8) {
|
||||
iVar10 = 0;
|
||||
if ((ppppplVar2 != (longlong *****)0x0) &&
|
||||
(iVar10 = 0, ppppplVar2 != (longlong *****)PTR_DAT_1401ac008)) {
|
||||
iVar10 = *(int *)(ppppplVar2 + -1);
|
||||
}
|
||||
uVar8 = uVar8 + iVar10;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
FUN_14006cb70(pppppplVar5,_SubStr,puVar11,plVar7);
|
||||
local_40 = (longlong ***********)PTR_DAT_1401ac008;
|
||||
puVar11 = (undefined *)*param_4;
|
||||
if ((undefined *)*param_4 == (undefined *)0x0) {
|
||||
puVar11 = PTR_DAT_1401ac008;
|
||||
}
|
||||
_Str = &local_40;
|
||||
FUN_14006e800((longlong *)_Str,"</%s>",puVar11,plVar7);
|
||||
ppppppppppplVar6 = local_40;
|
||||
_SubStr_00 = local_40;
|
||||
if (local_40 == (longlong ***********)0x0) {
|
||||
_SubStr_00 = (longlong ***********)PTR_DAT_1401ac008;
|
||||
}
|
||||
uVar9 = 0xffffffff;
|
||||
if ((_SubStr_00 != (longlong ***********)0x0) &&
|
||||
((((_Str = (longlong ************)*param_3,
|
||||
pppppppppppplVar3 = (longlong ************)PTR_DAT_1401ac008, uVar9 = 0xffffffff,
|
||||
_Str == (longlong ************)0x0 ||
|
||||
(pppppppppppplVar3 = _Str, _Str == (longlong ************)PTR_DAT_1401ac008)) ||
|
||||
(-1 < *(int *)(_Str + -1))) &&
|
||||
(_Str = pppppppppppplVar3, pcVar4 = strstr((char *)_Str,(char *)_SubStr_00),
|
||||
pcVar4 != (char *)0x0)))) {
|
||||
pppppplVar5 = *param_3;
|
||||
if (*param_3 == (longlong ******)0x0) {
|
||||
pppppplVar5 = (longlong ******)PTR_DAT_1401ac008;
|
||||
}
|
||||
uVar9 = (int)pcVar4 - (int)pppppplVar5;
|
||||
}
|
||||
if ((((int)uVar8 < 0) || ((int)uVar9 < 0)) || ((int)uVar9 <= (int)uVar8)) {
|
||||
FUN_14006cb70(_Str,_SubStr_00,puVar11,plVar7);
|
||||
*param_2 = (longlong)PTR_DAT_1401ac008;
|
||||
if (((ppppppppppplVar6 != (longlong ***********)0x0) &&
|
||||
(ppppppppppplVar6 != (longlong ***********)PTR_DAT_1401ac008)) &&
|
||||
(ppppppppppplVar6 + -1 != (longlong ***********)0x0)) {
|
||||
_Str = (longlong ************)FUN_14006cb70(_Str,_SubStr_00,puVar11,plVar7);
|
||||
local_40 = (longlong ***********)_Str;
|
||||
FUN_14006b350((int *)_Str);
|
||||
local_38 = 1;
|
||||
piVar1 = (int *)((longlong)ppppppppppplVar6 + -4);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14006cc60(ppppppppppplVar6 + -1);
|
||||
}
|
||||
FUN_14006b3e0((longlong)_Str);
|
||||
}
|
||||
if (ppppplVar2 == (longlong *****)0x0) {
|
||||
return param_2;
|
||||
}
|
||||
if (ppppplVar2 == (longlong *****)PTR_DAT_1401ac008) {
|
||||
return param_2;
|
||||
}
|
||||
if (ppppplVar2 + -1 == (longlong *****)0x0) {
|
||||
return param_2;
|
||||
}
|
||||
ppppppppppplVar6 = (longlong ***********)FUN_14006cb70(_Str,_SubStr_00,puVar11,plVar7);
|
||||
local_40 = ppppppppppplVar6;
|
||||
FUN_14006b350((int *)ppppppppppplVar6);
|
||||
local_38 = 1;
|
||||
piVar1 = (int *)((longlong)ppppplVar2 + -4);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14006cc60(ppppplVar2 + -1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar13 = (ulonglong)(uVar9 - uVar8);
|
||||
uVar12 = (ulonglong)uVar8;
|
||||
plVar7 = param_2;
|
||||
FUN_1400ea9f0((longlong *)param_3,param_2,uVar8,uVar9 - uVar8);
|
||||
if (((ppppppppppplVar6 != (longlong ***********)0x0) &&
|
||||
(ppppppppppplVar6 != (longlong ***********)PTR_DAT_1401ac008)) &&
|
||||
(ppppppppppplVar6 + -1 != (longlong ***********)0x0)) {
|
||||
param_3 = (longlong *******)FUN_14006cb70(param_3,plVar7,uVar12,uVar13);
|
||||
local_40 = (longlong ***********)param_3;
|
||||
FUN_14006b350((int *)param_3);
|
||||
local_38 = 1;
|
||||
piVar1 = (int *)((longlong)ppppppppppplVar6 + -4);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14006cc60(ppppppppppplVar6 + -1);
|
||||
}
|
||||
FUN_14006b3e0((longlong)param_3);
|
||||
}
|
||||
if (ppppplVar2 == (longlong *****)0x0) {
|
||||
return param_2;
|
||||
}
|
||||
if (ppppplVar2 == (longlong *****)PTR_DAT_1401ac008) {
|
||||
return param_2;
|
||||
}
|
||||
if (ppppplVar2 + -1 == (longlong *****)0x0) {
|
||||
return param_2;
|
||||
}
|
||||
ppppppppppplVar6 = (longlong ***********)FUN_14006cb70(param_3,plVar7,uVar12,uVar13);
|
||||
local_40 = ppppppppppplVar6;
|
||||
FUN_14006b350((int *)ppppppppppplVar6);
|
||||
local_38 = 1;
|
||||
piVar1 = (int *)((longlong)ppppplVar2 + -4);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14006cc60(ppppplVar2 + -1);
|
||||
}
|
||||
}
|
||||
FUN_14006b3e0((longlong)ppppppppppplVar6);
|
||||
return param_2;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue