decomp DBCServer_Release and inspect/document database

This commit is contained in:
Benjamin Palko 2026-10-14 23:22:03 -04:00
parent 4b267cbe05
commit 7834b98bf0
28222 changed files with 843300 additions and 144 deletions

View file

@ -0,0 +1,15 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001020 FUN_140001020
* Pseudocode, not original source. */
exception * FUN_140001020(exception *param_1,uint param_2)
{
*(undefined ***)param_1 = std::bad_alloc::vftable;
std::exception::~exception(param_1);
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,65 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001060 FUN_140001060
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
undefined8 FUN_140001060(longlong param_1)
{
PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo;
DWORD DVar1;
BOOL BVar2;
wchar_t *pwVar3;
wchar_t *pwVar4;
ulonglong uVar5;
HANDLE pvVar6;
undefined1 auStack_268 [32];
undefined8 local_248;
undefined8 local_240;
WCHAR local_228;
undefined1 local_226 [526];
ulonglong local_18;
local_18 = DAT_1401ac5a0 ^ (ulonglong)auStack_268;
DVar1 = GetCurrentProcessId();
*(DWORD *)(param_1 + 0x450) = DVar1;
local_228 = L'\0';
memset(local_226,0,0x206);
DVar1 = GetModuleFileNameW((HMODULE)0x0,&local_228,0x104);
if (0 < (int)DVar1) {
pwVar3 = wcsrchr(&local_228,L'\\');
pwVar4 = wcsrchr(&local_228,L'.');
uVar5 = (longlong)pwVar4 + (-2 - (longlong)pwVar3) >> 1;
if (0x104 < uVar5) {
uVar5 = 0x104;
}
memcpy((void *)(param_1 + 0x3c),pwVar3 + 1,uVar5 * 2);
FUN_140001260(param_1,param_1 + 0x3c);
pvVar6 = GetStdHandle(0xfffffff5);
*(HANDLE *)(param_1 + 8) = pvVar6;
if (pvVar6 != (HANDLE)0xffffffffffffffff) {
FUN_1400011d0(param_1);
pvVar6 = *(HANDLE *)(param_1 + 8);
if (pvVar6 != (HANDLE)0xffffffffffffffff) {
lpConsoleScreenBufferInfo = (PCONSOLE_SCREEN_BUFFER_INFO)(param_1 + 0x10);
local_248 = 0;
local_240 = 0;
(lpConsoleScreenBufferInfo->dwSize).X = 0;
(lpConsoleScreenBufferInfo->dwSize).Y = 0;
(lpConsoleScreenBufferInfo->dwCursorPosition).X = 0;
(lpConsoleScreenBufferInfo->dwCursorPosition).Y = 0;
*(undefined8 *)(param_1 + 0x18) = 0;
*(undefined4 *)(param_1 + 0x20) = 0;
*(undefined2 *)(param_1 + 0x24) = 0;
BVar2 = GetConsoleScreenBufferInfo(pvVar6,lpConsoleScreenBufferInfo);
if (BVar2 != 0) {
*(undefined2 *)(param_1 + 0x454) = *(undefined2 *)(param_1 + 0x18);
}
}
return 1;
}
}
return 0;
}

View file

@ -0,0 +1,26 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400011d0 FUN_1400011d0
* Pseudocode, not original source. */
BOOL FUN_1400011d0(longlong param_1)
{
BOOL BVar1;
DWORD local_res10 [2];
if (*(HANDLE *)(param_1 + 8) == (HANDLE)0xffffffffffffffff) {
return 0;
}
BVar1 = GetConsoleScreenBufferInfo
(*(HANDLE *)(param_1 + 8),(PCONSOLE_SCREEN_BUFFER_INFO)(param_1 + 0x26));
if (BVar1 == 0) {
return 0;
}
FillConsoleOutputAttribute
(*(HANDLE *)(param_1 + 8),*(ushort *)(param_1 + 0x2e) & 0xf | 0x10,
(int)*(short *)(param_1 + 0x28) * (int)*(short *)(param_1 + 0x26),(COORD)0x0,
local_res10);
BVar1 = SetConsoleTextAttribute(*(HANDLE *)(param_1 + 8),0x17);
return BVar1;
}

View file

@ -0,0 +1,30 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001260 FUN_140001260
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_140001260(longlong param_1,longlong param_2)
{
longlong lVar1;
ulonglong uVar2;
undefined1 auStack_248 [32];
wchar_t local_228;
undefined1 local_226 [526];
ulonglong local_18;
local_18 = DAT_1401ac5a0 ^ (ulonglong)auStack_248;
uVar2 = (ulonglong)*(uint *)(param_1 + 0x450);
lVar1 = param_1 + 0x3c;
if (param_2 != 0) {
lVar1 = param_2;
}
FUN_140001bd0((wchar_t *)(param_1 + 0x246),L"%s [%u]",lVar1,uVar2);
local_228 = L'\0';
memset(local_226,0,0x206);
FUN_140001ba0(&local_228,L"%s",(wchar_t *)(param_1 + 0x246),uVar2);
SetConsoleTitleW(&local_228);
return;
}

View file

@ -0,0 +1,13 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001300 FUN_140001300
* Pseudocode, not original source. */
void FUN_140001300(undefined8 param_1,undefined8 param_2,undefined8 param_3)
{
FUN_14011b730(DAT_1401ba9e8,L"Invalid parameter detected in function %s. File: %s Line: %d\n",
param_2,param_3);
FUN_14011b730(DAT_1401ba9e8,L"Expression: %s\n",param_1,param_3);
return;
}

View file

@ -0,0 +1,159 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001350 FUN_140001350
* Pseudocode, not original source. */
/* WARNING: Function: __chkstk replaced with injection: alloca_probe */
undefined8 FUN_140001350(int param_1,longlong param_2,undefined8 param_3,char *param_4)
{
short sVar1;
FILE *_File;
undefined4 uVar2;
DWORD DVar3;
_invalid_parameter_handler _Handler;
ulonglong uVar4;
char *pcVar5;
short *psVar6;
HANDLE *ppvVar7;
undefined8 *puVar8;
undefined4 *HeapInformation;
undefined *puVar9;
LPCWSTR pWVar10;
undefined4 local_res18 [2];
undefined8 local_res20;
undefined **local_2108;
undefined4 local_2100;
void *local_20f8;
undefined8 local_20f0;
undefined8 local_20e8;
undefined8 local_20d8;
undefined8 local_20d0;
undefined4 local_20c8;
undefined8 *local_20c0;
undefined8 local_20b8;
undefined8 local_20b0;
undefined8 local_20a8;
undefined8 local_20a0;
undefined8 local_2098;
undefined8 local_2090;
undefined4 local_2088 [16];
undefined8 local_2048;
HANDLE local_2038;
undefined1 local_2030 [8192];
undefined8 uStack_30;
uStack_30 = 0x14000136b;
local_2048 = 0xfffffffffffffffe;
DAT_1401bcf04 = timeGetTime();
FUN_140009e00(&local_res20);
uVar2 = FUN_140009e40(&local_res20);
if ((char)uVar2 != '\0') {
FUN_140009eb0();
FUN_140001660();
FUN_140001060((longlong)DAT_1401ba9f0);
if (1 < param_1) {
uVar4 = 0xffffffffffffffff;
psVar6 = *(short **)(param_2 + 8);
do {
if (uVar4 == 0) break;
uVar4 = uVar4 - 1;
sVar1 = *psVar6;
psVar6 = psVar6 + 1;
} while (sVar1 != 0);
FUN_140001830((ulonglong *)&DAT_1401b3540,*(short **)(param_2 + 8),~uVar4 - 1);
}
local_2038 = (HANDLE)0x0;
HeapInformation = (undefined4 *)0x2000;
memset(local_2030,0,0x2000);
DVar3 = GetProcessHeaps(0x400,&local_2038);
pcVar5 = (char *)0x4;
if (DVar3 != 0) {
ppvVar7 = &local_2038;
uVar4 = (ulonglong)DVar3;
do {
local_res18[0] = 2;
HeapInformation = local_res18;
param_4 = pcVar5;
HeapSetInformation(*ppvVar7,HeapCompatibilityInformation,HeapInformation,4);
ppvVar7 = ppvVar7 + 1;
uVar4 = uVar4 - 1;
} while (uVar4 != 0);
}
_Handler = _set_invalid_parameter_handler(FUN_140001300);
local_2100 = 0;
local_20f8 = (void *)0x0;
local_20f0 = 0;
local_20e8 = 0;
local_20d8 = 0;
local_20d0 = 0;
local_2108 = MagiMsgServer::vftable;
local_20c8 = 1;
local_20c0 = (undefined8 *)0x0;
local_20b8 = 0;
local_20b0 = 0;
uVar4 = FUN_140079250();
uVar4 = uVar4 & 0xffffffff;
puVar9 = (undefined *)CONCAT71((int7)((ulonglong)HeapInformation >> 8),1);
FUN_14006b270(local_2088,uVar4,puVar9,param_4);
local_20a8 = 0;
local_20a0 = 0;
local_2098 = 0;
local_2090 = 0;
pWVar10 = (LPCWSTR)&DAT_1401b3540;
if (7 < DAT_1401b3558) {
pWVar10 = DAT_1401b3540;
}
FUN_1400047a0(pWVar10,uVar4,puVar9,param_4);
FUN_140004f00((longlong)&local_2108,uVar4,puVar9,param_4);
if (local_20c0 != (undefined8 *)0x0) {
uVar4 = 1;
(**(code **)*local_20c0)();
}
local_20c0 = (undefined8 *)0x0;
if (DAT_1401bd040 != (undefined8 *)0x0) {
uVar4 = 1;
(**(code **)*DAT_1401bd040)();
}
if (DAT_1401bd030 != (undefined8 *)0x0) {
uVar4 = 1;
(**(code **)*DAT_1401bd030)();
}
puVar8 = DAT_1401ba9e8;
EnterCriticalSection(DAT_1401bd028);
_File = (FILE *)puVar8[0x17];
if (_File != (FILE *)0x0) {
fclose(_File);
}
puVar8 = puVar8 + 0x19;
do {
if ((FILE *)*puVar8 != (FILE *)0x0) {
fclose((FILE *)*puVar8);
}
puVar8 = puVar8 + 1;
pcVar5 = pcVar5 + -1;
} while (pcVar5 != (char *)0x0);
LeaveCriticalSection(DAT_1401bd028);
if (DAT_1401ba9e8 != (undefined8 *)0x0) {
uVar4 = 1;
(**(code **)*DAT_1401ba9e8)();
}
if (DAT_1401ba9f0 != (undefined8 *)0x0) {
uVar4 = 1;
(**(code **)*DAT_1401ba9f0)();
}
_set_invalid_parameter_handler(_Handler);
local_2108 = MagiMsgServer::vftable;
FUN_14006b400(local_2088,uVar4,puVar9,param_4);
local_2108 = MagiServerBase::vftable;
if (local_20f8 != (void *)0x0) {
operator_delete(local_20f8);
}
local_20f8 = (void *)0x0;
local_20f0 = 0;
local_20e8 = 0;
}
FUN_140009e10(&local_res20);
return 0;
}

View file

@ -0,0 +1,16 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001630 FUN_140001630
* Pseudocode, not original source. */
void FUN_140001630(undefined8 *param_1)
{
if (7 < (ulonglong)param_1[3]) {
operator_delete((void *)*param_1);
}
param_1[3] = 7;
param_1[2] = 0;
*(undefined2 *)param_1 = 0;
return;
}

View file

@ -0,0 +1,32 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001660 FUN_140001660
* Pseudocode, not original source. */
void FUN_140001660(void)
{
undefined8 *puVar1;
puVar1 = operator_new(0x458);
if (puVar1 != (undefined8 *)0x0) {
puVar1[2] = 0;
*(undefined8 *)((longlong)puVar1 + 0x26) = 0;
puVar1[3] = 0;
*(undefined8 *)((longlong)puVar1 + 0x2e) = 0;
*(undefined4 *)(puVar1 + 4) = 0;
*(undefined4 *)((longlong)puVar1 + 0x36) = 0;
*(undefined2 *)((longlong)puVar1 + 0x24) = 0;
*(undefined2 *)((longlong)puVar1 + 0x3a) = 0;
*puVar1 = CConsoleControl::vftable;
puVar1[1] = 0xffffffffffffffff;
*(undefined4 *)(puVar1 + 0x8a) = 0;
memset((void *)((longlong)puVar1 + 0x3c),0,0x20a);
memset((void *)((longlong)puVar1 + 0x246),0,0x20a);
DAT_1401ba9f0 = puVar1;
*(undefined2 *)((longlong)puVar1 + 0x454) = 0x17;
return;
}
DAT_1401ba9f0 = (undefined8 *)0x0;
return;
}

View file

@ -0,0 +1,15 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001710 FUN_140001710
* Pseudocode, not original source. */
undefined8 * FUN_140001710(undefined8 *param_1,byte param_2)
{
DAT_1401ba9f0 = 0;
*param_1 = MBISingleton<CConsoleControl>::vftable;
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,48 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001750 FUN_140001750
* Pseudocode, not original source. */
longlong * FUN_140001750(longlong *param_1,longlong *param_2,ulonglong param_3,ulonglong param_4)
{
code *pcVar1;
char cVar2;
longlong *plVar3;
ulonglong uVar4;
if (param_3 <= (ulonglong)param_2[2]) {
uVar4 = param_2[2] - param_3;
if (param_4 < uVar4) {
uVar4 = param_4;
}
if (param_1 == param_2) {
FUN_140001920(param_1,uVar4 + param_3,0xffffffffffffffff);
FUN_140001920(param_1,0,param_3);
}
else {
cVar2 = FUN_1400019c0(param_1,uVar4);
if (cVar2 != '\0') {
if (7 < (ulonglong)param_2[3]) {
param_2 = (longlong *)*param_2;
}
plVar3 = param_1;
if (7 < (ulonglong)param_1[3]) {
plVar3 = (longlong *)*param_1;
}
memcpy(plVar3,(void *)((longlong)param_2 + param_3 * 2),uVar4 * 2);
param_1[2] = uVar4;
plVar3 = param_1;
if (7 < (ulonglong)param_1[3]) {
plVar3 = (longlong *)*param_1;
}
*(undefined2 *)((longlong)plVar3 + uVar4 * 2) = 0;
}
}
return param_1;
}
std::_Xout_of_range("invalid string position");
pcVar1 = (code *)swi(3);
plVar3 = (longlong *)(*pcVar1)();
return plVar3;
}

View file

@ -0,0 +1,51 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001830 FUN_140001830
* Pseudocode, not original source. */
ulonglong * FUN_140001830(ulonglong *param_1,void *param_2,ulonglong param_3)
{
ulonglong uVar1;
char cVar2;
ulonglong *puVar3;
if (param_2 != (void *)0x0) {
uVar1 = param_1[3];
puVar3 = param_1;
if (7 < uVar1) {
puVar3 = (ulonglong *)*param_1;
}
if (puVar3 <= param_2) {
puVar3 = param_1;
if (7 < uVar1) {
puVar3 = (ulonglong *)*param_1;
}
if (param_2 < (void *)((longlong)puVar3 + param_1[2] * 2)) {
puVar3 = param_1;
if (7 < uVar1) {
puVar3 = (ulonglong *)*param_1;
}
puVar3 = (ulonglong *)
FUN_140001750((longlong *)param_1,(longlong *)param_1,
(longlong)param_2 - (longlong)puVar3 >> 1,param_3);
return puVar3;
}
}
}
cVar2 = FUN_1400019c0(param_1,param_3);
if (cVar2 != '\0') {
puVar3 = param_1;
if (7 < param_1[3]) {
puVar3 = (ulonglong *)*param_1;
}
memcpy(puVar3,param_2,param_3 * 2);
param_1[2] = param_3;
puVar3 = param_1;
if (7 < param_1[3]) {
puVar3 = (ulonglong *)*param_1;
}
*(undefined2 *)(param_3 * 2 + (longlong)puVar3) = 0;
}
return param_1;
}

View file

@ -0,0 +1,43 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001920 FUN_140001920
* Pseudocode, not original source. */
undefined8 * FUN_140001920(undefined8 *param_1,ulonglong param_2,ulonglong param_3)
{
longlong lVar1;
code *pcVar2;
undefined8 *puVar3;
undefined8 *puVar4;
ulonglong uVar5;
if ((ulonglong)param_1[2] < param_2) {
std::_Xout_of_range("invalid string position");
pcVar2 = (code *)swi(3);
puVar3 = (undefined8 *)(*pcVar2)();
return puVar3;
}
uVar5 = param_1[2] - param_2;
if (uVar5 < param_3) {
param_3 = uVar5;
}
if (param_3 != 0) {
puVar4 = param_1;
puVar3 = param_1;
if (7 < (ulonglong)param_1[3]) {
puVar4 = (undefined8 *)*param_1;
puVar3 = (undefined8 *)*param_1;
}
memmove((void *)((longlong)puVar4 + param_2 * 2),
(void *)((longlong)puVar3 + (param_2 + param_3) * 2),(uVar5 - param_3) * 2);
lVar1 = param_1[2];
param_1[2] = lVar1 - param_3;
puVar3 = param_1;
if (7 < (ulonglong)param_1[3]) {
puVar3 = (undefined8 *)*param_1;
}
*(undefined2 *)((longlong)puVar3 + (lVar1 - param_3) * 2) = 0;
}
return param_1;
}

View file

@ -0,0 +1,30 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400019c0 FUN_1400019c0
* Pseudocode, not original source. */
undefined1 FUN_1400019c0(undefined8 *param_1,ulonglong param_2)
{
code *pcVar1;
undefined1 uVar2;
if (0x7ffffffffffffffe < param_2) {
std::_Xlength_error("string too long");
pcVar1 = (code *)swi(3);
uVar2 = (*pcVar1)();
return uVar2;
}
if ((ulonglong)param_1[3] < param_2) {
FUN_140001a40(param_1,param_2,param_1[2]);
return param_2 != 0;
}
if (param_2 == 0) {
param_1[2] = 0;
if (7 < (ulonglong)param_1[3]) {
param_1 = (undefined8 *)*param_1;
}
*(undefined2 *)param_1 = 0;
}
return param_2 != 0;
}

View file

@ -0,0 +1,43 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001a40 FUN_140001a40
* Pseudocode, not original source. */
void FUN_140001a40(undefined8 *param_1,ulonglong param_2,longlong param_3)
{
ulonglong uVar1;
undefined8 *_Dst;
ulonglong uVar2;
undefined8 *_Src;
ulonglong uVar3;
uVar3 = param_2 | 7;
if (uVar3 < 0x7fffffffffffffff) {
uVar1 = param_1[3];
uVar2 = uVar1 >> 1;
param_2 = uVar3;
if ((uVar3 / 3 < uVar2) && (param_2 = uVar2 + uVar1, 0x7ffffffffffffffe - uVar2 < uVar1)) {
param_2 = 0x7ffffffffffffffe;
}
}
_Dst = FUN_140001b30(param_2 + 1);
if (param_3 != 0) {
_Src = param_1;
if (7 < (ulonglong)param_1[3]) {
_Src = (undefined8 *)*param_1;
}
memcpy(_Dst,_Src,param_3 * 2);
}
if (7 < (ulonglong)param_1[3]) {
operator_delete((void *)*param_1);
}
*param_1 = _Dst;
param_1[3] = param_2;
param_1[2] = param_3;
if (7 < param_2) {
param_1 = _Dst;
}
*(undefined2 *)((longlong)param_1 + param_3 * 2) = 0;
return;
}

View file

@ -0,0 +1,25 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001b30 FUN_140001b30
* Pseudocode, not original source. */
void * FUN_140001b30(ulonglong param_1)
{
void *pvVar1;
char *local_res8 [4];
undefined **local_28 [5];
if (param_1 == 0) {
return (void *)0x0;
}
if ((param_1 < 0x8000000000000000) && (pvVar1 = operator_new(param_1 * 2), pvVar1 != (void *)0x0))
{
return pvVar1;
}
local_res8[0] = (char *)0x0;
std::exception::exception((exception *)local_28,local_res8);
local_28[0] = std::bad_alloc::vftable;
/* WARNING: Subroutine does not return */
_CxxThrowException(local_28,(ThrowInfo *)&DAT_1401a9330);
}

View file

@ -0,0 +1,16 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001ba0 FUN_140001ba0
* Pseudocode, not original source. */
void FUN_140001ba0(wchar_t *param_1,wchar_t *param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 local_res18;
undefined8 local_res20;
local_res18 = param_3;
local_res20 = param_4;
vswprintf_s(param_1,0x104,param_2,(va_list)&local_res18);
return;
}

View file

@ -0,0 +1,16 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001bd0 FUN_140001bd0
* Pseudocode, not original source. */
void FUN_140001bd0(wchar_t *param_1,wchar_t *param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 local_res18;
undefined8 local_res20;
local_res18 = param_3;
local_res20 = param_4;
vswprintf_s(param_1,0x105,param_2,(va_list)&local_res18);
return;
}

View file

@ -0,0 +1,12 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001c00 FUN_140001c00
* Pseudocode, not original source. */
exception * FUN_140001c00(exception *param_1,exception *param_2)
{
std::exception::exception(param_1,param_2);
*(undefined ***)param_1 = std::bad_alloc::vftable;
return param_1;
}

View file

@ -0,0 +1,20 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001c30 FUN_140001c30
* Pseudocode, not original source. */
undefined8 * FUN_140001c30(undefined8 *param_1,uint param_2)
{
*param_1 = MagiServerBase::vftable;
if ((void *)param_1[2] != (void *)0x0) {
operator_delete((void *)param_1[2]);
}
param_1[2] = 0;
param_1[3] = 0;
param_1[4] = 0;
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,17 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001c90 FUN_140001c90
* Pseudocode, not original source. */
void FUN_140001c90(undefined8 *param_1)
{
*param_1 = MagiServerBase::vftable;
if ((void *)param_1[2] != (void *)0x0) {
operator_delete((void *)param_1[2]);
}
param_1[2] = 0;
param_1[3] = 0;
param_1[4] = 0;
return;
}

View file

@ -0,0 +1,38 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001cd0 FUN_140001cd0
* Pseudocode, not original source. */
void FUN_140001cd0(longlong param_1,undefined8 param_2)
{
ulonglong *puVar1;
undefined8 *puVar2;
undefined8 *puVar3;
undefined8 local_res10 [3];
puVar2 = *(undefined8 **)(param_1 + 0x18);
puVar1 = (ulonglong *)(param_1 + 0x10);
local_res10[0] = param_2;
if ((local_res10 < puVar2) && (puVar3 = (undefined8 *)*puVar1, puVar3 <= local_res10)) {
if (puVar2 == *(undefined8 **)(param_1 + 0x20)) {
FUN_14000fff0((longlong *)puVar1);
}
if (*(undefined8 **)(param_1 + 0x18) != (undefined8 *)0x0) {
**(undefined8 **)(param_1 + 0x18) =
*(undefined8 *)(*puVar1 + ((longlong)local_res10 - (longlong)puVar3 >> 3) * 8);
*(longlong *)(param_1 + 0x18) = *(longlong *)(param_1 + 0x18) + 8;
return;
}
}
else {
if (puVar2 == *(undefined8 **)(param_1 + 0x20)) {
FUN_14000fff0((longlong *)puVar1);
}
if (*(undefined8 **)(param_1 + 0x18) != (undefined8 *)0x0) {
**(undefined8 **)(param_1 + 0x18) = param_2;
}
}
*(longlong *)(param_1 + 0x18) = *(longlong *)(param_1 + 0x18) + 8;
return;
}

View file

@ -0,0 +1,29 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001d70 FUN_140001d70
* Pseudocode, not original source. */
void FUN_140001d70(longlong param_1)
{
FUN_140001e60(param_1,0x15);
FUN_140001e60(param_1,0xd);
FUN_140001e60(param_1,0xc);
FUN_140001e60(param_1,0x11);
FUN_140001e60(param_1,0x12);
FUN_140001e60(param_1,0x13);
FUN_140001e60(param_1,10);
FUN_140001e60(param_1,6);
FUN_140001e60(param_1,0xb);
FUN_140001e60(param_1,9);
FUN_140001e60(param_1,7);
FUN_140001e60(param_1,8);
FUN_140001e60(param_1,5);
FUN_140001e60(param_1,1);
FUN_140001e60(param_1,2);
FUN_140001e60(param_1,3);
/* WARNING: Could not recover jumptable at 0x000140001e52. Too many branches */
/* WARNING: Treating indirect jump as call */
wprintf(L"\n------------------------------------------------------------------------------\n");
return;
}

View file

@ -0,0 +1,53 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001e60 FUN_140001e60
* Pseudocode, not original source. */
void FUN_140001e60(longlong param_1,uint param_2)
{
int iVar1;
longlong *plVar2;
ulonglong uVar3;
ulonglong uVar4;
ulonglong uVar5;
longlong lVar6;
ulonglong uVar7;
uVar3 = 0;
iVar1 = (int)(*(longlong *)(param_1 + 0x18) - *(longlong *)(param_1 + 0x10) >> 3);
if (0 < iVar1) {
plVar2 = *(longlong **)(param_1 + 0x10);
uVar4 = uVar3;
uVar5 = uVar3;
lVar6 = (longlong)iVar1;
uVar7 = uVar3;
do {
if ((*plVar2 != 0) && (*(byte *)(*plVar2 + 0x40) == param_2)) {
uVar5 = (ulonglong)((int)uVar5 + 1);
uVar7 = uVar4;
}
uVar4 = (ulonglong)((int)uVar4 + 1);
plVar2 = plVar2 + 1;
lVar6 = lVar6 + -1;
} while (lVar6 != 0);
if ((int)uVar5 != 0) {
uVar4 = uVar3;
if ((int)uVar5 < 2) {
FUN_140002690((*(longlong **)(param_1 + 0x10))[(int)uVar7],-1);
}
else {
do {
if ((*(longlong *)(*(longlong *)(param_1 + 0x10) + uVar3 * 8) != 0) &&
(lVar6 = *(longlong *)(*(longlong *)(param_1 + 0x10) + uVar3 * 8),
*(byte *)(lVar6 + 0x40) == param_2)) {
FUN_140002690(lVar6,(int)uVar4);
uVar4 = (ulonglong)((int)uVar4 + 1);
}
uVar3 = uVar3 + 1;
} while ((longlong)uVar3 < (longlong)iVar1);
}
}
}
return;
}

View file

@ -0,0 +1,30 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140001f40 FUN_140001f40
* Pseudocode, not original source. */
undefined8 *
FUN_140001f40(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
*(undefined2 *)(param_1 + 1) = 0;
*param_1 = MagiCommonSession::vftable;
param_1[2] = 0;
*(undefined4 *)(param_1 + 3) = 0x1000001;
*(undefined1 *)((longlong)param_1 + 0x1c) = 1;
param_1[4] = 0;
param_1[5] = 0x4008000000000000;
FUN_14006cb70(param_1,param_2,param_3,param_4);
param_1[6] = PTR_DAT_1401ac010;
*(undefined8 *)((longlong)param_1 + 0x3c) = 0;
if ((DAT_1401bd4f4 & 1) == 0) {
DAT_1401bd4f4 = DAT_1401bd4f4 | 1;
FUN_14011b100();
atexit((_func_5014 *)&LAB_14012f3d0);
}
if (DAT_1401bd4a0 == 1000) {
*(undefined1 *)((longlong)param_1 + 0x1c) = 0;
param_1[5] = 0x4024000000000000;
}
return param_1;
}

View file

@ -0,0 +1,18 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002000 FUN_140002000
* Pseudocode, not original source. */
undefined8 *
FUN_140002000(undefined8 *param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4)
{
*param_1 = MagiCommonSession::vftable;
FUN_1400031e0(param_1 + 6,param_2,param_3,param_4);
*param_1 = Proud::INetClientEvent::vftable;
FUN_1400780b0(param_1);
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,14 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002060 FUN_140002060
* Pseudocode, not original source. */
void FUN_140002060(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
*param_1 = MagiCommonSession::vftable;
FUN_1400031e0(param_1 + 6,param_2,param_3,param_4);
*param_1 = Proud::INetClientEvent::vftable;
FUN_1400780b0(param_1);
return;
}

View file

@ -0,0 +1,108 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400020b0 FUN_1400020b0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void FUN_1400020b0(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
char cVar1;
undefined *puVar2;
int *piVar3;
int *piVar4;
undefined **ppuVar5;
int *piVar6;
undefined8 *puVar7;
undefined *puVar8;
undefined1 auStack_b8 [32];
int *local_98;
undefined1 local_90;
int *local_88;
undefined1 local_80;
undefined8 local_78;
undefined *local_68;
undefined2 local_60;
undefined4 local_5c;
undefined4 local_58;
undefined4 local_54;
undefined4 local_50;
undefined8 local_48 [6];
ulonglong local_18;
local_78 = 0xfffffffffffffffe;
local_18 = DAT_1401ac5a0 ^ (ulonglong)auStack_b8;
puVar2 = *(undefined **)(param_1 + 0x30);
if ((((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_1401ac010)) &&
(0 < *(int *)(puVar2 + -8))) &&
(((*(char *)(param_1 + 0x18) != '\0' && (*(char *)(param_1 + 0x19) == '\0')) &&
((*(char *)(param_1 + 0x1a) == '\0' && (*(longlong *)(param_1 + 0x10) != 0)))))) {
*(undefined2 *)(param_1 + 0x19) = 1;
ppuVar5 = &local_68;
FUN_1400780f0(ppuVar5,param_2,param_3,param_4);
local_5c = DAT_1401bcff0;
local_58 = _DAT_1401bcff4;
local_54 = _DAT_1401bcff8;
local_50 = _DAT_1401bcffc;
if (local_68 == (undefined *)0x0) {
local_68 = PTR_DAT_1401ac010;
}
if (*(undefined **)(param_1 + 0x30) != local_68) {
piVar3 = (int *)FUN_14006cb70(ppuVar5,param_2,param_3,param_4);
piVar6 = piVar3;
local_88 = piVar3;
FUN_14006b350(piVar3);
puVar2 = local_68;
local_80 = 1;
if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_1401ac010)) &&
(puVar8 = local_68 + -8, puVar8 != (undefined *)0x0)) {
piVar4 = (int *)FUN_14006cb70(piVar6,param_2,param_3,param_4);
local_98 = piVar4;
FUN_14006b350(piVar4);
local_90 = 1;
piVar6 = (int *)(puVar2 + -4);
*piVar6 = *piVar6 + -1;
if (*piVar6 == 0) {
FUN_14006cc60(puVar8);
}
FUN_14006b3e0((longlong)piVar4);
}
local_68 = *(undefined **)(param_1 + 0x30);
if (((local_68 != PTR_DAT_1401ac010) && (local_68 != (undefined *)0x0)) &&
(local_68 != (undefined *)0x8)) {
*(int *)(local_68 + -4) = *(int *)(local_68 + -4) + 1;
}
FUN_14006b3e0((longlong)piVar3);
}
local_60 = *(undefined2 *)(param_1 + 0x38);
(**(code **)(**(longlong **)(param_1 + 0x10) + 0x88))();
ppuVar5 = &local_68;
(**(code **)(**(longlong **)(param_1 + 0x10) + 0x78))();
cVar1 = *(char *)(param_1 + 0x19);
while (cVar1 != '\0') {
Sleep(10);
ppuVar5 = (undefined **)0x0;
(**(code **)(**(longlong **)(param_1 + 0x10) + 0x98))();
cVar1 = *(char *)(param_1 + 0x19);
}
puVar7 = local_48;
FUN_140078360(puVar7);
puVar2 = local_68;
if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_1401ac010)) &&
(puVar8 = local_68 + -8, puVar8 != (undefined *)0x0)) {
piVar3 = (int *)FUN_14006cb70(puVar7,ppuVar5,param_3,param_4);
local_98 = piVar3;
FUN_14006b350(piVar3);
local_90 = 1;
piVar6 = (int *)(puVar2 + -4);
*piVar6 = *piVar6 + -1;
if (*piVar6 == 0) {
FUN_14006cc60(puVar8);
}
FUN_14006b3e0((longlong)piVar3);
}
}
return;
}

View file

@ -0,0 +1,12 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400022e0 FUN_1400022e0
* Pseudocode, not original source. */
void FUN_1400022e0(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
FUN_140078360(param_1 + 4);
FUN_1400031e0(param_1,param_2,param_3,param_4);
return;
}

View file

@ -0,0 +1,53 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002310 FUN_140002310
* Pseudocode, not original source. */
ulonglong FUN_140002310(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
char cVar1;
int iVar2;
undefined8 uVar3;
undefined4 extraout_var_00;
ulonglong uVar4;
double dVar5;
__time64_t local_res8;
__time64_t local_res18 [2];
uint7 extraout_var;
_time64(&local_res8);
do {
(**(code **)(**(longlong **)(param_1 + 0x10) + 0x88))();
*(undefined2 *)(param_1 + 0x1a) = 0x100;
*(undefined1 *)(param_1 + 0x19) = 1;
uVar3 = (**(code **)(**(longlong **)(param_1 + 0x10) + 0x78))
(*(longlong **)(param_1 + 0x10),param_2);
if ((char)uVar3 == '\x01') {
cVar1 = *(char *)(param_1 + 0x19);
while (cVar1 != '\0') {
Sleep(10);
uVar3 = (**(code **)(**(longlong **)(param_1 + 0x10) + 0x98))
(*(longlong **)(param_1 + 0x10),0);
cVar1 = *(char *)(param_1 + 0x19);
}
if (*(char *)(param_1 + 0x1a) == '\x01') {
return CONCAT71((int7)((ulonglong)uVar3 >> 8),1);
}
}
uVar4 = (ulonglong)DAT_1401bd4f4;
if ((DAT_1401bd4f4 & 1) == 0) {
DAT_1401bd4f4 = DAT_1401bd4f4 | 1;
FUN_14011b100();
iVar2 = atexit((_func_5014 *)&LAB_14012f3d0);
uVar4 = CONCAT44(extraout_var_00,iVar2);
}
if (DAT_1401bd4a0 == 1000) goto LAB_140002418;
_time64(local_res18);
dVar5 = _difftime64(local_res18[0],local_res8);
} while (((int)dVar5 < 300) && (Sleep(1), *(char *)(param_1 + 0x1a) == '\0'));
FUN_14000aa90(4,L"ERROR >> MagiCommonSession::ProcConnect | Time over!",param_3,param_4);
uVar4 = (ulonglong)extraout_var << 8;
LAB_140002418:
return uVar4 & 0xffffffffffffff00;
}

View file

@ -0,0 +1,55 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002430 FUN_140002430
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_140002430(longlong param_1)
{
undefined2 *puVar1;
undefined *puVar2;
ulonglong uVar3;
undefined1 auStack_68 [32];
undefined8 local_48;
undefined2 local_40;
undefined6 uStack_3e;
undefined8 local_30;
ulonglong local_28;
ulonglong local_18;
local_48 = 0xfffffffffffffffe;
local_18 = DAT_1401ac5a0 ^ (ulonglong)auStack_68;
puVar2 = *(undefined **)(param_1 + 0x30);
if ((((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_1401ac010)) &&
(0 < *(int *)(puVar2 + -8))) && (*(char *)(param_1 + 0x18) != '\0')) {
if (*(char *)(param_1 + 0x1b) == '\0') {
if ((*(char *)(param_1 + 0x1a) != '\0') && (*(longlong *)(param_1 + 0x10) != 0)) {
(**(code **)(**(longlong **)(param_1 + 0x10) + 0x98))(*(longlong **)(param_1 + 0x10),0);
}
}
else if (*(char *)(param_1 + 0x1c) != '\0') {
Sleep((DWORD)(longlong)*(double *)(param_1 + 0x28));
local_28 = 7;
local_30 = 0;
local_40 = 0;
FUN_140002930(param_1,(ulonglong *)&local_40);
puVar2 = *(undefined **)(param_1 + 0x30);
if (*(undefined **)(param_1 + 0x30) == (undefined *)0x0) {
puVar2 = PTR_DAT_1401ac010;
}
puVar1 = &local_40;
if (7 < local_28) {
puVar1 = (undefined2 *)CONCAT62(uStack_3e,local_40);
}
uVar3 = (ulonglong)*(ushort *)(param_1 + 0x38);
wprintf(L"%s : RETRY CONNECT : IP[ %s ] PORT[ %d ]\n");
FUN_1400020b0(param_1,puVar1,puVar2,uVar3);
if (7 < local_28) {
operator_delete((void *)CONCAT62(uStack_3e,local_40));
}
}
}
return;
}

View file

@ -0,0 +1,70 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002540 FUN_140002540
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_140002540(longlong param_1,double param_2)
{
longlong *plVar1;
undefined2 *puVar2;
undefined *puVar3;
ulonglong uVar4;
double dVar5;
undefined1 auStack_68 [32];
undefined8 local_48;
undefined2 local_40;
undefined6 uStack_3e;
undefined8 local_30;
ulonglong local_28;
ulonglong local_18;
local_48 = 0xfffffffffffffffe;
local_18 = DAT_1401ac5a0 ^ (ulonglong)auStack_68;
puVar3 = *(undefined **)(param_1 + 0x30);
if (((puVar3 != (undefined *)0x0) && (puVar3 != PTR_DAT_1401ac010)) && (0 < *(int *)(puVar3 + -8))
) {
if (*(char *)(param_1 + 0x18) == '\0') {
if (*(char *)(param_1 + 0x1a) != '\0') {
plVar1 = *(longlong **)(param_1 + 0x10);
if (plVar1 != (longlong *)0x0) {
(**(code **)(*plVar1 + 0x98))(plVar1,0);
}
Sleep(100);
}
}
else if (*(char *)(param_1 + 0x1b) == '\0') {
if ((*(char *)(param_1 + 0x1a) != '\0') &&
(plVar1 = *(longlong **)(param_1 + 0x10), plVar1 != (longlong *)0x0)) {
(**(code **)(*plVar1 + 0x98))(plVar1,0);
}
}
else {
dVar5 = param_2 - *(double *)(param_1 + 0x20);
if ((*(double *)(param_1 + 0x28) <= dVar5 && dVar5 != *(double *)(param_1 + 0x28)) &&
(*(double *)(param_1 + 0x20) = param_2, *(char *)(param_1 + 0x1c) != '\0')) {
local_28 = 7;
local_30 = 0;
local_40 = 0;
FUN_140002930(param_1,(ulonglong *)&local_40);
puVar3 = *(undefined **)(param_1 + 0x30);
if (*(undefined **)(param_1 + 0x30) == (undefined *)0x0) {
puVar3 = PTR_DAT_1401ac010;
}
puVar2 = &local_40;
if (7 < local_28) {
puVar2 = (undefined2 *)CONCAT62(uStack_3e,local_40);
}
uVar4 = (ulonglong)*(ushort *)(param_1 + 0x38);
wprintf(L"%s : RETRY CONNECT : ADDRESS[ %s ] PORT[ %d ]\n");
FUN_1400020b0(param_1,puVar2,puVar3,uVar4);
if (7 < local_28) {
operator_delete((void *)CONCAT62(uStack_3e,local_40));
}
}
}
}
return;
}

View file

@ -0,0 +1,131 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002690 FUN_140002690
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Type propagation algorithm not settling */
void FUN_140002690(longlong param_1,int param_2)
{
ulonglong uVar1;
code *pcVar2;
undefined2 *puVar3;
undefined2 *puVar4;
wchar_t *pwVar5;
ulonglong uVar6;
undefined1 auStack_e8 [32];
uint local_c8;
uint local_c0;
undefined8 local_b8;
ulonglong local_b0 [2];
ulonglong local_a0;
ulonglong local_98;
undefined2 local_88;
undefined6 uStack_86;
undefined8 local_78;
ulonglong local_70;
ulonglong local_60 [2];
ulonglong local_50;
ulonglong local_48;
ulonglong local_38;
local_b8 = 0xfffffffffffffffe;
local_38 = DAT_1401ac5a0 ^ (ulonglong)auStack_e8;
local_48 = 7;
local_50 = 0;
local_60[0]._0_2_ = 0;
local_70 = 7;
local_78 = 0;
local_88 = 0;
local_98 = 7;
local_a0 = 0;
local_b0[0]._0_2_ = 0;
FUN_140002930(param_1,local_60);
uVar6 = 0xffffffffffffffff;
if (local_50 != 0xffffffffffffffff) {
uVar6 = local_50;
}
if (-local_a0 - 1 <= uVar6) {
std::_Xlength_error("string too long");
pcVar2 = (code *)swi(3);
(*pcVar2)();
return;
}
if (uVar6 != 0) {
uVar1 = local_a0 + uVar6;
if (0x7ffffffffffffffe < uVar1) {
std::_Xlength_error("string too long");
pcVar2 = (code *)swi(3);
(*pcVar2)();
return;
}
if (local_98 < uVar1) {
FUN_140001a40(local_b0,uVar1,local_a0);
}
else if (uVar1 == 0) {
local_a0 = 0;
puVar4 = (undefined2 *)local_b0;
if (7 < local_98) {
puVar4 = (undefined2 *)CONCAT62(local_b0[0]._2_6_,(undefined2)local_b0[0]);
}
*puVar4 = 0;
}
if (uVar1 != 0) {
puVar4 = (undefined2 *)local_60;
if (7 < local_48) {
puVar4 = (undefined2 *)CONCAT62(local_60[0]._2_6_,(undefined2)local_60[0]);
}
puVar3 = (undefined2 *)local_b0;
if (7 < local_98) {
puVar3 = (undefined2 *)CONCAT62(local_b0[0]._2_6_,(undefined2)local_b0[0]);
}
memcpy(puVar3 + local_a0,puVar4,uVar6 * 2);
puVar4 = (undefined2 *)local_b0;
if (7 < local_98) {
puVar4 = (undefined2 *)CONCAT62(local_b0[0]._2_6_,(undefined2)local_b0[0]);
}
local_a0 = uVar1;
puVar4[uVar1] = 0;
}
}
FUN_140002b60(local_b0,9);
if (*(char *)(param_1 + 0x18) == '\0') {
uVar6 = 10;
pwVar5 = L"[ DisUse ]";
}
else {
uVar6 = 7;
pwVar5 = L"[ Use ]";
}
FUN_140001830((ulonglong *)&local_88,pwVar5,uVar6);
if (param_2 < 1) {
wprintf(L"\n-%s %s---------------------------------------------------------\n");
}
local_c8 = *(uint *)(param_1 + 0x3c);
if (param_2 == -1) {
wprintf(L"Session S[ %d ] : ADDRESS[ %s ] PORT[ %d ] CODE[ %d ]\n");
}
else {
local_c0 = local_c8;
local_c8 = (uint)*(ushort *)(param_1 + 0x38);
wprintf(L"Session [%d] S[ %d ] : ADDRESS[ %s ] PORT[ %d ] CODE[ %d ]\n");
}
if (7 < local_98) {
operator_delete((void *)CONCAT62(local_b0[0]._2_6_,(undefined2)local_b0[0]));
}
local_98 = 7;
local_a0 = 0;
local_b0[0]._0_2_ = 0;
if (7 < local_70) {
operator_delete((void *)CONCAT62(uStack_86,local_88));
}
local_70 = 7;
local_78 = 0;
local_88 = 0;
if (7 < local_48) {
operator_delete((void *)CONCAT62(local_60[0]._2_6_,(undefined2)local_60[0]));
}
return;
}

View file

@ -0,0 +1,71 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002930 FUN_140002930
* Pseudocode, not original source. */
void FUN_140002930(longlong param_1,ulonglong *param_2)
{
wchar_t *pwVar1;
switch(*(undefined1 *)(param_1 + 0x40)) {
case 1:
FUN_140001830(param_2,L"Lobby",5);
return;
case 2:
FUN_140001830(param_2,L"Dungeon",7);
return;
case 3:
FUN_140001830(param_2,&DAT_1401593d0,3);
return;
case 4:
FUN_140001830(param_2,&DAT_1401593d8,3);
return;
case 5:
FUN_140001830(param_2,L"Guild",5);
return;
case 6:
FUN_140001830(param_2,L"Message",7);
return;
case 7:
FUN_140001830(param_2,&DAT_140159400,2);
return;
case 8:
FUN_140001830(param_2,L"Gate",4);
return;
case 9:
FUN_140001830(param_2,L"Manager",7);
return;
case 10:
FUN_140001830(param_2,L"Auction",7);
return;
case 0xb:
FUN_140001830(param_2,L"Match",5);
return;
case 0xc:
pwVar1 = L"DBC_GAME";
break;
case 0xd:
FUN_140001830(param_2,L"Agent",5);
return;
default:
goto switchD_140002959_caseD_d;
case 0x11:
FUN_140001830(param_2,L"DBC_LOG",7);
return;
case 0x12:
pwVar1 = L"DBC_CHAT";
break;
case 0x13:
FUN_140001830(param_2,L"DBC_EMERGENCY",0xd);
return;
case 0x15:
FUN_140001830(param_2,L"Agentmanager",0xc);
return;
case 0x16:
pwVar1 = L"MiniGame";
}
FUN_140001830(param_2,pwVar1,8);
switchD_140002959_caseD_d:
return;
}

View file

@ -0,0 +1,59 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002b60 FUN_140002b60
* Pseudocode, not original source. */
ulonglong * FUN_140002b60(ulonglong *param_1,ulonglong param_2)
{
ulonglong uVar1;
code *pcVar2;
char cVar3;
ulonglong *puVar4;
uVar1 = param_1[3];
puVar4 = param_1;
if (7 < uVar1) {
puVar4 = (ulonglong *)*param_1;
}
if (puVar4 < (ulonglong *)((longlong)L" Sessoion" + 1U)) {
puVar4 = param_1;
if (7 < uVar1) {
puVar4 = (ulonglong *)*param_1;
}
if (L" Sessoion" < (wchar_t *)((longlong)puVar4 + param_1[2] * 2)) {
puVar4 = param_1;
if (7 < uVar1) {
puVar4 = (ulonglong *)*param_1;
}
puVar4 = (ulonglong *)
FUN_140002c70((longlong *)param_1,param_1,
(longlong)L" Sessoion" - (longlong)puVar4 >> 1,param_2);
return puVar4;
}
}
if (param_2 < -param_1[2] - 1) {
if (param_2 != 0) {
uVar1 = param_1[2] + param_2;
cVar3 = FUN_1400019c0(param_1,uVar1);
if (cVar3 != '\0') {
puVar4 = param_1;
if (7 < param_1[3]) {
puVar4 = (ulonglong *)*param_1;
}
memcpy((void *)((longlong)puVar4 + param_1[2] * 2),L" Sessoion",param_2 * 2);
param_1[2] = uVar1;
puVar4 = param_1;
if (7 < param_1[3]) {
puVar4 = (ulonglong *)*param_1;
}
*(undefined2 *)((longlong)puVar4 + uVar1 * 2) = 0;
}
}
return param_1;
}
std::_Xlength_error("string too long");
pcVar2 = (code *)swi(3);
puVar4 = (ulonglong *)(*pcVar2)();
return puVar4;
}

View file

@ -0,0 +1,52 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002c70 FUN_140002c70
* Pseudocode, not original source. */
longlong * FUN_140002c70(longlong *param_1,undefined8 *param_2,ulonglong param_3,ulonglong param_4)
{
code *pcVar1;
char cVar2;
longlong *plVar3;
ulonglong uVar4;
if ((ulonglong)param_2[2] < param_3) {
std::_Xout_of_range("invalid string position");
pcVar1 = (code *)swi(3);
plVar3 = (longlong *)(*pcVar1)();
return plVar3;
}
uVar4 = param_2[2] - param_3;
if (uVar4 < param_4) {
param_4 = uVar4;
}
if (param_4 < -param_1[2] - 1U) {
if (param_4 != 0) {
uVar4 = param_1[2] + param_4;
cVar2 = FUN_1400019c0(param_1,uVar4);
if (cVar2 != '\0') {
if (7 < (ulonglong)param_2[3]) {
param_2 = (undefined8 *)*param_2;
}
plVar3 = param_1;
if (7 < (ulonglong)param_1[3]) {
plVar3 = (longlong *)*param_1;
}
memcpy((void *)((longlong)plVar3 + param_1[2] * 2),(void *)((longlong)param_2 + param_3 * 2)
,param_4 * 2);
param_1[2] = uVar4;
plVar3 = param_1;
if (7 < (ulonglong)param_1[3]) {
plVar3 = (longlong *)*param_1;
}
*(undefined2 *)((longlong)plVar3 + uVar4 * 2) = 0;
}
}
return param_1;
}
std::_Xlength_error("string too long");
pcVar1 = (code *)swi(3);
plVar3 = (longlong *)(*pcVar1)();
return plVar3;
}

View file

@ -0,0 +1,76 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002d60 FUN_140002d60
* Pseudocode, not original source. */
void FUN_140002d60(longlong *param_1,int param_2)
{
undefined *puVar1;
int *piVar2;
int iVar3;
undefined4 in_register_00000014;
undefined *puVar4;
undefined8 in_R8;
ulonglong uVar5;
undefined8 in_R9;
puVar4 = PTR_DAT_1401ac010;
puVar1 = (undefined *)*param_1;
if ((undefined *)*param_1 == (undefined *)0x0) {
puVar1 = PTR_DAT_1401ac010;
}
*param_1 = (longlong)puVar1;
if (param_2 < 0) {
/* WARNING: Subroutine does not return */
FUN_14006be00();
}
if (param_2 == 0) {
FUN_1400031e0(param_1,CONCAT44(in_register_00000014,param_2),in_R8,in_R9);
return;
}
iVar3 = 0;
if (puVar1 != (undefined *)0x0) {
if (puVar1 == puVar4) {
iVar3 = 0;
}
else {
iVar3 = *(int *)(puVar1 + -8);
}
}
if (param_2 != iVar3) {
piVar2 = (int *)FUN_14006cbf0((longlong)param_2 * 2 + 10);
if (piVar2 != (int *)0x0) {
*piVar2 = 0;
piVar2[1] = 1;
}
puVar1 = PTR_DAT_1401ac010;
*piVar2 = param_2;
puVar4 = (undefined *)*param_1;
if (puVar4 == (undefined *)0x0) {
iVar3 = 0;
}
else if (puVar4 == puVar1) {
iVar3 = 0;
}
else {
iVar3 = *(int *)(puVar4 + -8);
}
if (iVar3 <= param_2) {
if ((puVar4 == (undefined *)0x0) || (puVar4 == puVar1)) {
param_2 = 0;
}
else {
param_2 = *(int *)(puVar4 + -8);
}
}
if (puVar4 == (undefined *)0x0) {
puVar4 = puVar1;
}
uVar5 = (ulonglong)(uint)param_2;
FUN_14006ca20(piVar2 + 2,puVar4,param_2);
FUN_1400031e0(param_1,puVar4,uVar5,in_R9);
*param_1 = (longlong)(piVar2 + 2);
}
return;
}

View file

@ -0,0 +1,73 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002e40 FUN_140002e40
* Pseudocode, not original source. */
void FUN_140002e40(longlong *param_1)
{
int iVar1;
undefined *puVar2;
undefined8 *puVar3;
uint *puVar4;
uint uVar5;
uint uVar6;
undefined *puVar7;
ulonglong uVar8;
undefined8 in_R9;
puVar7 = (undefined *)*param_1;
if (puVar7 == (undefined *)0x0) {
*param_1 = (longlong)PTR_DAT_1401ac010;
}
else if ((puVar7 != PTR_DAT_1401ac010) && ((int *)(puVar7 + -8) != (int *)0x0)) {
if (*(int *)(puVar7 + -4) < 2) {
return;
}
iVar1 = *(int *)(puVar7 + -8);
if (iVar1 < 0) {
/* WARNING: Subroutine does not return */
FUN_14006be00();
}
puVar4 = (uint *)FUN_14006cbf0((longlong)iVar1 * 2 + 10);
uVar5 = 0;
if (puVar4 != (uint *)0x0) {
*puVar4 = 0;
puVar4[1] = 1;
}
puVar2 = PTR_DAT_1401ac010;
puVar7 = (undefined *)*param_1;
if (puVar7 == (undefined *)0x0) {
uVar6 = 0;
}
else {
uVar6 = uVar5;
if (puVar7 != PTR_DAT_1401ac010) {
uVar6 = *(uint *)(puVar7 + -8);
}
}
*puVar4 = uVar6;
puVar7 = (undefined *)*param_1;
if ((puVar7 != (undefined *)0x0) && (puVar7 != puVar2)) {
uVar5 = *(uint *)(puVar7 + -8);
}
if (puVar7 == (undefined *)0x0) {
puVar7 = puVar2;
}
uVar8 = (ulonglong)uVar5;
FUN_14006ca20(puVar4 + 2,puVar7,uVar5);
FUN_1400031e0(param_1,puVar7,uVar8,in_R9);
*param_1 = (longlong)(puVar4 + 2);
return;
}
puVar3 = (undefined8 *)FUN_14006cbf0(10);
*puVar3 = 0;
*(undefined2 *)(puVar3 + 1) = 0;
if (puVar3 != (undefined8 *)0x0) {
*(undefined4 *)puVar3 = 0;
*(undefined4 *)((longlong)puVar3 + 4) = 1;
}
*(undefined2 *)(puVar3 + 1) = 0;
*param_1 = (longlong)(puVar3 + 1);
return;
}

View file

@ -0,0 +1,39 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002f30 FUN_140002f30
* Pseudocode, not original source. */
undefined * FUN_140002f30(longlong *param_1,int param_2)
{
int iVar1;
undefined *puVar2;
int iVar3;
puVar2 = (undefined *)*param_1;
iVar3 = 0;
if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_1401ac010)) {
iVar3 = *(int *)(puVar2 + -8);
}
if (((param_2 <= iVar3) && (param_2 = 0, puVar2 != (undefined *)0x0)) &&
(puVar2 != PTR_DAT_1401ac010)) {
param_2 = *(int *)(puVar2 + -8);
}
iVar3 = 1;
if (1 < param_2) {
iVar3 = param_2;
}
iVar1 = 0;
if ((puVar2 != (undefined *)0x0) && (iVar1 = 0, puVar2 != PTR_DAT_1401ac010)) {
iVar1 = *(int *)(puVar2 + -8);
}
if (iVar1 < iVar3) {
FUN_140002d60(param_1,iVar3);
}
FUN_140002e40(param_1);
puVar2 = (undefined *)*param_1;
if ((undefined *)*param_1 == (undefined *)0x0) {
puVar2 = PTR_DAT_1401ac010;
}
return puVar2;
}

View file

@ -0,0 +1,34 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140002fb0 FUN_140002fb0
* Pseudocode, not original source. */
void FUN_140002fb0(longlong *param_1,int param_2)
{
undefined *puVar1;
int iVar2;
int iVar3;
puVar1 = (undefined *)*param_1;
iVar3 = 0;
if (0 < param_2) {
iVar3 = param_2;
}
iVar2 = 0;
if ((puVar1 != (undefined *)0x0) && (iVar2 = 0, puVar1 != PTR_DAT_1401ac010)) {
iVar2 = *(int *)(puVar1 + -8);
}
if ((iVar2 <= iVar3) && (iVar3 = 0, puVar1 != (undefined *)0x0)) {
if (puVar1 == PTR_DAT_1401ac010) {
return;
}
iVar3 = *(int *)(puVar1 + -8);
}
if (((puVar1 != PTR_DAT_1401ac010) && (puVar1 != (undefined *)0x0)) &&
((int *)(puVar1 + -8) != (int *)0x0)) {
*(int *)(puVar1 + -8) = iVar3;
*(undefined2 *)(puVar1 + (longlong)iVar3 * 2) = 0;
}
return;
}

View file

@ -0,0 +1,40 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003010 FUN_140003010
* Pseudocode, not original source. */
void FUN_140003010(longlong *param_1)
{
undefined *puVar1;
int iVar2;
int iVar3;
short *psVar4;
psVar4 = (short *)*param_1;
if ((short *)*param_1 == (short *)0x0) {
psVar4 = (short *)PTR_DAT_1401ac010;
}
iVar2 = FUN_14006c9f0(psVar4);
iVar3 = 0;
if (0 < iVar2) {
iVar3 = iVar2;
}
puVar1 = (undefined *)*param_1;
iVar2 = 0;
if ((puVar1 != (undefined *)0x0) && (iVar2 = 0, puVar1 != PTR_DAT_1401ac010)) {
iVar2 = *(int *)(puVar1 + -8);
}
if ((iVar2 <= iVar3) && (iVar3 = 0, puVar1 != (undefined *)0x0)) {
if (puVar1 == PTR_DAT_1401ac010) {
return;
}
iVar3 = *(int *)(puVar1 + -8);
}
if (((puVar1 != PTR_DAT_1401ac010) && (puVar1 != (undefined *)0x0)) &&
((int *)(puVar1 + -8) != (int *)0x0)) {
*(int *)(puVar1 + -8) = iVar3;
*(undefined2 *)(puVar1 + (longlong)iVar3 * 2) = 0;
}
return;
}

View file

@ -0,0 +1,26 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003090 FUN_140003090
* Pseudocode, not original source. */
longlong * FUN_140003090(longlong *param_1,short *param_2,undefined8 param_3,undefined8 param_4)
{
int iVar1;
undefined *puVar2;
int iVar3;
int iVar4;
FUN_14006cb70(param_1,param_2,param_3,param_4);
*param_1 = (longlong)PTR_DAT_1401ac010;
iVar1 = FUN_14006c9f0(param_2);
iVar3 = (int)param_3;
iVar4 = iVar1;
if ((0 < iVar3) && (iVar4 = iVar3, iVar1 < iVar3)) {
iVar4 = iVar1;
}
puVar2 = FUN_140002f30(param_1,iVar4);
FUN_14006ca20(puVar2,param_2,iVar4);
FUN_140003010(param_1);
return param_1;
}

View file

@ -0,0 +1,32 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003110 FUN_140003110
* Pseudocode, not original source. */
void FUN_140003110(longlong *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)
{
undefined *puVar1;
int *piVar2;
longlong *plVar3;
puVar1 = (undefined *)*param_1;
if ((undefined *)*param_1 == (undefined *)0x0) {
puVar1 = PTR_DAT_1401ac010;
}
*param_1 = (longlong)puVar1;
if ((undefined *)*param_2 != puVar1) {
plVar3 = param_2;
piVar2 = (int *)FUN_14006cb70(param_1,param_2,param_3,param_4);
FUN_14006b350(piVar2);
FUN_1400031e0(param_1,plVar3,param_3,param_4);
puVar1 = (undefined *)*param_2;
*param_1 = (longlong)puVar1;
if (((puVar1 != PTR_DAT_1401ac010) && (puVar1 != (undefined *)0x0)) &&
(puVar1 != (undefined *)0x8)) {
*(int *)(puVar1 + -4) = *(int *)(puVar1 + -4) + 1;
}
FUN_14006b3e0((longlong)piVar2);
}
return;
}

View file

@ -0,0 +1,14 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400031b0 FUN_1400031b0
* Pseudocode, not original source. */
void FUN_1400031b0(longlong *param_1)
{
if ((char)param_1[1] != '\0') {
FUN_14006b3e0(*param_1);
*(undefined1 *)(param_1 + 1) = 0;
}
return;
}

View file

@ -0,0 +1,30 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400031e0 FUN_1400031e0
* Pseudocode, not original source. */
void FUN_1400031e0(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
int *piVar1;
undefined *puVar2;
int *piVar3;
puVar2 = (undefined *)*param_1;
if (((puVar2 == (undefined *)0x0) || (puVar2 == PTR_DAT_1401ac010)) ||
(puVar2 + -8 == (undefined *)0x0)) {
*param_1 = (longlong)PTR_DAT_1401ac010;
}
else {
piVar3 = (int *)FUN_14006cb70(puVar2,param_2,param_3,param_4);
FUN_14006b350(piVar3);
piVar1 = (int *)(puVar2 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14006cc60(puVar2 + -8);
}
FUN_14006b3e0((longlong)piVar3);
*param_1 = (longlong)PTR_DAT_1401ac010;
}
return;
}

View file

@ -0,0 +1,12 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003280 FUN_140003280
* Pseudocode, not original source. */
void FUN_140003280(undefined8 *param_1)
{
*param_1 = Proud::INetClientEvent::vftable;
FUN_1400780b0(param_1);
return;
}

View file

@ -0,0 +1,14 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003290 FUN_140003290
* Pseudocode, not original source. */
undefined8 * FUN_140003290(undefined8 *param_1,uint param_2)
{
FUN_1400780b0(param_1);
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,21 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400032c0 std::bad_alloc::`scalar_deleting_destructor'
* Pseudocode, not original source. */
/* Library Function - Single Match
public: virtual void * __ptr64 __cdecl std::bad_alloc::`scalar deleting destructor'(unsigned
int) __ptr64
Libraries: Visual Studio 2012 Release, Visual Studio 2015 Release */
void * __thiscall std::bad_alloc::_scalar_deleting_destructor_(bad_alloc *this,uint param_1)
{
*(undefined ***)this = Proud::INetClientEvent::vftable;
FUN_1400780b0((undefined8 *)this);
if ((param_1 & 1) != 0) {
operator_delete(this);
}
return this;
}

View file

@ -0,0 +1,14 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003300 FUN_140003300
* Pseudocode, not original source. */
undefined8 * FUN_140003300(undefined8 *param_1,uint param_2)
{
FUN_14011b4b0(param_1);
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,12 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003330 FUN_140003330
* Pseudocode, not original source. */
void FUN_140003330(undefined8 *param_1)
{
DAT_1401ba9e8 = 0;
*param_1 = MBISingleton<MBCLog>::vftable;
return;
}

View file

@ -0,0 +1,13 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003350 FUN_140003350
* Pseudocode, not original source. */
void FUN_140003350(void)
{
/* WARNING: Could not recover jumptable at 0x000140003357. Too many branches */
/* WARNING: Treating indirect jump as call */
LeaveCriticalSection(DAT_1401bd028);
return;
}

View file

@ -0,0 +1,15 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003360 FUN_140003360
* Pseudocode, not original source. */
undefined8 * FUN_140003360(undefined8 *param_1,byte param_2)
{
DAT_1401ba9e8 = 0;
*param_1 = MBISingleton<MBCLog>::vftable;
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,22 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400033a0 FUN_1400033a0
* Pseudocode, not original source. */
undefined8 * FUN_1400033a0(undefined8 *param_1,uint param_2)
{
LPCRITICAL_SECTION lpCriticalSection;
lpCriticalSection = DAT_1401bd028;
*param_1 = MBMultiThreadSync<MBCLog>::vftable;
if (lpCriticalSection != (LPCRITICAL_SECTION)0x0) {
DeleteCriticalSection(lpCriticalSection);
operator_delete(lpCriticalSection);
}
DAT_1401bd028 = (LPCRITICAL_SECTION)0x0;
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,14 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003410 FUN_140003410
* Pseudocode, not original source. */
void FUN_140003410(wchar_t *param_1,size_t param_2,wchar_t *param_3,undefined8 param_4)
{
undefined8 local_res20;
local_res20 = param_4;
_vsnwprintf_s(param_1,0x20,param_2,param_3,(va_list)&local_res20);
return;
}

View file

@ -0,0 +1,14 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003440 FUN_140003440
* Pseudocode, not original source. */
void FUN_140003440(wchar_t *param_1,size_t param_2,wchar_t *param_3,undefined8 param_4)
{
undefined8 local_res20;
local_res20 = param_4;
_vsnwprintf_s(param_1,0x104,param_2,param_3,(va_list)&local_res20);
return;
}

View file

@ -0,0 +1,14 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003470 FUN_140003470
* Pseudocode, not original source. */
void FUN_140003470(char *param_1,size_t param_2,char *param_3,undefined8 param_4)
{
undefined8 local_res20;
local_res20 = param_4;
_vsnprintf_s(param_1,0x104,param_2,param_3,(va_list)&local_res20);
return;
}

View file

@ -0,0 +1,11 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400034a0 FUN_1400034a0
* Pseudocode, not original source. */
void FUN_1400034a0(longlong param_1,uint param_2)
{
FUN_140003300((undefined8 *)(param_1 + -8),param_2);
return;
}

View file

@ -0,0 +1,13 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400034b0 FUN_1400034b0
* Pseudocode, not original source. */
void FUN_1400034b0(undefined8 *param_1)
{
if ((undefined8 *)*param_1 != &DAT_1401bcf30) {
operator_delete__((void *)param_1[1]);
}
return;
}

View file

@ -0,0 +1,10 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400034d0 FUN_1400034d0
* Pseudocode, not original source. */
undefined8 FUN_1400034d0(void)
{
return 0;
}

View file

@ -0,0 +1,15 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400034e0 FUN_1400034e0
* Pseudocode, not original source. */
void FUN_1400034e0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
*param_1 = TiXmlDocument::vftable;
if ((undefined8 *)param_1[0xc] != &DAT_1401bcf30) {
operator_delete__((void *)param_1[0xd]);
}
FUN_14000b7d0(param_1,param_2,param_3,param_4);
return;
}

View file

@ -0,0 +1,22 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003520 FUN_140003520
* Pseudocode, not original source. */
undefined8 *
FUN_140003520(undefined8 *param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4)
{
ulonglong uVar1;
*param_1 = TiXmlDocument::vftable;
uVar1 = param_2;
if ((undefined8 *)param_1[0xc] != &DAT_1401bcf30) {
operator_delete__((void *)param_1[0xd]);
}
FUN_14000b7d0(param_1,uVar1,param_3,param_4);
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,55 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003580 FUN_140003580
* Pseudocode, not original source. */
undefined1 * FUN_140003580(undefined1 *param_1)
{
*(undefined8 *)(param_1 + 0x18) = 0xf;
*(undefined8 *)(param_1 + 0x10) = 0;
*param_1 = 0;
*(undefined8 *)(param_1 + 0x40) = 0xf;
*(undefined8 *)(param_1 + 0x38) = 0;
param_1[0x28] = 0;
*(undefined8 *)(param_1 + 0x68) = 0xf;
*(undefined8 *)(param_1 + 0x60) = 0;
param_1[0x50] = 0;
*(undefined8 *)(param_1 + 0x90) = 0xf;
*(undefined8 *)(param_1 + 0x88) = 0;
param_1[0x78] = 0;
*(undefined8 *)(param_1 + 0xb8) = 0xf;
*(undefined8 *)(param_1 + 0xb0) = 0;
param_1[0xa0] = 0;
*(undefined8 *)(param_1 + 0xe0) = 0xf;
*(undefined8 *)(param_1 + 0xd8) = 0;
param_1[200] = 0;
*(undefined8 *)(param_1 + 0x108) = 0xf;
*(undefined8 *)(param_1 + 0x100) = 0;
param_1[0xf0] = 0;
*(undefined8 *)(param_1 + 0x130) = 0xf;
*(undefined8 *)(param_1 + 0x128) = 0;
param_1[0x118] = 0;
*(undefined8 *)(param_1 + 0x158) = 0xf;
*(undefined8 *)(param_1 + 0x150) = 0;
param_1[0x140] = 0;
*(undefined4 *)(param_1 + 0x168) = 0;
*(undefined8 *)(param_1 + 0x188) = 0xf;
*(undefined8 *)(param_1 + 0x180) = 0;
param_1[0x170] = 0;
*(undefined8 *)(param_1 + 0x1b0) = 0xf;
*(undefined8 *)(param_1 + 0x1a8) = 0;
param_1[0x198] = 0;
*(undefined8 *)(param_1 + 0x1d8) = 0xf;
*(undefined8 *)(param_1 + 0x1d0) = 0;
param_1[0x1c0] = 0;
*(undefined8 *)(param_1 + 0x1e8) = 0;
*(undefined4 *)(param_1 + 0x1f0) = 0;
*(undefined8 *)(param_1 + 500) = 100;
*(undefined8 *)(param_1 + 0x218) = 0xf;
*(undefined8 *)(param_1 + 0x210) = 0;
param_1[0x200] = 0;
FUN_140003e60((ulonglong *)(param_1 + 0x200),&DAT_140159678,3);
*(undefined4 *)(param_1 + 0x228) = 1000;
return param_1;
}

View file

@ -0,0 +1,88 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400036f0 FUN_1400036f0
* Pseudocode, not original source. */
void FUN_1400036f0(undefined8 *param_1)
{
if (0xf < (ulonglong)param_1[0x43]) {
operator_delete((void *)param_1[0x40]);
}
param_1[0x43] = 0xf;
param_1[0x42] = 0;
*(undefined1 *)(param_1 + 0x40) = 0;
if (0xf < (ulonglong)param_1[0x3b]) {
operator_delete((void *)param_1[0x38]);
}
param_1[0x3b] = 0xf;
param_1[0x3a] = 0;
*(undefined1 *)(param_1 + 0x38) = 0;
if (0xf < (ulonglong)param_1[0x36]) {
operator_delete((void *)param_1[0x33]);
}
param_1[0x36] = 0xf;
param_1[0x35] = 0;
*(undefined1 *)(param_1 + 0x33) = 0;
if (0xf < (ulonglong)param_1[0x31]) {
operator_delete((void *)param_1[0x2e]);
}
param_1[0x31] = 0xf;
param_1[0x30] = 0;
*(undefined1 *)(param_1 + 0x2e) = 0;
if (0xf < (ulonglong)param_1[0x2b]) {
operator_delete((void *)param_1[0x28]);
}
param_1[0x2b] = 0xf;
param_1[0x2a] = 0;
*(undefined1 *)(param_1 + 0x28) = 0;
if (0xf < (ulonglong)param_1[0x26]) {
operator_delete((void *)param_1[0x23]);
}
param_1[0x26] = 0xf;
param_1[0x25] = 0;
*(undefined1 *)(param_1 + 0x23) = 0;
if (0xf < (ulonglong)param_1[0x21]) {
operator_delete((void *)param_1[0x1e]);
}
param_1[0x21] = 0xf;
param_1[0x20] = 0;
*(undefined1 *)(param_1 + 0x1e) = 0;
if (0xf < (ulonglong)param_1[0x1c]) {
operator_delete((void *)param_1[0x19]);
}
param_1[0x1c] = 0xf;
param_1[0x1b] = 0;
*(undefined1 *)(param_1 + 0x19) = 0;
if (0xf < (ulonglong)param_1[0x17]) {
operator_delete((void *)param_1[0x14]);
}
param_1[0x17] = 0xf;
param_1[0x16] = 0;
*(undefined1 *)(param_1 + 0x14) = 0;
if (0xf < (ulonglong)param_1[0x12]) {
operator_delete((void *)param_1[0xf]);
}
param_1[0x12] = 0xf;
param_1[0x11] = 0;
*(undefined1 *)(param_1 + 0xf) = 0;
if (0xf < (ulonglong)param_1[0xd]) {
operator_delete((void *)param_1[10]);
}
param_1[0xd] = 0xf;
param_1[0xc] = 0;
*(undefined1 *)(param_1 + 10) = 0;
if (0xf < (ulonglong)param_1[8]) {
operator_delete((void *)param_1[5]);
}
param_1[8] = 0xf;
param_1[7] = 0;
*(undefined1 *)(param_1 + 5) = 0;
if (0xf < (ulonglong)param_1[3]) {
operator_delete((void *)*param_1);
}
param_1[3] = 0xf;
param_1[2] = 0;
*(undefined1 *)param_1 = 0;
return;
}

View file

@ -0,0 +1,39 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003950 FUN_140003950
* Pseudocode, not original source. */
longlong * FUN_140003950(longlong *param_1,longlong *param_2)
{
FUN_140003da0(param_1,param_2,0,0xffffffffffffffff);
FUN_140003da0(param_1 + 5,param_2 + 5,0,0xffffffffffffffff);
FUN_140003da0(param_1 + 10,param_2 + 10,0,0xffffffffffffffff);
FUN_140003da0(param_1 + 0xf,param_2 + 0xf,0,0xffffffffffffffff);
FUN_140003da0(param_1 + 0x14,param_2 + 0x14,0,0xffffffffffffffff);
FUN_140003da0(param_1 + 0x19,param_2 + 0x19,0,0xffffffffffffffff);
FUN_140003da0(param_1 + 0x1e,param_2 + 0x1e,0,0xffffffffffffffff);
FUN_140003da0(param_1 + 0x23,param_2 + 0x23,0,0xffffffffffffffff);
FUN_140003da0(param_1 + 0x28,param_2 + 0x28,0,0xffffffffffffffff);
*(int *)(param_1 + 0x2d) = (int)param_2[0x2d];
FUN_140003da0(param_1 + 0x2e,param_2 + 0x2e,0,0xffffffffffffffff);
FUN_140003da0(param_1 + 0x33,param_2 + 0x33,0,0xffffffffffffffff);
FUN_140003da0(param_1 + 0x38,param_2 + 0x38,0,0xffffffffffffffff);
*(char *)(param_1 + 0x3d) = (char)param_2[0x3d];
*(undefined1 *)((longlong)param_1 + 0x1e9) = *(undefined1 *)((longlong)param_2 + 0x1e9);
*(undefined1 *)((longlong)param_1 + 0x1ea) = *(undefined1 *)((longlong)param_2 + 0x1ea);
*(undefined1 *)((longlong)param_1 + 0x1eb) = *(undefined1 *)((longlong)param_2 + 0x1eb);
*(undefined1 *)((longlong)param_1 + 0x1ec) = *(undefined1 *)((longlong)param_2 + 0x1ec);
*(undefined1 *)((longlong)param_1 + 0x1ed) = *(undefined1 *)((longlong)param_2 + 0x1ed);
*(undefined1 *)((longlong)param_1 + 0x1ee) = *(undefined1 *)((longlong)param_2 + 0x1ee);
*(undefined1 *)((longlong)param_1 + 0x1ef) = *(undefined1 *)((longlong)param_2 + 0x1ef);
*(char *)(param_1 + 0x3e) = (char)param_2[0x3e];
*(undefined1 *)((longlong)param_1 + 0x1f1) = *(undefined1 *)((longlong)param_2 + 0x1f1);
*(undefined1 *)((longlong)param_1 + 0x1f2) = *(undefined1 *)((longlong)param_2 + 0x1f2);
*(undefined1 *)((longlong)param_1 + 499) = *(undefined1 *)((longlong)param_2 + 499);
*(undefined4 *)((longlong)param_1 + 500) = *(undefined4 *)((longlong)param_2 + 500);
*(int *)(param_1 + 0x3f) = (int)param_2[0x3f];
FUN_140003da0(param_1 + 0x40,param_2 + 0x40,0,0xffffffffffffffff);
*(int *)(param_1 + 0x45) = (int)param_2[0x45];
return param_1;
}

View file

@ -0,0 +1,16 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003b80 FUN_140003b80
* Pseudocode, not original source. */
void FUN_140003b80(undefined8 *param_1)
{
if (0xf < (ulonglong)param_1[3]) {
operator_delete((void *)*param_1);
}
param_1[3] = 0xf;
param_1[2] = 0;
*(undefined1 *)param_1 = 0;
return;
}

View file

@ -0,0 +1,24 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003bc0 FUN_140003bc0
* Pseudocode, not original source. */
void FUN_140003bc0(longlong *param_1)
{
undefined8 *puVar1;
undefined8 *puVar2;
puVar2 = (undefined8 *)*param_1;
if (puVar2 != (undefined8 *)0x0) {
puVar1 = (undefined8 *)param_1[1];
for (; puVar2 != puVar1; puVar2 = puVar2 + 0x46) {
FUN_1400036f0(puVar2);
}
operator_delete((void *)*param_1);
}
*param_1 = 0;
param_1[1] = 0;
param_1[2] = 0;
return;
}

View file

@ -0,0 +1,33 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003c20 FUN_140003c20
* Pseudocode, not original source. */
void FUN_140003c20(ulonglong *param_1,longlong *param_2)
{
longlong *plVar1;
longlong *plVar2;
plVar1 = (longlong *)param_1[1];
if ((param_2 < plVar1) && (plVar2 = (longlong *)*param_1, plVar2 <= param_2)) {
if (plVar1 == (longlong *)param_1[2]) {
FUN_140003ce0((longlong *)param_1);
}
if ((longlong *)param_1[1] != (longlong *)0x0) {
FUN_140004350((longlong *)param_1[1],
(longlong *)
((((longlong)param_2 - (longlong)plVar2) / 0x230) * 0x230 + *param_1));
}
}
else {
if (plVar1 == (longlong *)param_1[2]) {
FUN_140003ce0((longlong *)param_1);
}
if ((longlong *)param_1[1] != (longlong *)0x0) {
FUN_140004350((longlong *)param_1[1],param_2);
}
}
param_1[1] = param_1[1] + 0x230;
return;
}

View file

@ -0,0 +1,38 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003ce0 FUN_140003ce0
* Pseudocode, not original source. */
void FUN_140003ce0(longlong *param_1)
{
code *pcVar1;
ulonglong uVar2;
ulonglong uVar3;
uVar3 = (param_1[1] - *param_1) / 0x230;
if (0x75075075075074 < uVar3) {
std::_Xlength_error("vector<T> too long");
pcVar1 = (code *)swi(3);
(*pcVar1)();
return;
}
uVar3 = uVar3 + 1;
uVar2 = (param_1[2] - *param_1) / 0x230;
if (uVar2 < uVar3) {
if (0x75075075075075 - (uVar2 >> 1) < uVar2) {
uVar2 = 0;
if (uVar3 != 0) {
uVar2 = uVar3;
}
FUN_140003f30(param_1,uVar2);
return;
}
uVar2 = uVar2 + (uVar2 >> 1);
if (uVar2 < uVar3) {
uVar2 = uVar3;
}
FUN_140003f30(param_1,uVar2);
}
return;
}

View file

@ -0,0 +1,48 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003da0 FUN_140003da0
* Pseudocode, not original source. */
longlong * FUN_140003da0(longlong *param_1,longlong *param_2,ulonglong param_3,ulonglong param_4)
{
code *pcVar1;
char cVar2;
longlong *plVar3;
ulonglong _Size;
if (param_3 <= (ulonglong)param_2[2]) {
_Size = param_2[2] - param_3;
if (param_4 < _Size) {
_Size = param_4;
}
if (param_1 == param_2) {
FUN_1400040a0(param_1,_Size + param_3,0xffffffffffffffff);
FUN_1400040a0(param_1,0,param_3);
}
else {
cVar2 = FUN_140004140(param_1,_Size);
if (cVar2 != '\0') {
if (0xf < (ulonglong)param_2[3]) {
param_2 = (longlong *)*param_2;
}
plVar3 = param_1;
if (0xf < (ulonglong)param_1[3]) {
plVar3 = (longlong *)*param_1;
}
memcpy(plVar3,(void *)((longlong)param_2 + param_3),_Size);
param_1[2] = _Size;
plVar3 = param_1;
if (0xf < (ulonglong)param_1[3]) {
plVar3 = (longlong *)*param_1;
}
*(undefined1 *)((longlong)plVar3 + _Size) = 0;
}
}
return param_1;
}
std::_Xout_of_range("invalid string position");
pcVar1 = (code *)swi(3);
plVar3 = (longlong *)(*pcVar1)();
return plVar3;
}

View file

@ -0,0 +1,51 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003e60 FUN_140003e60
* Pseudocode, not original source. */
ulonglong * FUN_140003e60(ulonglong *param_1,void *param_2,ulonglong param_3)
{
ulonglong uVar1;
char cVar2;
ulonglong *puVar3;
if (param_2 != (void *)0x0) {
uVar1 = param_1[3];
puVar3 = param_1;
if (0xf < uVar1) {
puVar3 = (ulonglong *)*param_1;
}
if (puVar3 <= param_2) {
puVar3 = param_1;
if (0xf < uVar1) {
puVar3 = (ulonglong *)*param_1;
}
if (param_2 < (void *)((longlong)puVar3 + param_1[2])) {
puVar3 = param_1;
if (0xf < uVar1) {
puVar3 = (ulonglong *)*param_1;
}
puVar3 = (ulonglong *)
FUN_140003da0((longlong *)param_1,(longlong *)param_1,
(longlong)param_2 - (longlong)puVar3,param_3);
return puVar3;
}
}
}
cVar2 = FUN_140004140(param_1,param_3);
if (cVar2 != '\0') {
puVar3 = param_1;
if (0xf < param_1[3]) {
puVar3 = (ulonglong *)*param_1;
}
memcpy(puVar3,param_2,param_3);
param_1[2] = param_3;
puVar3 = param_1;
if (0xf < param_1[3]) {
puVar3 = (ulonglong *)*param_1;
}
*(undefined1 *)((longlong)puVar3 + param_3) = 0;
}
return param_1;
}

View file

@ -0,0 +1,48 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140003f30 FUN_140003f30
* Pseudocode, not original source. */
void FUN_140003f30(longlong *param_1,ulonglong param_2)
{
undefined8 *puVar1;
code *pcVar2;
longlong *plVar3;
longlong lVar4;
undefined8 *puVar5;
longlong *local_res10;
undefined **local_30 [3];
if (0x75075075075075 < param_2) {
std::_Xlength_error("vector<T> too long");
pcVar2 = (code *)swi(3);
(*pcVar2)();
return;
}
if ((ulonglong)((param_1[2] - *param_1) / 0x230) < param_2) {
local_res10 = (longlong *)0x0;
if ((param_2 != 0) &&
(local_res10 = operator_new(param_2 * 0x230), local_res10 == (longlong *)0x0)) {
std::exception::exception((exception *)local_30,(char **)&local_res10);
local_30[0] = std::bad_alloc::vftable;
/* WARNING: Subroutine does not return */
_CxxThrowException(local_30,(ThrowInfo *)&DAT_1401a9330);
}
plVar3 = local_res10;
FUN_140004660((longlong *)*param_1,(longlong *)param_1[1],local_res10);
puVar1 = (undefined8 *)param_1[1];
puVar5 = (undefined8 *)*param_1;
lVar4 = (longlong)puVar1 - (longlong)puVar5;
if (puVar5 != (undefined8 *)0x0) {
for (; puVar5 != puVar1; puVar5 = puVar5 + 0x46) {
FUN_1400036f0(puVar5);
}
operator_delete((void *)*param_1);
}
param_1[2] = (longlong)(plVar3 + param_2 * 0x46);
param_1[1] = (longlong)(plVar3 + (lVar4 / 0x230) * 0x46);
*param_1 = (longlong)plVar3;
}
return;
}

View file

@ -0,0 +1,43 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400040a0 FUN_1400040a0
* Pseudocode, not original source. */
longlong * FUN_1400040a0(longlong *param_1,ulonglong param_2,ulonglong param_3)
{
code *pcVar1;
longlong *plVar2;
longlong *plVar3;
ulonglong uVar4;
longlong lVar5;
if ((ulonglong)param_1[2] < param_2) {
std::_Xout_of_range("invalid string position");
pcVar1 = (code *)swi(3);
plVar2 = (longlong *)(*pcVar1)();
return plVar2;
}
uVar4 = param_1[2] - param_2;
if (uVar4 < param_3) {
param_3 = uVar4;
}
if (param_3 != 0) {
plVar2 = param_1;
plVar3 = param_1;
if (0xf < (ulonglong)param_1[3]) {
plVar2 = (longlong *)*param_1;
plVar3 = (longlong *)*param_1;
}
memmove((void *)((longlong)plVar2 + param_2),(void *)((longlong)plVar3 + param_3 + param_2),
uVar4 - param_3);
lVar5 = param_1[2] - param_3;
param_1[2] = lVar5;
if (0xf < (ulonglong)param_1[3]) {
*(undefined1 *)(*param_1 + lVar5) = 0;
return param_1;
}
*(undefined1 *)((longlong)param_1 + lVar5) = 0;
}
return param_1;
}

View file

@ -0,0 +1,30 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140004140 FUN_140004140
* Pseudocode, not original source. */
undefined1 FUN_140004140(undefined8 *param_1,ulonglong param_2)
{
code *pcVar1;
undefined1 uVar2;
if (param_2 == 0xffffffffffffffff) {
std::_Xlength_error("string too long");
pcVar1 = (code *)swi(3);
uVar2 = (*pcVar1)();
return uVar2;
}
if ((ulonglong)param_1[3] < param_2) {
FUN_1400041b0(param_1,param_2,param_1[2]);
return param_2 != 0;
}
if (param_2 == 0) {
param_1[2] = 0;
if (0xf < (ulonglong)param_1[3]) {
param_1 = (undefined8 *)*param_1;
}
*(undefined1 *)param_1 = 0;
}
return param_2 != 0;
}

View file

@ -0,0 +1,53 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400041b0 FUN_1400041b0
* Pseudocode, not original source. */
void FUN_1400041b0(undefined8 *param_1,ulonglong param_2,size_t param_3)
{
ulonglong uVar1;
undefined8 *_Dst;
ulonglong uVar2;
undefined8 *_Src;
ulonglong uVar3;
char *local_res20;
undefined **local_40 [4];
uVar3 = param_2 | 0xf;
if (uVar3 != 0xffffffffffffffff) {
uVar1 = param_1[3];
uVar2 = uVar1 >> 1;
param_2 = uVar3;
if ((uVar3 / 3 < uVar2) && (param_2 = 0xfffffffffffffffe, uVar1 <= -uVar2 - 2)) {
param_2 = uVar2 + uVar1;
}
}
_Dst = (undefined8 *)0x0;
if ((param_2 + 1 != 0) && (_Dst = operator_new(param_2 + 1), _Dst == (undefined8 *)0x0)) {
local_res20 = (char *)0x0;
std::exception::exception((exception *)local_40,&local_res20);
local_40[0] = std::bad_alloc::vftable;
/* WARNING: Subroutine does not return */
_CxxThrowException(local_40,(ThrowInfo *)&DAT_1401a9330);
}
if (param_3 != 0) {
_Src = param_1;
if (0xf < (ulonglong)param_1[3]) {
_Src = (undefined8 *)*param_1;
}
memcpy(_Dst,_Src,param_3);
}
if (0xf < (ulonglong)param_1[3]) {
operator_delete((void *)*param_1);
}
*(undefined1 *)param_1 = 0;
*param_1 = _Dst;
param_1[3] = param_2;
param_1[2] = param_3;
if (0xf < param_2) {
param_1 = _Dst;
}
*(undefined1 *)((longlong)param_1 + param_3) = 0;
return;
}

View file

@ -0,0 +1,22 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400042f0 FUN_1400042f0
* Pseudocode, not original source. */
void * FUN_1400042f0(__uint64 param_1)
{
void *pvVar1;
char *local_res8 [4];
undefined **local_28 [5];
pvVar1 = (void *)0x0;
if ((param_1 != 0) && (pvVar1 = operator_new(param_1), pvVar1 == (void *)0x0)) {
local_res8[0] = (char *)0x0;
std::exception::exception((exception *)local_28,local_res8);
local_28[0] = std::bad_alloc::vftable;
/* WARNING: Subroutine does not return */
_CxxThrowException(local_28,(ThrowInfo *)&DAT_1401a9330);
}
return pvVar1;
}

View file

@ -0,0 +1,78 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140004350 FUN_140004350
* Pseudocode, not original source. */
longlong * FUN_140004350(longlong *param_1,longlong *param_2)
{
param_1[3] = 0xf;
param_1[2] = 0;
*(undefined1 *)param_1 = 0;
FUN_140003da0(param_1,param_2,0,0xffffffffffffffff);
param_1[8] = 0xf;
param_1[7] = 0;
*(undefined1 *)(param_1 + 5) = 0;
FUN_140003da0(param_1 + 5,param_2 + 5,0,0xffffffffffffffff);
param_1[0xd] = 0xf;
param_1[0xc] = 0;
*(undefined1 *)(param_1 + 10) = 0;
FUN_140003da0(param_1 + 10,param_2 + 10,0,0xffffffffffffffff);
param_1[0x12] = 0xf;
param_1[0x11] = 0;
*(undefined1 *)(param_1 + 0xf) = 0;
FUN_140003da0(param_1 + 0xf,param_2 + 0xf,0,0xffffffffffffffff);
param_1[0x17] = 0xf;
param_1[0x16] = 0;
*(undefined1 *)(param_1 + 0x14) = 0;
FUN_140003da0(param_1 + 0x14,param_2 + 0x14,0,0xffffffffffffffff);
param_1[0x1c] = 0xf;
param_1[0x1b] = 0;
*(undefined1 *)(param_1 + 0x19) = 0;
FUN_140003da0(param_1 + 0x19,param_2 + 0x19,0,0xffffffffffffffff);
param_1[0x21] = 0xf;
param_1[0x20] = 0;
*(undefined1 *)(param_1 + 0x1e) = 0;
FUN_140003da0(param_1 + 0x1e,param_2 + 0x1e,0,0xffffffffffffffff);
param_1[0x26] = 0xf;
param_1[0x25] = 0;
*(undefined1 *)(param_1 + 0x23) = 0;
FUN_140003da0(param_1 + 0x23,param_2 + 0x23,0,0xffffffffffffffff);
param_1[0x2b] = 0xf;
param_1[0x2a] = 0;
*(undefined1 *)(param_1 + 0x28) = 0;
FUN_140003da0(param_1 + 0x28,param_2 + 0x28,0,0xffffffffffffffff);
*(int *)(param_1 + 0x2d) = (int)param_2[0x2d];
param_1[0x31] = 0xf;
param_1[0x30] = 0;
*(undefined1 *)(param_1 + 0x2e) = 0;
FUN_140003da0(param_1 + 0x2e,param_2 + 0x2e,0,0xffffffffffffffff);
param_1[0x36] = 0xf;
param_1[0x35] = 0;
*(undefined1 *)(param_1 + 0x33) = 0;
FUN_140003da0(param_1 + 0x33,param_2 + 0x33,0,0xffffffffffffffff);
param_1[0x3b] = 0xf;
param_1[0x3a] = 0;
*(undefined1 *)(param_1 + 0x38) = 0;
FUN_140003da0(param_1 + 0x38,param_2 + 0x38,0,0xffffffffffffffff);
*(char *)(param_1 + 0x3d) = (char)param_2[0x3d];
*(undefined1 *)((longlong)param_1 + 0x1e9) = *(undefined1 *)((longlong)param_2 + 0x1e9);
*(undefined1 *)((longlong)param_1 + 0x1ea) = *(undefined1 *)((longlong)param_2 + 0x1ea);
*(undefined1 *)((longlong)param_1 + 0x1eb) = *(undefined1 *)((longlong)param_2 + 0x1eb);
*(undefined1 *)((longlong)param_1 + 0x1ec) = *(undefined1 *)((longlong)param_2 + 0x1ec);
*(undefined1 *)((longlong)param_1 + 0x1ed) = *(undefined1 *)((longlong)param_2 + 0x1ed);
*(undefined1 *)((longlong)param_1 + 0x1ee) = *(undefined1 *)((longlong)param_2 + 0x1ee);
*(undefined1 *)((longlong)param_1 + 0x1ef) = *(undefined1 *)((longlong)param_2 + 0x1ef);
*(char *)(param_1 + 0x3e) = (char)param_2[0x3e];
*(undefined1 *)((longlong)param_1 + 0x1f1) = *(undefined1 *)((longlong)param_2 + 0x1f1);
*(undefined1 *)((longlong)param_1 + 0x1f2) = *(undefined1 *)((longlong)param_2 + 0x1f2);
*(undefined1 *)((longlong)param_1 + 499) = *(undefined1 *)((longlong)param_2 + 499);
*(undefined4 *)((longlong)param_1 + 500) = *(undefined4 *)((longlong)param_2 + 500);
*(int *)(param_1 + 0x3f) = (int)param_2[0x3f];
param_1[0x43] = 0xf;
param_1[0x42] = 0;
*(undefined1 *)(param_1 + 0x40) = 0;
FUN_140003da0(param_1 + 0x40,param_2 + 0x40,0,0xffffffffffffffff);
*(int *)(param_1 + 0x45) = (int)param_2[0x45];
return param_1;
}

View file

@ -0,0 +1,16 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140004660 FUN_140004660
* Pseudocode, not original source. */
longlong * FUN_140004660(longlong *param_1,longlong *param_2,longlong *param_3)
{
for (; param_1 != param_2; param_1 = param_1 + 0x46) {
if (param_3 != (longlong *)0x0) {
FUN_140004350(param_3,param_1);
}
param_3 = param_3 + 0x46;
}
return param_3;
}

View file

@ -0,0 +1,23 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400046c0 FUN_1400046c0
* Pseudocode, not original source. */
undefined8 *
FUN_1400046c0(undefined8 *param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4)
{
*param_1 = MagiMsgServer::vftable;
FUN_14006b400((undefined4 *)(param_1 + 0x10),param_2,param_3,param_4);
*param_1 = MagiServerBase::vftable;
if ((void *)param_1[2] != (void *)0x0) {
operator_delete((void *)param_1[2]);
}
param_1[2] = 0;
param_1[3] = 0;
param_1[4] = 0;
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,19 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140004740 FUN_140004740
* Pseudocode, not original source. */
void FUN_140004740(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
*param_1 = MagiMsgServer::vftable;
FUN_14006b400((undefined4 *)(param_1 + 0x10),param_2,param_3,param_4);
*param_1 = MagiServerBase::vftable;
if ((void *)param_1[2] != (void *)0x0) {
operator_delete((void *)param_1[2]);
}
param_1[2] = 0;
param_1[3] = 0;
param_1[4] = 0;
return;
}

View file

@ -0,0 +1,69 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400047a0 FUN_1400047a0
* Pseudocode, not original source. */
void FUN_1400047a0(LPCWSTR param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
longlong lVar1;
char *pcVar2;
undefined8 *puVar3;
undefined8 *puVar4;
undefined8 *puVar5;
wchar_t *pwVar6;
undefined8 uVar7;
if ((DAT_1401bd4f4 & 1) == 0) {
DAT_1401bd4f4 = DAT_1401bd4f4 | 1;
FUN_14011b100();
atexit((_func_5014 *)&LAB_14012f3d0);
if ((DAT_1401bd4f4 & 1) == 0) {
DAT_1401bd4f4 = DAT_1401bd4f4 | 1;
FUN_14011b100();
atexit((_func_5014 *)&LAB_14012f3d0);
}
}
if ((DAT_1401bd4a0 != 200) && (DAT_1401bd4a0 != 100)) {
if ((DAT_1401bd4f4 & 1) == 0) {
DAT_1401bd4f4 = DAT_1401bd4f4 | 1;
FUN_14011b100();
atexit((_func_5014 *)&LAB_14012f3d0);
}
if (DAT_1401bd4a0 != 1000) goto LAB_14000485b;
}
setlocale(0,"kor");
LAB_14000485b:
pcVar2 = setlocale(0,(char *)0x0);
printf("Locale is: %s\n");
FUN_14006fc10('\0');
puVar3 = operator_new(0xe8);
puVar5 = (undefined8 *)0x0;
puVar4 = puVar5;
if (puVar3 != (undefined8 *)0x0) {
puVar4 = FUN_14011b5d0(puVar3);
}
DAT_1401ba9e8 = puVar4;
FUN_14011b8a0((longlong)puVar4,pcVar2,param_3,param_4);
puVar4 = DAT_1401ba9e8;
EnterCriticalSection(DAT_1401bd028);
uVar7 = 0xc;
pwVar6 = L"Protocol_Msg";
FUN_140001830(puVar4 + 3,L"Protocol_Msg",0xc);
LeaveCriticalSection(DAT_1401bd028);
puVar3 = operator_new(0x98);
puVar4 = puVar5;
if (puVar3 != (undefined8 *)0x0) {
puVar4 = FUN_1401194b0(puVar3,pwVar6,uVar7,param_4);
}
DAT_1401bd030 = puVar4;
puVar4 = operator_new(8);
if (puVar4 != (undefined8 *)0x0) {
puVar5 = FUN_140063440(puVar4,pwVar6,uVar7,param_4);
}
lVar1 = DAT_1401bd038;
DAT_1401bd040 = puVar5;
*(undefined1 *)(DAT_1401bd038 + 0x1e8) = 6;
FUN_14005c7b0(lVar1,param_1,uVar7,param_4);
return;
}

View 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;
}

View file

@ -0,0 +1,935 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140004f00 FUN_140004f00
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
undefined8 FUN_140004f00(longlong param_1,undefined8 param_2,undefined *param_3,char *param_4)
{
longlong *plVar1;
double dVar2;
undefined1 auVar3 [16];
undefined1 auVar4 [16];
undefined1 auVar5 [16];
undefined1 auVar6 [16];
bool bVar7;
_Container_base0 *p_Var8;
DWORD DVar9;
DWORD DVar10;
int iVar11;
_Container_base0 *p_Var12;
_Container_base0 *p_Var13;
ulonglong uVar14;
undefined8 *puVar15;
undefined8 uVar16;
longlong *plVar17;
longlong *plVar18;
longlong *plVar19;
longlong *plVar20;
char *pcVar21;
longlong lVar22;
short **ppsVar23;
char *_Src;
undefined *puVar24;
char *pcVar25;
undefined *puVar26;
char *pcVar27;
longlong lVar28;
undefined4 uVar29;
undefined4 uVar30;
undefined4 uVar31;
undefined4 uVar32;
undefined4 uVar33;
undefined1 auStack_488 [32];
longlong *local_468;
longlong *local_460;
_Container_base0 *local_458;
_Container_base0 *local_450;
_Container_base0 *local_448;
longlong *local_440;
longlong local_438;
_Container_base0 *local_430;
longlong *local_428;
longlong *local_420;
undefined4 local_418 [2];
undefined4 local_410 [2];
undefined4 local_408 [2];
void *local_400;
longlong local_3f8;
undefined8 local_3f0;
undefined8 *local_3e0;
undefined8 *local_3d8;
undefined8 *local_3d0;
undefined8 *local_3c8;
undefined8 *local_3c0;
undefined8 *local_3b8;
undefined8 *local_3b0;
undefined8 *local_3a8;
undefined8 *local_3a0;
_Container_base0 *local_398;
undefined1 local_390;
int *local_388;
undefined1 local_380;
char *local_378;
DWORD local_370;
undefined8 local_368;
char *local_360;
DWORD local_358;
undefined2 local_348;
undefined1 local_346 [158];
undefined1 local_2a8 [160];
short *local_208;
undefined2 local_200;
undefined6 uStack_1fe;
undefined8 local_1f0;
ulonglong local_1e8;
undefined2 local_1d8;
undefined6 uStack_1d6;
undefined8 local_1c8;
ulonglong local_1c0;
short *local_1a8;
undefined2 local_1a0;
undefined6 uStack_19e;
undefined8 local_190;
ulonglong local_188;
undefined2 local_178;
undefined6 uStack_176;
undefined8 local_168;
ulonglong local_160;
short *local_148;
undefined2 local_140;
undefined6 uStack_13e;
undefined8 local_130;
ulonglong local_128;
undefined2 local_118;
undefined6 uStack_116;
undefined8 local_108;
ulonglong local_100;
short *local_e8;
undefined2 local_e0;
undefined6 uStack_de;
undefined8 local_d0;
ulonglong local_c8;
undefined2 local_b8;
undefined6 uStack_b6;
undefined8 local_a8;
ulonglong local_a0;
ulonglong local_88;
local_368 = 0xfffffffffffffffe;
local_88 = DAT_1401ac5a0 ^ (ulonglong)auStack_488;
local_438 = param_1;
FUN_14000a810(L"# Msg Server Startup #\n\n",param_2,param_3,param_4);
CoInitialize((LPVOID)0x0);
FUN_14000a950(L"+ Prepare Startup\n",param_2,param_3,param_4);
local_428 = operator_new(0x148);
p_Var13 = (_Container_base0 *)0x0;
p_Var12 = p_Var13;
if (local_428 != (undefined8 *)0x0) {
p_Var12 = (_Container_base0 *)FUN_140006690(local_428,param_2,param_3,param_4);
}
if (p_Var12 == (_Container_base0 *)0x0) {
local_440 = (longlong *)0x0;
}
else {
local_440 = (longlong *)FUN_14006cbf0(0x10);
local_440[1] = 1;
*local_440 = (longlong)p_Var12;
}
local_448 = operator_new(0xf0);
p_Var12 = p_Var13;
if (local_448 != (_Container_base0 *)0x0) {
if ((local_440 != (longlong *)0x0) && (*local_440 != 0)) {
p_Var12 = (_Container_base0 *)(*local_440 + 0x28);
}
p_Var12 = (_Container_base0 *)FUN_140064310((undefined8 *)local_448,p_Var12,param_3,param_4);
}
if (p_Var12 == (_Container_base0 *)0x0) {
local_458 = (_Container_base0 *)0x0;
}
else {
p_Var13 = (_Container_base0 *)FUN_14006cbf0(0x48);
local_448 = p_Var13;
local_430 = p_Var13;
if (p_Var13 != (_Container_base0 *)0x0) {
uVar14 = FUN_140079250();
param_3 = (undefined *)CONCAT71((int7)((ulonglong)param_3 >> 8),1);
FUN_14006b270((undefined4 *)p_Var13,uVar14 & 0xffffffff,param_3,param_4);
}
local_458 = p_Var13;
FUN_14006b350((int *)p_Var13);
*(longlong *)(p_Var13 + 0x40) = 1;
*(_Container_base0 **)(p_Var13 + 0x38) = p_Var12;
FUN_14006b3e0((longlong)p_Var13);
}
puVar15 = operator_new(0x20);
if (puVar15 == (undefined8 *)0x0) {
local_468 = (longlong *)0x0;
}
else {
*puVar15 = 0;
puVar15[1] = 0;
puVar15[2] = 0;
local_468 = (longlong *)FUN_14006cbf0(0x10);
local_468[1] = 1;
*local_468 = (longlong)puVar15;
}
plVar17 = local_468;
local_420 = local_468;
puVar15 = operator_new(0x20);
if (puVar15 == (undefined8 *)0x0) {
local_460 = (longlong *)0x0;
}
else {
*puVar15 = 0;
puVar15[1] = 0;
puVar15[2] = 0;
local_460 = (longlong *)FUN_14006cbf0(0x10);
local_460[1] = 1;
*local_460 = (longlong)puVar15;
}
plVar20 = local_460;
local_430 = (_Container_base0 *)local_460;
puVar15 = operator_new(0x20);
if (puVar15 == (undefined8 *)0x0) {
local_450 = (_Container_base0 *)0x0;
}
else {
*puVar15 = 0;
puVar15[1] = 0;
puVar15[2] = 0;
local_450 = (_Container_base0 *)FUN_14006cbf0(0x10);
*(longlong *)(local_450 + 8) = 1;
*(undefined8 **)local_450 = puVar15;
}
p_Var12 = local_450;
local_448 = local_450;
puVar15 = operator_new(0x20);
if (puVar15 == (undefined8 *)0x0) {
local_428 = (longlong *)0x0;
}
else {
*puVar15 = 0;
puVar15[1] = 0;
puVar15[2] = 0;
local_428 = (longlong *)FUN_14006cbf0(0x10);
local_428[1] = 1;
*local_428 = (longlong)puVar15;
}
plVar1 = local_428;
lVar22 = 0;
lVar28 = lVar22;
if (p_Var13 != (_Container_base0 *)0x0) {
lVar28 = *(longlong *)(p_Var13 + 0x38);
}
*(longlong *)(param_1 + 0x30) = lVar28;
lVar28 = lVar22;
if (local_440 != (longlong *)0x0) {
lVar28 = *local_440;
}
*(longlong *)(param_1 + 0x58) = lVar28;
lVar28 = lVar22;
if (plVar17 != (longlong *)0x0) {
lVar28 = *plVar17;
}
*(longlong *)(param_1 + 0x60) = lVar28;
lVar28 = lVar22;
if (plVar20 != (longlong *)0x0) {
lVar28 = *plVar20;
}
*(longlong *)(param_1 + 0x68) = lVar28;
lVar28 = lVar22;
if (p_Var12 != (_Container_base0 *)0x0) {
lVar28 = *(longlong *)p_Var12;
}
*(longlong *)(param_1 + 0x70) = lVar28;
lVar28 = lVar22;
if (local_428 != (longlong *)0x0) {
lVar28 = *local_428;
}
*(longlong *)(param_1 + 0x78) = lVar28;
local_408[0] = 1;
*(undefined4 *)(param_1 + 8) = 1;
printf("STEP : AGENT \n");
lVar28 = *(longlong *)(param_1 + 0x30);
if ((lVar28 != 0) && (*(char *)(lVar28 + 0x1a) != '\0')) {
param_4 = (char *)local_408;
param_3 = &DAT_1401ac5d0;
lVar22 = 1;
(**(code **)(*(longlong *)(lVar28 + 0x68) + 0xb0))();
}
if ((*(longlong *)(param_1 + 0x30) == 0) ||
(uVar16 = FUN_140064850(*(longlong *)(param_1 + 0x30),lVar22,param_3,(longlong)param_4),
plVar19 = local_428, (char)uVar16 != '\0')) {
FUN_140009330(*(ulonglong **)(param_1 + 0x60),*(uint *)(DAT_1401bd038 + 0x144),0xc,
(longlong)param_4);
FUN_140009330(*(ulonglong **)(param_1 + 0x68),*(uint *)(DAT_1401bd038 + 0x144),0x11,
(longlong)param_4);
FUN_140009330(*(ulonglong **)(param_1 + 0x70),*(uint *)(DAT_1401bd038 + 0x144),0x12,
(longlong)param_4);
uVar16 = 0x13;
ppsVar23 = (short **)(ulonglong)*(uint *)(DAT_1401bd038 + 0x144);
FUN_140009330(*(ulonglong **)(param_1 + 0x78),*(uint *)(DAT_1401bd038 + 0x144),0x13,
(longlong)param_4);
FUN_140006b20(*(longlong *)(param_1 + 0x58),ppsVar23,uVar16,(longlong)param_4);
*(undefined8 *)(*(longlong *)(param_1 + 0x58) + 0xa0) = *(undefined8 *)(param_1 + 0x30);
local_418[0] = 3;
*(undefined4 *)(param_1 + 8) = 3;
printf("STEP : DB_LOAD \n");
lVar28 = *(longlong *)(param_1 + 0x30);
if ((lVar28 != 0) && (*(char *)(lVar28 + 0x1a) != '\0')) {
param_4 = (char *)local_418;
ppsVar23 = (short **)0x1;
(**(code **)(*(longlong *)(lVar28 + 0x68) + 0xb0))
((longlong *)(lVar28 + 0x68),1,&DAT_1401ac5d0);
}
local_410[0] = 4;
*(undefined4 *)(param_1 + 8) = 4;
printf("STEP : SESSION_CONNECT \n");
lVar28 = *(longlong *)(param_1 + 0x30);
if ((lVar28 != 0) && (*(char *)(lVar28 + 0x1a) != '\0')) {
param_4 = (char *)local_410;
ppsVar23 = (short **)0x1;
(**(code **)(*(longlong *)(lVar28 + 0x68) + 0xb0))
((longlong *)(lVar28 + 0x68),1,&DAT_1401ac5d0);
}
local_e8 = (short *)0x0;
local_c8 = 7;
local_d0 = 0;
local_e0 = 0;
local_a0 = 7;
local_a8 = 0;
local_b8 = 0;
if (*(longlong *)(DAT_1401bd038 + 0x1c8) != 0) {
auVar3._8_8_ = 0;
auVar3._0_8_ = *(ulonglong *)(DAT_1401bd038 + 0x1b0);
ppsVar23 = SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xc)) % auVar3,0);
local_3e0 = (undefined8 *)(*(longlong *)(DAT_1401bd038 + 0x1a8) + (longlong)ppsVar23 * 8);
for (local_3d8 = (undefined8 *)*local_3e0; local_3d8 != (undefined8 *)0x0;
local_3d8 = (undefined8 *)*local_3d8) {
if (*(char *)(local_3d8 + 1) == '\f') {
if (local_3d8 != (undefined8 *)0x0) goto LAB_140005542;
break;
}
}
}
local_3e0 = (undefined8 *)0x0;
local_3d8 = (undefined8 *)0x0;
LAB_140005542:
if ((local_3d8 != (undefined8 *)0x0) &&
(puVar15 = (undefined8 *)local_3d8[2], puVar15 != (undefined8 *)local_3d8[3])) {
local_e8 = (short *)*puVar15;
FUN_140001750((longlong *)&local_e0,puVar15 + 1,0,0xffffffffffffffff);
param_4 = (char *)0xffffffffffffffff;
uVar14 = 0;
FUN_140001750((longlong *)&local_b8,puVar15 + 6,0,0xffffffffffffffff);
plVar19 = (longlong *)0x0;
plVar18 = plVar19;
if (plVar17 != (longlong *)0x0) {
plVar18 = (longlong *)*plVar17;
}
ppsVar23 = &local_e8;
FUN_1400096b0(plVar18,ppsVar23,uVar14,param_4);
if (plVar17 != (longlong *)0x0) {
plVar19 = (longlong *)*plVar17;
}
FUN_140009b10(plVar19,(wchar_t *)ppsVar23,uVar14,param_4);
}
if (7 < local_a0) {
operator_delete((void *)CONCAT62(uStack_b6,local_b8));
}
local_a0 = 7;
local_a8 = 0;
local_b8 = 0;
if (7 < local_c8) {
operator_delete((void *)CONCAT62(uStack_de,local_e0));
}
local_c8 = 7;
local_d0 = 0;
local_e0 = 0;
local_1a8 = (short *)0x0;
local_188 = 7;
local_190 = 0;
local_1a0 = 0;
local_160 = 7;
local_168 = 0;
local_178 = 0;
if (*(longlong *)(DAT_1401bd038 + 0x1c8) != 0) {
auVar4._8_8_ = 0;
auVar4._0_8_ = *(ulonglong *)(DAT_1401bd038 + 0x1b0);
ppsVar23 = SUB168((ZEXT816(0) << 0x40 | ZEXT816(0x11)) % auVar4,0);
local_3a8 = (undefined8 *)(*(longlong *)(DAT_1401bd038 + 0x1a8) + (longlong)ppsVar23 * 8);
for (local_3a0 = (undefined8 *)*local_3a8; local_3a0 != (undefined8 *)0x0;
local_3a0 = (undefined8 *)*local_3a0) {
if (*(char *)(local_3a0 + 1) == '\x11') {
if (local_3a0 != (undefined8 *)0x0) goto LAB_1400056c2;
break;
}
}
}
local_3a8 = (undefined8 *)0x0;
local_3a0 = (undefined8 *)0x0;
LAB_1400056c2:
if ((local_3a0 != (undefined8 *)0x0) &&
(puVar15 = (undefined8 *)local_3a0[2], puVar15 != (undefined8 *)local_3a0[3])) {
local_1a8 = (short *)*puVar15;
FUN_140001750((longlong *)&local_1a0,puVar15 + 1,0,0xffffffffffffffff);
param_4 = (char *)0xffffffffffffffff;
uVar14 = 0;
FUN_140001750((longlong *)&local_178,puVar15 + 6,0,0xffffffffffffffff);
plVar17 = (longlong *)0x0;
plVar19 = plVar17;
if (plVar20 != (longlong *)0x0) {
plVar19 = (longlong *)*plVar20;
}
ppsVar23 = &local_1a8;
FUN_1400096b0(plVar19,ppsVar23,uVar14,param_4);
if (plVar20 != (longlong *)0x0) {
plVar17 = (longlong *)*plVar20;
}
FUN_140009b10(plVar17,(wchar_t *)ppsVar23,uVar14,param_4);
}
if (7 < local_160) {
operator_delete((void *)CONCAT62(uStack_176,local_178));
}
local_160 = 7;
local_168 = 0;
local_178 = 0;
if (7 < local_188) {
operator_delete((void *)CONCAT62(uStack_19e,local_1a0));
}
local_188 = 7;
local_190 = 0;
local_1a0 = 0;
local_208 = (short *)0x0;
local_1e8 = 7;
local_1f0 = 0;
local_200 = 0;
local_1c0 = 7;
local_1c8 = 0;
local_1d8 = 0;
if (*(longlong *)(DAT_1401bd038 + 0x1c8) != 0) {
auVar5._8_8_ = 0;
auVar5._0_8_ = *(ulonglong *)(DAT_1401bd038 + 0x1b0);
ppsVar23 = SUB168((ZEXT816(0) << 0x40 | ZEXT816(0x12)) % auVar5,0);
local_3b8 = (undefined8 *)(*(longlong *)(DAT_1401bd038 + 0x1a8) + (longlong)ppsVar23 * 8);
for (local_3b0 = (undefined8 *)*local_3b8; local_3b0 != (undefined8 *)0x0;
local_3b0 = (undefined8 *)*local_3b0) {
if (*(char *)(local_3b0 + 1) == '\x12') {
if (local_3b0 != (undefined8 *)0x0) goto LAB_140005842;
break;
}
}
}
local_3b8 = (undefined8 *)0x0;
local_3b0 = (undefined8 *)0x0;
LAB_140005842:
if ((local_3b0 != (undefined8 *)0x0) &&
(puVar15 = (undefined8 *)local_3b0[2], puVar15 != (undefined8 *)local_3b0[3])) {
local_208 = (short *)*puVar15;
FUN_140001750((longlong *)&local_200,puVar15 + 1,0,0xffffffffffffffff);
param_4 = (char *)0xffffffffffffffff;
uVar16 = 0;
FUN_140001750((longlong *)&local_1d8,puVar15 + 6,0,0xffffffffffffffff);
plVar17 = (longlong *)0x0;
plVar20 = plVar17;
if (p_Var12 != (_Container_base0 *)0x0) {
plVar20 = *(longlong **)p_Var12;
}
ppsVar23 = &local_208;
FUN_1400096b0(plVar20,ppsVar23,uVar16,param_4);
if (p_Var12 != (_Container_base0 *)0x0) {
plVar17 = *(longlong **)p_Var12;
}
FUN_140009890(plVar17,(undefined **)ppsVar23,uVar16,param_4);
}
if (7 < local_1c0) {
operator_delete((void *)CONCAT62(uStack_1d6,local_1d8));
}
local_1c0 = 7;
local_1c8 = 0;
local_1d8 = 0;
if (7 < local_1e8) {
operator_delete((void *)CONCAT62(uStack_1fe,local_200));
}
local_1e8 = 7;
local_1f0 = 0;
local_200 = 0;
local_148 = (short *)0x0;
local_128 = 7;
local_130 = 0;
local_140 = 0;
local_100 = 7;
local_108 = 0;
local_118 = 0;
if (*(longlong *)(DAT_1401bd038 + 0x1c8) != 0) {
auVar6._8_8_ = 0;
auVar6._0_8_ = *(ulonglong *)(DAT_1401bd038 + 0x1b0);
ppsVar23 = SUB168((ZEXT816(0) << 0x40 | ZEXT816(0x13)) % auVar6,0);
local_3d0 = (undefined8 *)(*(longlong *)(DAT_1401bd038 + 0x1a8) + (longlong)ppsVar23 * 8);
for (local_3c8 = (undefined8 *)*local_3d0; local_3c8 != (undefined8 *)0x0;
local_3c8 = (undefined8 *)*local_3c8) {
if (*(char *)(local_3c8 + 1) == '\x13') {
if (local_3c8 != (undefined8 *)0x0) goto LAB_1400059c2;
break;
}
}
}
local_3d0 = (undefined8 *)0x0;
local_3c8 = (undefined8 *)0x0;
LAB_1400059c2:
if ((local_3c8 != (undefined8 *)0x0) &&
(puVar15 = (undefined8 *)local_3c8[2], puVar15 != (undefined8 *)local_3c8[3])) {
local_148 = (short *)*puVar15;
FUN_140001750((longlong *)&local_140,puVar15 + 1,0,0xffffffffffffffff);
param_4 = (char *)0xffffffffffffffff;
uVar16 = 0;
FUN_140001750((longlong *)&local_118,puVar15 + 6,0,0xffffffffffffffff);
plVar17 = (longlong *)0x0;
plVar20 = plVar17;
if (plVar1 != (longlong *)0x0) {
plVar20 = (longlong *)*plVar1;
}
ppsVar23 = &local_148;
FUN_1400096b0(plVar20,ppsVar23,uVar16,param_4);
if (plVar1 != (longlong *)0x0) {
plVar17 = (longlong *)*plVar1;
}
FUN_140009890(plVar17,(undefined **)ppsVar23,uVar16,param_4);
}
plVar17 = (longlong *)0x0;
uVar14 = local_100;
if (7 < local_100) {
operator_delete((void *)CONCAT62(uStack_116,local_118));
uVar14 = local_100;
}
local_100 = 7;
local_108 = 0;
local_118 = 0;
if (7 < local_128) {
operator_delete((void *)CONCAT62(uStack_13e,local_140));
}
local_128 = 7;
local_130 = 0;
local_140 = 0;
*(undefined8 *)(*(longlong *)(param_1 + 0x58) + 0x80) = *(undefined8 *)(param_1 + 0x60);
*(undefined8 *)(*(longlong *)(param_1 + 0x58) + 0x88) = *(undefined8 *)(param_1 + 0x68);
*(undefined8 *)(*(longlong *)(param_1 + 0x58) + 0x90) = *(undefined8 *)(param_1 + 0x70);
*(undefined8 *)(*(longlong *)(param_1 + 0x58) + 0x98) = *(undefined8 *)(param_1 + 0x78);
FUN_14000a810(L"\n",ppsVar23,uVar14,param_4);
FUN_14000a810(L"# Msg Server Running... #\n",ppsVar23,uVar14,param_4);
puVar15 = operator_new(0x18);
if (puVar15 != (undefined8 *)0x0) {
plVar17 = FUN_140118ee0(puVar15);
}
plVar20 = DAT_1401bd030;
if ((undefined8 *)DAT_1401bd030[2] != (undefined8 *)0x0) {
(*(code *)**(undefined8 **)DAT_1401bd030[2])();
}
plVar20[2] = (longlong)plVar17;
if (plVar17 != (longlong *)0x0) {
lVar28 = (**(code **)(*plVar17 + 8))(plVar17);
plVar20[6] = lVar28;
plVar20[7] = lVar28;
}
plVar20[0x12] = 0x3ff0000000000000;
puVar15 = operator_new(0x28);
local_3c0 = puVar15;
if (puVar15 == (undefined8 *)0x0) {
puVar15 = (undefined8 *)0x0;
}
else {
*puVar15 = Magi::Timer::vftable;
plVar17 = DAT_1401bd030;
puVar15[1] = DAT_1401bd030;
puVar15[2] = 0;
puVar15[3] = 0;
*(undefined1 *)(puVar15 + 4) = 0;
*(undefined4 *)((longlong)puVar15 + 0x24) = 0x3f800000;
(**(code **)(*plVar17 + 0x10))();
}
lVar28 = local_438;
*(undefined8 **)(local_438 + 0x48) = puVar15;
local_348 = 0;
memset(local_346,0,0x9e);
puVar26 = (undefined *)0xa0;
memset(local_2a8,0,0xa0);
uVar29 = 0;
uVar30 = 0;
_Src = (char *)0x0;
if (p_Var13 != (_Container_base0 *)0x0) {
_Src = *(char **)(p_Var13 + 0x38);
}
FUN_140001cd0(lVar28,_Src);
plVar17 = (longlong *)(lVar28 + 0x60);
lVar22 = 4;
do {
iVar11 = *(int *)(DAT_1401bd038 + 0x144);
pcVar25 = (char *)0x0;
if (0 < (longlong)iVar11) {
do {
if ((longlong *)*plVar17 != (longlong *)0x0) {
_Src = *(char **)(*(longlong *)*plVar17 + (longlong)pcVar25 * 8);
FUN_140001cd0(lVar28,_Src);
}
pcVar25 = pcVar25 + 1;
} while ((longlong)pcVar25 < (longlong)iVar11);
}
plVar17 = plVar17 + 1;
lVar22 = lVar22 + -1;
} while (lVar22 != 0);
local_3c0 = (undefined8 *)CONCAT44(local_3c0._4_4_,5);
*(undefined4 *)(lVar28 + 8) = 5;
if (DAT_1401bcf04 != 0) {
printf("********************************\n");
DVar9 = timeGetTime();
_Src = (char *)((ulonglong)(DVar9 - DAT_1401bcf04) / 1000);
printf("** Server Load Time : %u sec\n");
printf("********************************\n");
}
printf("STEP : SERVER_RUN \n");
lVar22 = *(longlong *)(lVar28 + 0x30);
if ((lVar22 != 0) && (*(char *)(lVar22 + 0x1a) != '\0')) {
param_4 = (char *)&local_3c0;
puVar26 = &DAT_1401ac5d0;
_Src = (char *)0x1;
(**(code **)(*(longlong *)(lVar22 + 0x68) + 0xb0))();
}
puVar15 = (undefined8 *)(lVar28 + 0x60);
pcVar25 = (char *)0x0;
uVar31 = uVar29;
uVar33 = uVar30;
while ((DAT_1401bcf14 == 0 && (*(char *)(*(longlong *)(lVar28 + 0x58) + 0x30) == '\0'))) {
if (*(char *)(*(longlong *)(lVar28 + 0x58) + 0x34) != '\0') {
lVar22 = *(longlong *)(lVar28 + 0x30);
if (lVar22 != 0) {
printf("Server Lock Check Succeed !!!\n");
puVar26 = &DAT_1401ac5d0;
_Src = (char *)0x1;
(**(code **)(*(longlong *)(lVar22 + 0x68) + 0x70))();
}
*(undefined1 *)(*(longlong *)(lVar28 + 0x58) + 0x34) = 0;
}
FUN_1401192a0((longlong)DAT_1401bd030);
dVar2 = *(double *)(*(longlong *)(lVar28 + 0x48) + 0x10);
local_360 = "DBCSessionManager->Process";
DVar9 = timeGetTime();
local_358 = DVar9;
if ((longlong *)*puVar15 != (longlong *)0x0) {
FUN_140009500((longlong *)*puVar15,dVar2);
}
if (*(longlong **)(lVar28 + 0x68) != (longlong *)0x0) {
FUN_140009500(*(longlong **)(lVar28 + 0x68),dVar2);
}
DVar10 = timeGetTime();
if (0x32 < DVar10 - DVar9) {
param_4 = "DBCSessionManager->Process";
puVar26 = (undefined *)(ulonglong)(DVar10 - DVar9);
_Src = "% 9d [ ms ] %s\n";
FUN_14011b2e0(DAT_1401ba9e8,"% 9d [ ms ] %s\n",puVar26,"DBCSessionManager->Process");
}
local_378 = "AgentSession->Process";
local_370 = timeGetTime();
if ((*(longlong *)(lVar28 + 0x30) != 0) &&
(_Src = DAT_1401bd038, DAT_1401bd038[0x150] != '\0')) {
FUN_140002540(*(longlong *)(lVar28 + 0x30),dVar2);
lVar22 = *(longlong *)(lVar28 + 0x30);
if ((lVar22 != 0) &&
((*(char *)(lVar22 + 0x1a) != '\0' && (*(double *)(lVar28 + 0x38) + 1.0 <= dVar2)))) {
*(double *)(lVar28 + 0x38) = dVar2;
FUN_140064b50(lVar22,*(undefined4 *)(*(longlong *)(lVar28 + 0x58) + 0x10c));
}
local_400 = (void *)0x0;
local_3f8 = 0;
local_3f0 = 0;
lVar22 = *(longlong *)(lVar28 + 0x30);
local_388 = (int *)(lVar22 + 0xb8);
FUN_14006b350(local_388);
local_380 = 1;
FUN_140064d80((longlong *)&local_400,(longlong *)(lVar22 + 0x98));
_Src = *(char **)(lVar22 + 0xa0);
pcVar21 = *(char **)(lVar22 + 0x98);
if (pcVar21 != _Src) {
puVar26 = (undefined *)0x0;
memmove(pcVar21,_Src,0);
*(char **)(lVar22 + 0xa0) = pcVar21;
lVar28 = local_438;
}
FUN_14006b3e0((longlong)local_388);
local_380 = 0;
pcVar21 = pcVar25;
pcVar27 = pcVar25;
if (local_3f8 - (longlong)local_400 >> 2 != 0) {
do {
param_4 = (char *)(ulonglong)*(uint *)((longlong)local_400 + (longlong)pcVar21);
iVar11 = (int)(*(longlong *)(lVar28 + 0x18) - *(longlong *)(lVar28 + 0x10) >> 3);
puVar26 = (undefined *)(longlong)iVar11;
_Src = pcVar25;
if (0 < iVar11) {
plVar17 = *(longlong **)(lVar28 + 0x10);
do {
if ((*plVar17 != 0) &&
(*(uint *)(*plVar17 + 0x3c) == *(uint *)((longlong)local_400 + (longlong)pcVar21)
)) {
*(undefined1 *)((*(longlong **)(lVar28 + 0x10))[(longlong)_Src] + 0x1c) = 1;
break;
}
_Src = _Src + 1;
plVar17 = plVar17 + 1;
} while ((longlong)_Src < (longlong)puVar26);
}
pcVar27 = (char *)(ulonglong)((int)pcVar27 + 1);
pcVar21 = pcVar21 + 4;
} while (pcVar27 < (char *)(local_3f8 - (longlong)local_400 >> 2));
}
if (local_400 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_400);
operator_delete(local_400);
}
local_400 = (void *)0x0;
local_3f8 = 0;
local_3f0 = 0;
}
DVar9 = timeGetTime();
if (0x32 < DVar9 - local_370) {
param_4 = "AgentSession->Process";
puVar26 = (undefined *)(ulonglong)(DVar9 - local_370);
_Src = "% 9d [ ms ] %s\n";
FUN_14011b2e0(DAT_1401ba9e8,"% 9d [ ms ] %s\n",puVar26,"AgentSession->Process");
}
if (DAT_1401bcf0f != '\0') {
printf("RetryConnectSession\n");
iVar11 = (int)(*(longlong *)(lVar28 + 0x18) - *(longlong *)(lVar28 + 0x10) >> 3);
_Src = (char *)(longlong)iVar11;
pcVar21 = pcVar25;
if (0 < iVar11) {
do {
if (*(longlong *)(*(longlong *)(lVar28 + 0x10) + (longlong)pcVar21 * 8) != 0) {
*(undefined1 *)
(*(longlong *)(*(longlong *)(lVar28 + 0x10) + (longlong)pcVar21 * 8) + 0x1c) = 1;
}
pcVar21 = pcVar21 + 1;
} while ((longlong)pcVar21 < (longlong)_Src);
}
DAT_1401bcf0f = DAT_1401bcf0f == '\0';
}
uVar32 = (undefined4)((ulonglong)dVar2 >> 0x20);
if (0.10000000149011612 <= dVar2 - (double)CONCAT44(uVar33,uVar31)) {
DAT_1401bcf1c = DAT_1401bcf1c + 1;
FUN_140004960(lVar28);
uVar31 = SUB84(dVar2,0);
uVar33 = uVar32;
}
if (1.0 <= dVar2 - (double)CONCAT44(uVar30,uVar29)) {
if (DAT_1401bcf18 != 0) {
puVar26 = (undefined *)(ulonglong)*(uint *)(*(longlong *)(lVar28 + 0x58) + 0x10c);
_Src = (char *)(ulonglong)DAT_1401bcf1c;
printf("FPS : [%d], Connect[%d]\n");
}
DAT_1401bcf20 = DAT_1401bcf1c;
DAT_1401bcf1c = 0;
uVar29 = SUB84(dVar2,0);
uVar30 = uVar32;
}
if (DAT_1401bcf10 != 0) {
DAT_1401bcf10 = 0;
wprintf(L"-MSG SERVER [CODE:%d]----------------------------------------------------\n",
(ulonglong)*(uint *)(DAT_1401bd038 + 0x154));
lVar22 = *(longlong *)(lVar28 + 0x58);
puVar24 = *(undefined **)(lVar22 + 0x48);
if (*(undefined **)(lVar22 + 0x48) == (undefined *)0x0) {
puVar24 = PTR_DAT_1401ac010;
}
puVar26 = (undefined *)(ulonglong)*(uint *)(lVar22 + 0x50);
wprintf(L"PRIVATE NETWORK : ADDRESS[ %s ] PORT[ %d ]\n",puVar24);
_Src = (char *)(ulonglong)*(uint *)(lVar22 + 0x54);
if ((0 < (int)*(uint *)(lVar22 + 0x54)) &&
(puVar26 = (undefined *)(ulonglong)*(uint *)(lVar22 + 0x58),
*(uint *)(lVar22 + 0x58) != 0)) {
wprintf(L"UDP : PORT [ %d ] COUNT [ %d ]\n");
}
FUN_140001d70(lVar28);
}
*(double *)(lVar28 + 0x50) = dVar2;
Sleep(1);
}
FUN_14000a950(L"+ Prepare Stop\n",_Src,puVar26,param_4);
plVar17 = local_420;
p_Var12 = local_430;
p_Var13 = local_448;
lVar22 = *(longlong *)(lVar28 + 0x58);
puVar15 = *(undefined8 **)(lVar22 + 0x40);
if (puVar15 != (undefined8 *)0x0) {
_Src = (char *)0x1;
(**(code **)*puVar15)();
}
*(undefined8 *)(lVar22 + 0x40) = 0;
CoUninitialize();
FUN_14000a810(L"# Msg Server Stoped... #\n",_Src,puVar26,param_4);
if (*(char *)(*(longlong *)(lVar28 + 0x58) + 0x30) == '\0') {
FUN_14000a950(L"Press any key... \n",_Src,puVar26,param_4);
getchar();
}
plVar20 = local_428;
if (plVar1 != (longlong *)0x0) {
plVar1 = plVar1 + 1;
*plVar1 = *plVar1 + -1;
plVar17 = local_468;
p_Var12 = (_Container_base0 *)local_460;
p_Var13 = local_450;
if (*plVar1 == 0) {
p_Var13 = (_Container_base0 *)*local_428;
local_448 = p_Var13;
if (p_Var13 != (_Container_base0 *)0x0) {
FUN_140009470((longlong *)p_Var13);
if (DAT_1401bcf28 != (void *)0x0) {
operator_delete__(DAT_1401bcf28);
DAT_1401bcf28 = (void *)0x0;
}
if (*(longlong *)p_Var13 != 0) {
std::_Container_base0::_Orphan_all(p_Var13);
operator_delete(*(void **)p_Var13);
}
*(undefined8 *)p_Var13 = 0;
*(undefined8 *)(p_Var13 + 8) = 0;
*(undefined8 *)(p_Var13 + 0x10) = 0;
operator_delete(p_Var13);
}
FUN_14006cc60(plVar20);
plVar17 = local_468;
p_Var12 = (_Container_base0 *)local_460;
p_Var13 = local_450;
}
}
p_Var8 = local_450;
if (p_Var13 != (_Container_base0 *)0x0) {
p_Var13 = p_Var13 + 8;
*(longlong *)p_Var13 = *(longlong *)p_Var13 + -1;
plVar17 = local_468;
p_Var12 = (_Container_base0 *)local_460;
if (*(longlong *)p_Var13 == 0) {
FUN_140006460((undefined8 *)local_450);
FUN_14006cc60(p_Var8);
plVar17 = local_468;
p_Var12 = (_Container_base0 *)local_460;
}
}
plVar20 = local_460;
if (p_Var12 != (_Container_base0 *)0x0) {
plVar1 = (longlong *)((longlong)p_Var12 + 8);
*plVar1 = *plVar1 + -1;
plVar17 = local_468;
if (*plVar1 == 0) {
FUN_140006460(local_460);
FUN_14006cc60(plVar20);
plVar17 = local_468;
}
}
plVar20 = local_468;
if (plVar17 != (longlong *)0x0) {
plVar17 = plVar17 + 1;
*plVar17 = *plVar17 + -1;
if (*plVar17 == 0) {
FUN_140006460(local_468);
FUN_14006cc60(plVar20);
}
}
FUN_140006360((longlong *)&local_458,_Src,puVar26,param_4);
}
else {
if (plVar1 != (longlong *)0x0) {
plVar1 = plVar1 + 1;
*plVar1 = *plVar1 + -1;
p_Var13 = local_458;
plVar17 = local_468;
plVar20 = local_460;
p_Var12 = local_450;
if (*plVar1 == 0) {
FUN_140006460(local_428);
FUN_14006cc60(plVar19);
p_Var13 = local_458;
plVar17 = local_468;
plVar20 = local_460;
p_Var12 = local_450;
}
}
p_Var8 = local_450;
if (p_Var12 != (_Container_base0 *)0x0) {
p_Var12 = p_Var12 + 8;
*(longlong *)p_Var12 = *(longlong *)p_Var12 + -1;
p_Var13 = local_458;
plVar17 = local_468;
plVar20 = local_460;
if (*(longlong *)p_Var12 == 0) {
FUN_140006460((undefined8 *)local_450);
FUN_14006cc60(p_Var8);
p_Var13 = local_458;
plVar17 = local_468;
plVar20 = local_460;
}
}
plVar1 = local_460;
if (plVar20 != (longlong *)0x0) {
plVar20 = plVar20 + 1;
*plVar20 = *plVar20 + -1;
p_Var13 = local_458;
plVar17 = local_468;
if (*plVar20 == 0) {
FUN_140006460(local_460);
FUN_14006cc60(plVar1);
p_Var13 = local_458;
plVar17 = local_468;
}
}
plVar20 = local_468;
if (plVar17 != (longlong *)0x0) {
plVar17 = plVar17 + 1;
*plVar17 = *plVar17 + -1;
p_Var13 = local_458;
if (*plVar17 == 0) {
FUN_140006460(local_468);
FUN_14006cc60(plVar20);
p_Var13 = local_458;
}
}
if (p_Var13 != (_Container_base0 *)0x0) {
local_398 = p_Var13;
FUN_14006b350((int *)p_Var13);
bVar7 = true;
local_390 = 1;
p_Var12 = p_Var13 + 0x40;
*(longlong *)p_Var12 = *(longlong *)p_Var12 + -1;
if (*(longlong *)p_Var12 == 0) {
FUN_14006b3e0((longlong)p_Var13);
bVar7 = false;
local_390 = 0;
local_448 = p_Var13;
if (*(undefined8 **)(p_Var13 + 0x38) != (undefined8 *)0x0) {
lVar22 = 1;
(**(code **)**(undefined8 **)(p_Var13 + 0x38))();
}
FUN_14006b400((undefined4 *)p_Var13,lVar22,param_3,param_4);
FUN_14006cc60(p_Var13);
}
if (bVar7) {
FUN_14006b3e0((longlong)p_Var13);
local_390 = 0;
}
}
}
plVar17 = local_440;
if (local_440 != (longlong *)0x0) {
plVar20 = local_440 + 1;
*plVar20 = *plVar20 + -1;
if (*plVar20 == 0) {
puVar15 = (undefined8 *)*local_440;
if (puVar15 != (undefined8 *)0x0) {
(**(code **)*puVar15)(puVar15,1);
}
FUN_14006cc60(plVar17);
}
}
return 0;
}

View file

@ -0,0 +1,23 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006300 FUN_140006300
* Pseudocode, not original source. */
void FUN_140006300(longlong *param_1)
{
longlong *plVar1;
undefined8 *puVar2;
if ((*param_1 != 0) &&
(*(longlong *)(*param_1 + 8) = *(longlong *)(*param_1 + 8) + -1,
*(longlong *)(*param_1 + 8) == 0)) {
plVar1 = (longlong *)*param_1;
puVar2 = (undefined8 *)*plVar1;
if (puVar2 != (undefined8 *)0x0) {
(**(code **)*puVar2)(puVar2,1);
}
FUN_14006cc60(plVar1);
}
return;
}

View file

@ -0,0 +1,34 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006360 FUN_140006360
* Pseudocode, not original source. */
void FUN_140006360(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
int *piVar1;
undefined4 *puVar2;
bool bVar3;
piVar1 = (int *)*param_1;
if (piVar1 != (int *)0x0) {
FUN_14006b350(piVar1);
bVar3 = true;
*(longlong *)(*param_1 + 0x40) = *(longlong *)(*param_1 + 0x40) + -1;
if (*(longlong *)(*param_1 + 0x40) == 0) {
FUN_14006b3e0((longlong)piVar1);
bVar3 = false;
puVar2 = (undefined4 *)*param_1;
if (*(undefined8 **)(puVar2 + 0xe) != (undefined8 *)0x0) {
param_2 = 1;
(**(code **)**(undefined8 **)(puVar2 + 0xe))();
}
FUN_14006b400(puVar2,param_2,param_3,param_4);
FUN_14006cc60(puVar2);
}
if (bVar3) {
FUN_14006b3e0((longlong)piVar1);
}
}
return;
}

View file

@ -0,0 +1,19 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006410 FUN_140006410
* Pseudocode, not original source. */
void FUN_140006410(longlong *param_1)
{
undefined8 *puVar1;
if ((*param_1 != 0) &&
(*(longlong *)(*param_1 + 8) = *(longlong *)(*param_1 + 8) + -1,
*(longlong *)(*param_1 + 8) == 0)) {
puVar1 = (undefined8 *)*param_1;
FUN_140006460(puVar1);
FUN_14006cc60(puVar1);
}
return;
}

View file

@ -0,0 +1,27 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006460 FUN_140006460
* Pseudocode, not original source. */
void FUN_140006460(undefined8 *param_1)
{
longlong *plVar1;
plVar1 = (longlong *)*param_1;
if (plVar1 != (longlong *)0x0) {
FUN_140009470(plVar1);
if (DAT_1401bcf28 != (void *)0x0) {
operator_delete__(DAT_1401bcf28);
DAT_1401bcf28 = (void *)0x0;
}
if ((void *)*plVar1 != (void *)0x0) {
operator_delete((void *)*plVar1);
}
*plVar1 = 0;
plVar1[1] = 0;
plVar1[2] = 0;
operator_delete(plVar1);
}
return;
}

View file

@ -0,0 +1,14 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400064e0 FUN_1400064e0
* Pseudocode, not original source. */
void FUN_1400064e0(undefined4 param_1)
{
undefined4 local_res8 [8];
local_res8[0] = param_1;
/* WARNING: Subroutine does not return */
_CxxThrowException(local_res8,(ThrowInfo *)&DAT_1401a9388);
}

View file

@ -0,0 +1,38 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006500 FUN_140006500
* Pseudocode, not original source. */
void FUN_140006500(undefined8 *param_1,undefined8 *param_2,size_t param_3)
{
undefined1 uVar1;
undefined8 uVar2;
undefined8 *puVar3;
ulonglong uVar4;
ulonglong uVar5;
if (param_3 < 0x21) {
uVar5 = (ulonglong)((uint)param_3 & 7);
for (uVar4 = param_3 >> 3; uVar4 != 0; uVar4 = uVar4 - 1) {
uVar2 = *param_2;
param_2 = param_2 + 1;
*param_1 = uVar2;
param_1 = param_1 + 1;
}
if (uVar5 != 0) {
puVar3 = param_2;
do {
uVar1 = *(undefined1 *)puVar3;
puVar3 = (undefined8 *)((longlong)puVar3 + 1);
uVar5 = uVar5 - 1;
*(undefined1 *)((longlong)param_1 + (-1 - (longlong)param_2) + (longlong)puVar3) = uVar1;
} while (uVar5 != 0);
return;
}
}
else {
memcpy(param_1,param_2,param_3);
}
return;
}

View file

@ -0,0 +1,26 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006560 FUN_140006560
* Pseudocode, not original source. */
exception *
FUN_140006560(exception *param_1,exception *param_2,undefined8 param_3,undefined8 param_4)
{
exception *peVar1;
exception *peVar2;
peVar1 = param_1;
peVar2 = param_2;
std::exception::exception(param_1,param_2);
*(undefined ***)param_1 = Proud::Exception::vftable;
*(undefined4 *)(param_1 + 0x18) = *(undefined4 *)(param_2 + 0x18);
*(undefined8 *)(param_1 + 0x20) = *(undefined8 *)(param_2 + 0x20);
*(undefined8 *)(param_1 + 0x28) = *(undefined8 *)(param_2 + 0x28);
*(undefined8 *)(param_1 + 0x30) = *(undefined8 *)(param_2 + 0x30);
*(undefined4 *)(param_1 + 0x38) = *(undefined4 *)(param_2 + 0x38);
FUN_14006cb70(peVar1,peVar2,param_3,param_4);
*(undefined **)(param_1 + 0x40) = PTR_DAT_1401ac008;
FUN_1400083a0((longlong *)(param_1 + 0x40),(longlong *)(param_2 + 0x40),param_3,param_4);
return param_1;
}

View file

@ -0,0 +1,14 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400065f0 FUN_1400065f0
* Pseudocode, not original source. */
exception * FUN_1400065f0(exception *param_1,uint param_2)
{
FUN_14006b6c0(param_1);
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,12 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006620 FUN_140006620
* Pseudocode, not original source. */
void FUN_140006620(undefined8 *param_1)
{
*param_1 = Proud::INetServerEvent::vftable;
FUN_1400780b0(param_1);
return;
}

View file

@ -0,0 +1,21 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006630 std::bad_alloc::`scalar_deleting_destructor'
* Pseudocode, not original source. */
/* Library Function - Single Match
public: virtual void * __ptr64 __cdecl std::bad_alloc::`scalar deleting destructor'(unsigned
int) __ptr64
Libraries: Visual Studio 2012 Release, Visual Studio 2015 Release */
void * __thiscall std::bad_alloc::_scalar_deleting_destructor_(bad_alloc *this,uint param_1)
{
*(undefined ***)this = Proud::INetServerEvent::vftable;
FUN_1400780b0((undefined8 *)this);
if ((param_1 & 1) != 0) {
operator_delete(this);
}
return this;
}

View file

@ -0,0 +1,10 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006670 FUN_140006670
* Pseudocode, not original source. */
undefined8 FUN_140006670(void)
{
return 15000;
}

View file

@ -0,0 +1,10 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006680 FUN_140006680
* Pseudocode, not original source. */
undefined8 FUN_140006680(void)
{
return 0x3aa1;
}

View file

@ -0,0 +1,69 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006690 FUN_140006690
* Pseudocode, not original source. */
/* WARNING: Removing unreachable block (ram,0x0001400067ea) */
/* WARNING: Removing unreachable block (ram,0x0001400067f3) */
/* WARNING: Removing unreachable block (ram,0x000140006814) */
/* WARNING: Removing unreachable block (ram,0x00014000681d) */
undefined8 *
FUN_140006690(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
ulonglong uVar1;
undefined8 *puVar2;
undefined1 uVar3;
undefined7 uVar4;
uVar3 = (undefined1)param_3;
uVar4 = (undefined7)((ulonglong)param_3 >> 8);
*param_1 = Proud::INetServerEvent::vftable;
puVar2 = param_1 + 1;
FUN_1400c15c0(puVar2);
param_1[1] = RNP::Servers2MsgStub::vftable;
param_1[5] = MagiAgentReceive::vftable;
*(undefined4 *)(param_1 + 6) = 0;
*(undefined2 *)((longlong)param_1 + 0x34) = 0;
*(undefined1 *)((longlong)param_1 + 0x36) = 0;
*(undefined4 *)(param_1 + 7) = 0;
param_1[8] = 0;
FUN_14006cb70(puVar2,param_2,CONCAT71(uVar4,uVar3),param_4);
param_1[9] = PTR_DAT_1401ac010;
param_1[10] = 0;
*(undefined4 *)(param_1 + 0xb) = 0;
*param_1 = MagiMsgNetwork::vftable;
param_1[1] = MagiMsgNetwork::vftable;
param_1[5] = MagiMsgNetwork::vftable;
puVar2 = param_1 + 0xc;
FUN_1400be340(puVar2);
*puVar2 = MSG2SERVERS_PROTOCOL::Proxy::vftable;
if (*(int *)((longlong)param_1 + 0x74) != 1) {
FUN_14006c280((wchar_t *)PTR_u_PIDL_compiler_is_incompatible_to_1401ad790);
}
*puVar2 = RNP::Msg2ServersProxy::vftable;
*(undefined1 *)(param_1 + 0xf) = 0;
*(undefined4 *)(param_1 + 0x15) = 1;
*(undefined1 *)(param_1 + 0x16) = 0;
param_1[0x20] = 0;
param_1[0x17] = 0;
param_1[0x18] = 0;
param_1[0x19] = 0;
*(undefined4 *)(param_1 + 0x1b) = 0x11;
param_1[0x1a] = 0;
*(undefined4 *)(param_1 + 0x1f) = 0;
*(undefined4 *)((longlong)param_1 + 0xdc) = 0x3f400000;
*(undefined4 *)(param_1 + 0x1c) = 0x3e800000;
*(undefined4 *)((longlong)param_1 + 0xe4) = 0x40100000;
param_1[0x1d] = 0x26;
param_1[0x1e] = 0;
param_1[0x21] = 0;
uVar1 = FUN_140079250();
FUN_14006b270((undefined4 *)(param_1 + 0x22),uVar1 & 0xffffffff,CONCAT71(uVar4,1),param_4);
param_1[0x10] = 0;
param_1[0x11] = 0;
param_1[0x12] = 0;
param_1[0x13] = 0;
return param_1;
}

View file

@ -0,0 +1,15 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006890 FUN_140006890
* Pseudocode, not original source. */
undefined8 *
FUN_140006890(undefined8 *param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4)
{
FUN_1400068c0(param_1,param_2,param_3,param_4);
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,36 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400068c0 FUN_1400068c0
* Pseudocode, not original source. */
void FUN_1400068c0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
longlong *plVar1;
*param_1 = MagiMsgNetwork::vftable;
param_1[1] = MagiMsgNetwork::vftable;
param_1[5] = MagiMsgNetwork::vftable;
plVar1 = param_1 + 8;
if ((undefined8 *)*plVar1 != (undefined8 *)0x0) {
param_2 = 1;
(*(code *)**(undefined8 **)*plVar1)();
}
*plVar1 = 0;
FUN_14006b400((undefined4 *)(param_1 + 0x22),param_2,param_3,param_4);
FUN_140008320((char *)(param_1 + 0x16));
param_1[0xc] = RNP::Msg2ServersProxy::vftable;
FUN_1400be370(param_1 + 0xc);
if ((undefined8 *)*plVar1 != (undefined8 *)0x0) {
param_2 = 1;
(*(code *)**(undefined8 **)*plVar1)();
}
*plVar1 = 0;
FUN_1400031e0(param_1 + 9,param_2,param_3,param_4);
param_1[5] = MagiAgentReceive::vftable;
param_1[1] = RNP::Servers2MsgStub::vftable;
FUN_1400c15f0(param_1 + 1);
*param_1 = Proud::INetServerEvent::vftable;
FUN_1400780b0(param_1);
return;
}

View file

@ -0,0 +1,35 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400069c0 FUN_1400069c0
* Pseudocode, not original source. */
void FUN_1400069c0(undefined8 param_1,int *param_2,undefined8 param_3,undefined8 param_4)
{
int *piVar1;
longlong *plVar2;
int *piVar3;
wchar_t *pwVar4;
undefined *puVar5;
undefined *local_res18 [2];
plVar2 = FUN_140078d30(param_2,(longlong *)local_res18,param_3,param_4);
puVar5 = (undefined *)*plVar2;
if ((undefined *)*plVar2 == (undefined *)0x0) {
puVar5 = PTR_DAT_1401ac010;
}
pwVar4 = L"OnError MagiMsgNetwork : %s";
FUN_14000ad20(L"OnError MagiMsgNetwork : %s",puVar5,param_3,param_4);
if (((local_res18[0] != (undefined *)0x0) && (local_res18[0] != PTR_DAT_1401ac010)) &&
(local_res18[0] + -8 != (undefined *)0x0)) {
piVar3 = (int *)FUN_14006cb70(pwVar4,puVar5,param_3,param_4);
FUN_14006b350(piVar3);
piVar1 = (int *)(local_res18[0] + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14006cc60(local_res18[0] + -8);
}
FUN_14006b3e0((longlong)piVar3);
}
return;
}

View file

@ -0,0 +1,35 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006a60 FUN_140006a60
* Pseudocode, not original source. */
void FUN_140006a60(undefined8 param_1,int *param_2,undefined8 param_3,undefined8 param_4)
{
int *piVar1;
longlong *plVar2;
int *piVar3;
wchar_t *pwVar4;
undefined *puVar5;
undefined *local_res18 [2];
plVar2 = FUN_140078d30(param_2,(longlong *)local_res18,param_3,param_4);
puVar5 = (undefined *)*plVar2;
if ((undefined *)*plVar2 == (undefined *)0x0) {
puVar5 = PTR_DAT_1401ac010;
}
pwVar4 = L"OnWarning MagiMsgNetwork : %s";
FUN_14000ad20(L"OnWarning MagiMsgNetwork : %s",puVar5,param_3,param_4);
if (((local_res18[0] != (undefined *)0x0) && (local_res18[0] != PTR_DAT_1401ac010)) &&
(local_res18[0] + -8 != (undefined *)0x0)) {
piVar3 = (int *)FUN_14006cb70(pwVar4,puVar5,param_3,param_4);
FUN_14006b350(piVar3);
piVar1 = (int *)(local_res18[0] + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14006cc60(local_res18[0] + -8);
}
FUN_14006b3e0((longlong)piVar3);
}
return;
}

View file

@ -0,0 +1,14 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006b00 FUN_140006b00
* Pseudocode, not original source. */
void FUN_140006b00(undefined8 param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 uVar1;
uVar1 = (**(code **)(*param_2 + 8))(param_2);
FUN_14000abd0("OnException MagiMsgNetwork : %s",uVar1,param_3,param_4);
return;
}

View file

@ -0,0 +1,33 @@
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006b20 FUN_140006b20
* Pseudocode, not original source. */
void FUN_140006b20(longlong param_1,undefined8 param_2,undefined8 param_3,longlong param_4)
{
longlong *plVar1;
short *psVar2;
longlong lVar3;
plVar1 = FUN_140098630(param_1,param_2,param_3,param_4);
*(longlong **)(param_1 + 0x40) = plVar1;
lVar3 = *plVar1;
(**(code **)(lVar3 + 0x10))(plVar1,param_1 + 8);
(**(code **)(**(longlong **)(param_1 + 0x40) + 8))(*(longlong **)(param_1 + 0x40),param_1 + 0x60);
(**(code **)(**(longlong **)(param_1 + 0x40) + 0x130))(*(longlong **)(param_1 + 0x40),param_1);
psVar2 = (short *)(DAT_1401bd038 + 0x30);
if (7 < *(ulonglong *)(DAT_1401bd038 + 0x48)) {
psVar2 = *(short **)psVar2;
}
FUN_140008030((longlong *)(param_1 + 0x48),psVar2,lVar3,param_4);
*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(DAT_1401bd038 + 0x80);
if ((DAT_1401bd4f4 & 1) == 0) {
DAT_1401bd4f4 = DAT_1401bd4f4 | 1;
FUN_14011b100();
atexit((_func_5014 *)&LAB_14012f3d0);
}
FUN_140063730((undefined8 *)(param_1 + 0x40),(ulonglong)(DAT_1401bd465 != '\0'),
(ulonglong)(DAT_1401bd465 != '\0'),param_4);
return;
}

Some files were not shown because too many files have changed in this diff Show more