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
216
decomp/MessageServer_Release_x64/full/functions/0x140004960.c
Normal file
216
decomp/MessageServer_Release_x64/full/functions/0x140004960.c
Normal file
|
|
@ -0,0 +1,216 @@
|
|||
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
||||
* Ghidra 12.1.2 decompiler output for 0x140004960 FUN_140004960
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
undefined8 FUN_140004960(longlong param_1)
|
||||
|
||||
{
|
||||
undefined1 uVar1;
|
||||
longlong *plVar2;
|
||||
longlong lVar3;
|
||||
uint uVar4;
|
||||
ushort uVar5;
|
||||
int iVar6;
|
||||
int iVar7;
|
||||
longlong lVar8;
|
||||
longlong lVar9;
|
||||
ulonglong uVar10;
|
||||
ulonglong uVar11;
|
||||
undefined **ppuVar12;
|
||||
longlong lVar13;
|
||||
undefined1 auStack_e8 [32];
|
||||
undefined8 local_c8;
|
||||
undefined8 local_c0;
|
||||
undefined8 local_b8;
|
||||
undefined8 local_b0;
|
||||
undefined8 local_a8;
|
||||
undefined8 local_a0;
|
||||
undefined8 local_98;
|
||||
undefined8 local_90;
|
||||
undefined8 local_88;
|
||||
undefined8 local_80;
|
||||
undefined4 local_78;
|
||||
undefined8 local_68;
|
||||
undefined1 local_60;
|
||||
undefined7 uStack_5f;
|
||||
undefined8 local_50;
|
||||
ulonglong local_48;
|
||||
ulonglong local_38;
|
||||
|
||||
local_68 = 0xfffffffffffffffe;
|
||||
local_38 = DAT_1401ac5a0 ^ (ulonglong)auStack_e8;
|
||||
iVar6 = _kbhit();
|
||||
if (iVar6 != 0) {
|
||||
lVar13 = 0;
|
||||
do {
|
||||
iVar6 = _getch();
|
||||
iVar6 = (int)(char)iVar6;
|
||||
if (*(int *)(param_1 + 0x40) == 0) {
|
||||
iVar7 = toupper(iVar6);
|
||||
switch(iVar7) {
|
||||
case 0x45:
|
||||
DAT_1401bcf14 = 1;
|
||||
printf("%s\n");
|
||||
return 0;
|
||||
case 0x46:
|
||||
DAT_1401bcf10 = 1;
|
||||
printf("%s\n");
|
||||
break;
|
||||
default:
|
||||
printf("........... Message : Unknown Control Command.\n");
|
||||
break;
|
||||
case 0x4c:
|
||||
*(undefined4 *)(param_1 + 0x40) = 1;
|
||||
printf("%s\n");
|
||||
break;
|
||||
case 0x4d:
|
||||
FUN_140062910(DAT_1401bd020);
|
||||
lVar9 = DAT_1401bd020;
|
||||
if (*(longlong *)(param_1 + 0x30) != 0) {
|
||||
*(undefined1 *)(*(longlong *)(param_1 + 0x30) + 0x18) =
|
||||
*(undefined1 *)(DAT_1401bd020 + 0x16);
|
||||
}
|
||||
uVar4 = DAT_1401bcf24;
|
||||
plVar2 = *(longlong **)(param_1 + 0x60);
|
||||
uVar11 = (ulonglong)DAT_1401bcf24;
|
||||
if ((plVar2 != (longlong *)0x0) &&
|
||||
(uVar1 = *(undefined1 *)(lVar9 + 8), lVar8 = lVar13, uVar10 = uVar11,
|
||||
0 < (int)DAT_1401bcf24)) {
|
||||
do {
|
||||
lVar3 = *plVar2;
|
||||
if (*(longlong *)(lVar8 + lVar3) != 0) {
|
||||
*(undefined1 *)(*(longlong *)(lVar8 + lVar3) + 0x18) = uVar1;
|
||||
}
|
||||
uVar10 = uVar10 - 1;
|
||||
lVar8 = lVar8 + 8;
|
||||
} while (uVar10 != 0);
|
||||
}
|
||||
plVar2 = *(longlong **)(param_1 + 0x68);
|
||||
if ((plVar2 != (longlong *)0x0) &&
|
||||
(uVar1 = *(undefined1 *)(lVar9 + 9), lVar8 = lVar13, uVar10 = uVar11, 0 < (int)uVar4))
|
||||
{
|
||||
do {
|
||||
lVar3 = *plVar2;
|
||||
if (*(longlong *)(lVar8 + lVar3) != 0) {
|
||||
*(undefined1 *)(*(longlong *)(lVar8 + lVar3) + 0x18) = uVar1;
|
||||
}
|
||||
uVar10 = uVar10 - 1;
|
||||
lVar8 = lVar8 + 8;
|
||||
} while (uVar10 != 0);
|
||||
}
|
||||
plVar2 = *(longlong **)(param_1 + 0x70);
|
||||
if ((plVar2 != (longlong *)0x0) &&
|
||||
(uVar1 = *(undefined1 *)(lVar9 + 10), lVar8 = lVar13, uVar10 = uVar11, 0 < (int)uVar4))
|
||||
{
|
||||
do {
|
||||
lVar3 = *plVar2;
|
||||
if (*(longlong *)(lVar8 + lVar3) != 0) {
|
||||
*(undefined1 *)(*(longlong *)(lVar8 + lVar3) + 0x18) = uVar1;
|
||||
}
|
||||
uVar10 = uVar10 - 1;
|
||||
lVar8 = lVar8 + 8;
|
||||
} while (uVar10 != 0);
|
||||
}
|
||||
plVar2 = *(longlong **)(param_1 + 0x78);
|
||||
if ((plVar2 != (longlong *)0x0) &&
|
||||
(uVar1 = *(undefined1 *)(lVar9 + 0xb), lVar9 = lVar13, 0 < (int)uVar4)) {
|
||||
do {
|
||||
lVar8 = *plVar2;
|
||||
if (*(longlong *)(lVar8 + lVar9) != 0) {
|
||||
*(undefined1 *)(*(longlong *)(lVar8 + lVar9) + 0x18) = uVar1;
|
||||
}
|
||||
uVar11 = uVar11 - 1;
|
||||
lVar9 = lVar9 + 8;
|
||||
} while (uVar11 != 0);
|
||||
}
|
||||
printf("%s\n");
|
||||
break;
|
||||
case 0x50:
|
||||
lVar9 = *(longlong *)(param_1 + 0x58);
|
||||
if (lVar9 != 0) {
|
||||
local_88 = 0;
|
||||
local_c0 = 0;
|
||||
local_c8 = 0;
|
||||
local_b0 = 0;
|
||||
local_b8 = 0;
|
||||
local_90 = 0;
|
||||
local_98 = 0;
|
||||
local_a0 = 0;
|
||||
local_a8 = 0;
|
||||
local_80 = 0;
|
||||
local_78 = 0;
|
||||
if (*(longlong *)(lVar9 + 0x40) != 0) {
|
||||
(**(code **)(**(longlong **)(lVar9 + 0x40) + 0xb0))
|
||||
(*(longlong **)(lVar9 + 0x40),&local_c8);
|
||||
printf("--------------------------------------------------\n");
|
||||
printf("%I64d totalTcpReceiveCount\n");
|
||||
printf("%I64d totalTcpReceiveBytes\n");
|
||||
printf("%I64d totalTcpSendCount\n");
|
||||
printf("%I64d totalTcpSendBytes\n");
|
||||
printf("%d p2pConnectionPairCount\n");
|
||||
printf("%d p2pDirectConnectionPairCount\n");
|
||||
printf("%d clientCount\n");
|
||||
printf("--------------------------------------------------\n");
|
||||
}
|
||||
}
|
||||
printf("%s\n");
|
||||
break;
|
||||
case 0x52:
|
||||
DAT_1401bcf18 = (uint)(DAT_1401bcf18 == 0);
|
||||
printf("%s %s\n");
|
||||
break;
|
||||
case 0x54:
|
||||
DAT_1401bcf0f = DAT_1401bcf0f == '\0';
|
||||
printf("%s %s\n");
|
||||
break;
|
||||
case 0x56:
|
||||
if ((DAT_1401bd4f4 & 1) == 0) {
|
||||
DAT_1401bd4f4 = DAT_1401bd4f4 | 1;
|
||||
FUN_14011b100();
|
||||
atexit((_func_5014 *)&LAB_14012f3d0);
|
||||
}
|
||||
FUN_140119840();
|
||||
printf("%s\n");
|
||||
}
|
||||
}
|
||||
else {
|
||||
iVar7 = toupper(iVar6);
|
||||
if (iVar7 == 0x55) {
|
||||
*(undefined4 *)(param_1 + 0x40) = 0;
|
||||
printf("%s\n");
|
||||
ppuVar12 = &PTR_s_Server_Shutdown__1401b3458;
|
||||
do {
|
||||
uVar5 = GetAsyncKeyState(0xa0);
|
||||
if (((uVar5 & 0x8001) != 0) || (*(char *)(ppuVar12 + 1) == '\0')) {
|
||||
printf(" \'%c\'\t: %s\n");
|
||||
}
|
||||
ppuVar12 = ppuVar12 + 3;
|
||||
} while ((longlong)ppuVar12 < 0x1401b3548);
|
||||
}
|
||||
}
|
||||
iVar6 = toupper(iVar6);
|
||||
if (iVar6 == 0x49) {
|
||||
printf("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n");
|
||||
GetCurrentProcessId();
|
||||
printf("ProcessID : %d\n");
|
||||
printf("SVN : %d\n");
|
||||
printf("Resource : %d\n");
|
||||
printf("Build Date : %s\n");
|
||||
FUN_140118c70((ulonglong *)&local_60);
|
||||
printf("PROTOCOL : %s\n");
|
||||
if (0xf < local_48) {
|
||||
operator_delete((void *)CONCAT71(uStack_5f,local_60));
|
||||
}
|
||||
local_48 = 0xf;
|
||||
local_50 = 0;
|
||||
local_60 = 0;
|
||||
printf("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n");
|
||||
}
|
||||
iVar6 = _kbhit();
|
||||
} while (iVar6 != 0);
|
||||
}
|
||||
return 2;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue