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
211
decomp/MessageServer_Release_x64/full/functions/0x14005fb60.c
Normal file
211
decomp/MessageServer_Release_x64/full/functions/0x14005fb60.c
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
||||
* Ghidra 12.1.2 decompiler output for 0x14005fb60 FUN_14005fb60
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
void FUN_14005fb60(longlong param_1,longlong param_2,byte param_3)
|
||||
|
||||
{
|
||||
char cVar1;
|
||||
longlong lVar2;
|
||||
undefined8 *puVar3;
|
||||
ulonglong *puVar4;
|
||||
ulonglong *puVar5;
|
||||
ulonglong *puVar6;
|
||||
void **_Src;
|
||||
longlong lVar7;
|
||||
ulonglong uVar8;
|
||||
char *pcVar9;
|
||||
char *pcVar10;
|
||||
char *pcVar11;
|
||||
bool bVar12;
|
||||
undefined1 auStack_178 [32];
|
||||
ulonglong *local_158;
|
||||
ulonglong *local_150;
|
||||
undefined8 local_148;
|
||||
undefined4 *local_138;
|
||||
undefined4 *local_130;
|
||||
undefined8 local_128;
|
||||
longlong local_120 [3];
|
||||
longlong local_108 [3];
|
||||
ulonglong local_f0;
|
||||
ulonglong *local_e8;
|
||||
ulonglong *local_e0;
|
||||
ulonglong local_d8;
|
||||
undefined8 local_c8;
|
||||
undefined2 local_c0;
|
||||
undefined6 uStack_be;
|
||||
undefined8 local_b0;
|
||||
ulonglong local_a8;
|
||||
void *local_98 [2];
|
||||
void *local_88;
|
||||
void *local_80;
|
||||
undefined8 local_68;
|
||||
ulonglong *local_60;
|
||||
ulonglong *local_58;
|
||||
ulonglong local_50;
|
||||
ulonglong local_40;
|
||||
|
||||
local_128 = 0xfffffffffffffffe;
|
||||
local_40 = DAT_1401ac5a0 ^ (ulonglong)auStack_178;
|
||||
pcVar10 = (char *)0x0;
|
||||
local_c8 = 0;
|
||||
local_a8 = 7;
|
||||
local_b0 = 0;
|
||||
local_c0 = 0;
|
||||
local_80 = (void *)0x7;
|
||||
local_88 = (void *)0x0;
|
||||
local_98[0] = (void *)((ulonglong)local_98[0] & 0xffffffffffff0000);
|
||||
for (lVar2 = *(longlong *)(param_2 + 0xa0); lVar2 != param_2 + 0x58;
|
||||
lVar2 = *(longlong *)(lVar2 + 0x48)) {
|
||||
pcVar9 = (char *)(*(longlong *)(lVar2 + 0x20) + 0x10);
|
||||
bVar12 = pcVar9 == (char *)0x0;
|
||||
lVar7 = 3;
|
||||
pcVar11 = "ip";
|
||||
do {
|
||||
if (lVar7 == 0) break;
|
||||
lVar7 = lVar7 + -1;
|
||||
bVar12 = *pcVar9 == *pcVar11;
|
||||
pcVar9 = pcVar9 + 1;
|
||||
pcVar11 = pcVar11 + 1;
|
||||
} while (bVar12);
|
||||
if (bVar12) {
|
||||
pcVar10 = (char *)(*(longlong *)(lVar2 + 0x30) + 0x10);
|
||||
break;
|
||||
}
|
||||
}
|
||||
local_d8 = 0xf;
|
||||
local_e0 = (ulonglong *)0x0;
|
||||
local_f0._0_1_ = 0;
|
||||
uVar8 = 0xffffffffffffffff;
|
||||
pcVar9 = pcVar10;
|
||||
do {
|
||||
if (uVar8 == 0) break;
|
||||
uVar8 = uVar8 - 1;
|
||||
cVar1 = *pcVar9;
|
||||
pcVar9 = pcVar9 + 1;
|
||||
} while (cVar1 != '\0');
|
||||
FUN_140003e60(&local_f0,pcVar10,~uVar8 - 1);
|
||||
_Src = (void **)FUN_140118b90(&local_68,(LPCSTR)&local_f0);
|
||||
if (local_98 != _Src) {
|
||||
if ((void *)0x7 < local_80) {
|
||||
operator_delete(local_98[0]);
|
||||
}
|
||||
local_80 = (void *)0x7;
|
||||
local_88 = (void *)0x0;
|
||||
local_98[0] = (void *)((ulonglong)local_98[0] & 0xffffffffffff0000);
|
||||
if (_Src[3] < (void *)0x8) {
|
||||
memmove(local_98,_Src,((longlong)_Src[2] + 1U) * 2);
|
||||
}
|
||||
else {
|
||||
local_98[0] = *_Src;
|
||||
*_Src = (void *)0x0;
|
||||
}
|
||||
local_88 = _Src[2];
|
||||
local_80 = _Src[3];
|
||||
_Src[2] = (void *)0x0;
|
||||
_Src[3] = (void *)0x0;
|
||||
}
|
||||
if (7 < local_50) {
|
||||
operator_delete((void *)CONCAT62(local_68._2_6_,CONCAT11(local_68._1_1_,(byte)local_68)));
|
||||
}
|
||||
local_50 = 7;
|
||||
local_58 = (ulonglong *)0x0;
|
||||
local_68._0_1_ = 0;
|
||||
local_68._1_1_ = 0;
|
||||
if (0xf < local_d8) {
|
||||
operator_delete((void *)CONCAT71(local_f0._1_7_,(byte)local_f0));
|
||||
}
|
||||
for (lVar2 = *(longlong *)(param_2 + 0xa0); lVar2 != param_2 + 0x58;
|
||||
lVar2 = *(longlong *)(lVar2 + 0x48)) {
|
||||
pcVar10 = (char *)(*(longlong *)(lVar2 + 0x20) + 0x10);
|
||||
bVar12 = pcVar10 == (char *)0x0;
|
||||
lVar7 = 5;
|
||||
pcVar9 = "port";
|
||||
do {
|
||||
if (lVar7 == 0) break;
|
||||
lVar7 = lVar7 + -1;
|
||||
bVar12 = *pcVar10 == *pcVar9;
|
||||
pcVar10 = pcVar10 + 1;
|
||||
pcVar9 = pcVar9 + 1;
|
||||
} while (bVar12);
|
||||
if (bVar12) {
|
||||
sscanf_s((char *)(*(longlong *)(lVar2 + 0x30) + 0x10),"%d");
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (*(longlong *)(param_1 + 0x1c8) != 0) {
|
||||
for (puVar3 = *(undefined8 **)
|
||||
(*(longlong *)(param_1 + 0x1a8) +
|
||||
((ulonglong)param_3 % *(ulonglong *)(param_1 + 0x1b0)) * 8);
|
||||
puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
|
||||
if (param_3 == *(byte *)(puVar3 + 1)) {
|
||||
if (puVar3 != (undefined8 *)0x0) {
|
||||
FUN_140060ce0(puVar3 + 2,(undefined4 *)&local_c8);
|
||||
goto LAB_14005feb9;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_158 = (ulonglong *)0x0;
|
||||
local_150 = (ulonglong *)0x0;
|
||||
local_148 = 0;
|
||||
FUN_1400611f0((longlong *)&local_158);
|
||||
puVar5 = local_150;
|
||||
local_138 = (undefined4 *)local_150;
|
||||
local_130 = (undefined4 *)local_150;
|
||||
if (local_150 != (ulonglong *)0x0) {
|
||||
*(undefined4 *)local_150 = (undefined4)local_c8;
|
||||
*(undefined4 *)((longlong)local_150 + 4) = local_c8._4_4_;
|
||||
*(undefined8 *)((longlong)local_150 + 0x20) = 7;
|
||||
*(undefined8 *)((longlong)local_150 + 0x18) = 0;
|
||||
*(undefined2 *)((longlong)local_150 + 8) = 0;
|
||||
FUN_140001750((longlong *)((longlong)local_150 + 8),(longlong *)&local_c0,0,0xffffffffffffffff);
|
||||
*(undefined8 *)((longlong)puVar5 + 0x48) = 7;
|
||||
*(undefined8 *)((longlong)puVar5 + 0x40) = 0;
|
||||
*(undefined2 *)((longlong)puVar5 + 0x30) = 0;
|
||||
FUN_140001750((longlong *)((longlong)puVar5 + 0x30),(longlong *)local_98,0,0xffffffffffffffff);
|
||||
}
|
||||
local_150 = (ulonglong *)((longlong)puVar5 + 0x58);
|
||||
local_f0._0_1_ = param_3;
|
||||
FUN_140061c40(&local_e8,(longlong *)&local_158);
|
||||
puVar6 = local_e0;
|
||||
puVar4 = local_e8;
|
||||
local_68._0_1_ = (byte)local_f0;
|
||||
local_60 = local_e8;
|
||||
local_58 = local_e0;
|
||||
local_50 = local_d8;
|
||||
local_e8 = (ulonglong *)0x0;
|
||||
local_e0 = (ulonglong *)0x0;
|
||||
local_d8 = 0;
|
||||
if (*(longlong *)(param_1 + 0x1c8) == 0) {
|
||||
FUN_140061960((longlong *)(param_1 + 0x1a8),local_120,(byte *)&local_68);
|
||||
}
|
||||
else {
|
||||
FUN_140061840((longlong *)(param_1 + 0x1a8),local_108,(byte *)&local_68,(undefined1 *)&local_68)
|
||||
;
|
||||
}
|
||||
if (puVar4 != (ulonglong *)0x0) {
|
||||
FUN_140061ab0(puVar4,puVar6);
|
||||
operator_delete(puVar4);
|
||||
}
|
||||
puVar4 = local_158;
|
||||
if (local_158 != (ulonglong *)0x0) {
|
||||
FUN_140061ab0(local_158,(ulonglong *)((longlong)puVar5 + 0x58));
|
||||
operator_delete(puVar4);
|
||||
}
|
||||
LAB_14005feb9:
|
||||
if ((void *)0x7 < local_80) {
|
||||
operator_delete(local_98[0]);
|
||||
}
|
||||
local_80 = (void *)0x7;
|
||||
local_88 = (void *)0x0;
|
||||
local_98[0] = (void *)((ulonglong)local_98[0] & 0xffffffffffff0000);
|
||||
if (7 < local_a8) {
|
||||
operator_delete((void *)CONCAT62(uStack_be,local_c0));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue