add agent manager release decomp

This commit is contained in:
Benjamin Palko 2026-10-15 09:58:24 -04:00
parent 31ff800b2a
commit fac6117145
7019 changed files with 254032 additions and 5 deletions

View file

@ -0,0 +1,15 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* 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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* 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_14016f5a0 ^ (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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* 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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* 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_14016f5a0 ^ (ulonglong)auStack_248;
uVar2 = (ulonglong)*(uint *)(param_1 + 0x450);
lVar1 = param_1 + 0x3c;
if (param_2 != 0) {
lVar1 = param_2;
}
FUN_140001b20((wchar_t *)(param_1 + 0x246),L"%s [%d]",lVar1,uVar2);
local_228 = L'\0';
memset(local_226,0,0x206);
FUN_140001af0(&local_228,L"%s",(wchar_t *)(param_1 + 0x246),uVar2);
SetConsoleTitleW(&local_228);
return;
}

View file

@ -0,0 +1,15 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001300 FUN_140001300
* Pseudocode, not original source. */
undefined8 * FUN_140001300(undefined8 *param_1,byte param_2)
{
DAT_14017c8b0 = 0;
*param_1 = MBISingleton<CConsoleControl>::vftable;
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,13 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001340 FUN_140001340
* Pseudocode, not original source. */
void FUN_140001340(undefined8 param_1,undefined8 param_2,undefined8 param_3)
{
FUN_1400ef7a0(DAT_14017c8a8,L"Invalid parameter detected in function %s. File: %s Line: %d\n",
param_2,param_3);
FUN_1400ef7a0(DAT_14017c8a8,L"Expression: %s\n",param_1,param_3);
return;
}

View file

@ -0,0 +1,89 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001390 FUN_140001390
* Pseudocode, not original source. */
/* WARNING: Function: __chkstk replaced with injection: alloca_probe */
undefined8 FUN_140001390(int param_1,longlong param_2,undefined8 param_3,longlong **param_4)
{
short sVar1;
undefined4 uVar2;
DWORD DVar3;
_invalid_parameter_handler _Handler;
undefined8 *puVar4;
ulonglong uVar5;
PHANDLE ProcessHeaps;
LPCWSTR pWVar6;
short *psVar7;
HANDLE *ppvVar8;
undefined8 **HeapInformation;
undefined8 *local_res18;
undefined8 local_res20;
HANDLE local_2028;
undefined1 local_2020 [8192];
undefined8 uStack_20;
uStack_20 = 0x14000139e;
DAT_14017ce74 = timeGetTime();
FUN_14001d810(&local_res20);
uVar2 = FUN_14001d850(&local_res20);
if ((char)uVar2 != '\0') {
FUN_14001d8c0();
FUN_140001580();
FUN_140001060((longlong)DAT_14017c8b0);
if (1 < param_1) {
uVar5 = 0xffffffffffffffff;
psVar7 = *(short **)(param_2 + 8);
do {
if (uVar5 == 0) break;
uVar5 = uVar5 - 1;
sVar1 = *psVar7;
psVar7 = psVar7 + 1;
} while (sVar1 != 0);
FUN_140001710((ulonglong *)&DAT_140175020,*(short **)(param_2 + 8),~uVar5 - 1);
}
puVar4 = (undefined8 *)0x0;
local_2028 = (HANDLE)0x0;
HeapInformation = (undefined8 **)0x2000;
memset(local_2020,0,0x2000);
ProcessHeaps = &local_2028;
DVar3 = GetProcessHeaps(0x400,ProcessHeaps);
if (DVar3 != 0) {
ppvVar8 = &local_2028;
uVar5 = (ulonglong)DVar3;
do {
local_res18 = (undefined8 *)CONCAT44(local_res18._4_4_,2);
param_4 = (longlong **)0x4;
HeapInformation = &local_res18;
ProcessHeaps = (PHANDLE)0x0;
HeapSetInformation(*ppvVar8,HeapCompatibilityInformation,HeapInformation,4);
ppvVar8 = ppvVar8 + 1;
uVar5 = uVar5 - 1;
} while (uVar5 != 0);
}
_Handler = _set_invalid_parameter_handler(FUN_140001340);
local_res18 = operator_new(0x494a8);
if (local_res18 != (undefined8 *)0x0) {
puVar4 = FUN_1400022b0(local_res18,ProcessHeaps,HeapInformation,param_4);
}
pWVar6 = (LPCWSTR)&DAT_140175020;
if (7 < DAT_140175038) {
pWVar6 = DAT_140175020;
}
DAT_14017c8b8 = puVar4;
FUN_140002400(pWVar6,ProcessHeaps,HeapInformation,param_4);
FUN_140002790((longlong)DAT_14017c8b8,ProcessHeaps,HeapInformation,param_4);
FUN_140002670((longlong)DAT_14017c8b8);
if (DAT_14017c8b8 != (undefined8 *)0x0) {
(**(code **)*DAT_14017c8b8)(DAT_14017c8b8,1);
}
if (DAT_14017c8b0 != (undefined8 *)0x0) {
(**(code **)*DAT_14017c8b0)(DAT_14017c8b0,1);
}
_set_invalid_parameter_handler(_Handler);
}
FUN_14001d820(&local_res20);
return 0;
}

View file

@ -0,0 +1,16 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001550 FUN_140001550
* Pseudocode, not original source. */
void FUN_140001550(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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001580 FUN_140001580
* Pseudocode, not original source. */
void FUN_140001580(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_14017c8b0 = puVar1;
*(undefined2 *)((longlong)puVar1 + 0x454) = 0x17;
return;
}
DAT_14017c8b0 = (undefined8 *)0x0;
return;
}

View file

@ -0,0 +1,48 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001630 FUN_140001630
* Pseudocode, not original source. */
longlong * FUN_140001630(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_140001800(param_1,uVar4 + param_3,0xffffffffffffffff);
FUN_140001800(param_1,0,param_3);
}
else {
cVar2 = FUN_1400018a0(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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001710 FUN_140001710
* Pseudocode, not original source. */
ulonglong * FUN_140001710(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_140001630((longlong *)param_1,(longlong *)param_1,
(longlong)param_2 - (longlong)puVar3 >> 1,param_3);
return puVar3;
}
}
}
cVar2 = FUN_1400018a0(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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001800 FUN_140001800
* Pseudocode, not original source. */
undefined8 * FUN_140001800(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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400018a0 FUN_1400018a0
* Pseudocode, not original source. */
undefined1 FUN_1400018a0(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_140001920(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,55 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001920 FUN_140001920
* Pseudocode, not original source. */
void FUN_140001920(undefined8 *param_1,ulonglong param_2,longlong param_3)
{
ulonglong uVar1;
undefined8 *_Dst;
ulonglong uVar2;
undefined8 *_Src;
ulonglong uVar3;
char *local_res20;
undefined **local_40 [3];
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;
}
}
uVar3 = param_2 + 1;
_Dst = (undefined8 *)0x0;
if ((uVar3 != 0) &&
((0x7fffffffffffffff < uVar3 || (_Dst = operator_new(uVar3 * 2), _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_14016c158);
}
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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001a80 FUN_140001a80
* Pseudocode, not original source. */
void * FUN_140001a80(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_14016c158);
}

View file

@ -0,0 +1,16 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001af0 FUN_140001af0
* Pseudocode, not original source. */
void FUN_140001af0(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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001b20 FUN_140001b20
* Pseudocode, not original source. */
void FUN_140001b20(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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001b50 FUN_140001b50
* Pseudocode, not original source. */
exception * FUN_140001b50(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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001b80 FUN_140001b80
* Pseudocode, not original source. */
undefined8 * FUN_140001b80(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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001be0 FUN_140001be0
* Pseudocode, not original source. */
void FUN_140001be0(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,12 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001c20 FUN_140001c20
* Pseudocode, not original source. */
void FUN_140001c20(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
FUN_140049e40(param_1 + 4);
FUN_140002190(param_1,param_2,param_3,param_4);
return;
}

View file

@ -0,0 +1,46 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001c50 FUN_140001c50
* Pseudocode, not original source. */
longlong * FUN_140001c50(longlong *param_1,undefined8 *param_2)
{
ulonglong uVar1;
code *pcVar2;
char cVar3;
longlong *plVar4;
ulonglong uVar5;
uVar5 = 0xffffffffffffffff;
if (param_2[2] != 0xffffffffffffffff) {
uVar5 = param_2[2];
}
if (uVar5 < -param_1[2] - 1U) {
if (uVar5 != 0) {
uVar1 = param_1[2] + uVar5;
cVar3 = FUN_1400018a0(param_1,uVar1);
if (cVar3 != '\0') {
if (7 < (ulonglong)param_2[3]) {
param_2 = (undefined8 *)*param_2;
}
plVar4 = param_1;
if (7 < (ulonglong)param_1[3]) {
plVar4 = (longlong *)*param_1;
}
memcpy((void *)((longlong)plVar4 + param_1[2] * 2),param_2,uVar5 * 2);
param_1[2] = uVar1;
plVar4 = param_1;
if (7 < (ulonglong)param_1[3]) {
plVar4 = (longlong *)*param_1;
}
*(undefined2 *)((longlong)plVar4 + uVar1 * 2) = 0;
}
}
return param_1;
}
std::_Xlength_error("string too long");
pcVar2 = (code *)swi(3);
plVar4 = (longlong *)(*pcVar2)();
return plVar4;
}

View file

@ -0,0 +1,76 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001d10 FUN_140001d10
* Pseudocode, not original source. */
void FUN_140001d10(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_14016f010;
puVar1 = (undefined *)*param_1;
if ((undefined *)*param_1 == (undefined *)0x0) {
puVar1 = PTR_DAT_14016f010;
}
*param_1 = (longlong)puVar1;
if (param_2 < 0) {
/* WARNING: Subroutine does not return */
FUN_14003dec0();
}
if (param_2 == 0) {
FUN_140002190(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_14003e840((longlong)param_2 * 2 + 10);
if (piVar2 != (int *)0x0) {
*piVar2 = 0;
piVar2[1] = 1;
}
puVar1 = PTR_DAT_14016f010;
*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_14003e650(piVar2 + 2,puVar4,param_2);
FUN_140002190(param_1,puVar4,uVar5,in_R9);
*param_1 = (longlong)(piVar2 + 2);
}
return;
}

View file

@ -0,0 +1,73 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001df0 FUN_140001df0
* Pseudocode, not original source. */
void FUN_140001df0(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_14016f010;
}
else if ((puVar7 != PTR_DAT_14016f010) && ((int *)(puVar7 + -8) != (int *)0x0)) {
if (*(int *)(puVar7 + -4) < 2) {
return;
}
iVar1 = *(int *)(puVar7 + -8);
if (iVar1 < 0) {
/* WARNING: Subroutine does not return */
FUN_14003dec0();
}
puVar4 = (uint *)FUN_14003e840((longlong)iVar1 * 2 + 10);
uVar5 = 0;
if (puVar4 != (uint *)0x0) {
*puVar4 = 0;
puVar4[1] = 1;
}
puVar2 = PTR_DAT_14016f010;
puVar7 = (undefined *)*param_1;
if (puVar7 == (undefined *)0x0) {
uVar6 = 0;
}
else {
uVar6 = uVar5;
if (puVar7 != PTR_DAT_14016f010) {
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_14003e650(puVar4 + 2,puVar7,uVar5);
FUN_140002190(param_1,puVar7,uVar8,in_R9);
*param_1 = (longlong)(puVar4 + 2);
return;
}
puVar3 = (undefined8 *)FUN_14003e840(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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001ee0 FUN_140001ee0
* Pseudocode, not original source. */
undefined * FUN_140001ee0(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_14016f010)) {
iVar3 = *(int *)(puVar2 + -8);
}
if (((param_2 <= iVar3) && (param_2 = 0, puVar2 != (undefined *)0x0)) &&
(puVar2 != PTR_DAT_14016f010)) {
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_14016f010)) {
iVar1 = *(int *)(puVar2 + -8);
}
if (iVar1 < iVar3) {
FUN_140001d10(param_1,iVar3);
}
FUN_140001df0(param_1);
puVar2 = (undefined *)*param_1;
if ((undefined *)*param_1 == (undefined *)0x0) {
puVar2 = PTR_DAT_14016f010;
}
return puVar2;
}

View file

@ -0,0 +1,34 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001f60 FUN_140001f60
* Pseudocode, not original source. */
void FUN_140001f60(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_14016f010)) {
iVar2 = *(int *)(puVar1 + -8);
}
if ((iVar2 <= iVar3) && (iVar3 = 0, puVar1 != (undefined *)0x0)) {
if (puVar1 == PTR_DAT_14016f010) {
return;
}
iVar3 = *(int *)(puVar1 + -8);
}
if (((puVar1 != PTR_DAT_14016f010) && (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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140001fc0 FUN_140001fc0
* Pseudocode, not original source. */
void FUN_140001fc0(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_14016f010;
}
iVar2 = FUN_14003e620(psVar4);
iVar3 = 0;
if (0 < iVar2) {
iVar3 = iVar2;
}
puVar1 = (undefined *)*param_1;
iVar2 = 0;
if ((puVar1 != (undefined *)0x0) && (iVar2 = 0, puVar1 != PTR_DAT_14016f010)) {
iVar2 = *(int *)(puVar1 + -8);
}
if ((iVar2 <= iVar3) && (iVar3 = 0, puVar1 != (undefined *)0x0)) {
if (puVar1 == PTR_DAT_14016f010) {
return;
}
iVar3 = *(int *)(puVar1 + -8);
}
if (((puVar1 != PTR_DAT_14016f010) && (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 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002040 FUN_140002040
* Pseudocode, not original source. */
longlong * FUN_140002040(longlong *param_1,short *param_2,undefined8 param_3,undefined8 param_4)
{
int iVar1;
undefined *puVar2;
int iVar3;
int iVar4;
FUN_14003e7c0(param_1,param_2,param_3,param_4);
*param_1 = (longlong)PTR_DAT_14016f010;
iVar1 = FUN_14003e620(param_2);
iVar3 = (int)param_3;
iVar4 = iVar1;
if ((0 < iVar3) && (iVar4 = iVar3, iVar1 < iVar3)) {
iVar4 = iVar1;
}
puVar2 = FUN_140001ee0(param_1,iVar4);
FUN_14003e650(puVar2,param_2,iVar4);
FUN_140001fc0(param_1);
return param_1;
}

View file

@ -0,0 +1,32 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400020c0 FUN_1400020c0
* Pseudocode, not original source. */
void FUN_1400020c0(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_14016f010;
}
*param_1 = (longlong)puVar1;
if ((undefined *)*param_2 != puVar1) {
plVar3 = param_2;
piVar2 = (int *)FUN_14003e7c0(param_1,param_2,param_3,param_4);
FUN_14003d040(piVar2);
FUN_140002190(param_1,plVar3,param_3,param_4);
puVar1 = (undefined *)*param_2;
*param_1 = (longlong)puVar1;
if (((puVar1 != PTR_DAT_14016f010) && (puVar1 != (undefined *)0x0)) &&
(puVar1 != (undefined *)0x8)) {
*(int *)(puVar1 + -4) = *(int *)(puVar1 + -4) + 1;
}
FUN_14003d0d0((longlong)piVar2);
}
return;
}

View file

@ -0,0 +1,14 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002160 FUN_140002160
* Pseudocode, not original source. */
void FUN_140002160(longlong *param_1)
{
if ((char)param_1[1] != '\0') {
FUN_14003d0d0(*param_1);
*(undefined1 *)(param_1 + 1) = 0;
}
return;
}

View file

@ -0,0 +1,30 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002190 FUN_140002190
* Pseudocode, not original source. */
void FUN_140002190(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_14016f010)) ||
(puVar2 + -8 == (undefined *)0x0)) {
*param_1 = (longlong)PTR_DAT_14016f010;
}
else {
piVar3 = (int *)FUN_14003e7c0(puVar2,param_2,param_3,param_4);
FUN_14003d040(piVar3);
piVar1 = (int *)(puVar2 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(puVar2 + -8);
}
FUN_14003d0d0((longlong)piVar3);
*param_1 = (longlong)PTR_DAT_14016f010;
}
return;
}

View file

@ -0,0 +1,12 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002230 FUN_140002230
* Pseudocode, not original source. */
void FUN_140002230(undefined8 *param_1)
{
*param_1 = Proud::INetClientEvent::vftable;
FUN_140049b90(param_1);
return;
}

View file

@ -0,0 +1,14 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002240 FUN_140002240
* Pseudocode, not original source. */
undefined8 * FUN_140002240(undefined8 *param_1,uint param_2)
{
FUN_140049b90(param_1);
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,21 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002270 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_140049b90((undefined8 *)this);
if ((param_1 & 1) != 0) {
operator_delete(this);
}
return this;
}

View file

@ -0,0 +1,33 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400022b0 FUN_1400022b0
* Pseudocode, not original source. */
undefined8 *
FUN_1400022b0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
ulonglong uVar1;
undefined7 uVar2;
uVar2 = (undefined7)((ulonglong)param_3 >> 8);
param_1[1] = MagiServerBase::vftable;
*(undefined4 *)(param_1 + 2) = 0;
param_1[3] = 0;
param_1[4] = 0;
param_1[5] = 0;
param_1[7] = 0;
param_1[8] = 0;
*param_1 = MagiAgentManagerServer::vftable;
param_1[1] = MagiAgentManagerServer::vftable;
*(undefined4 *)(param_1 + 0x9285) = 0;
*(undefined1 *)(param_1 + 0x9288) = 1;
*(undefined4 *)((longlong)param_1 + 0x49444) = 0;
param_1[0x928a] = 0;
param_1[0x928b] = 0;
param_1[0x928c] = 0;
param_1[0x928d] = 0;
uVar1 = FUN_140094860();
FUN_14003cf60((undefined4 *)(param_1 + 0x928e),uVar1 & 0xffffffff,CONCAT71(uVar2,1),param_4);
return param_1;
}

View file

@ -0,0 +1,15 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002350 FUN_140002350
* Pseudocode, not original source. */
undefined8 *
FUN_140002350(undefined8 *param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4)
{
FUN_140002380(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,22 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002380 FUN_140002380
* Pseudocode, not original source. */
void FUN_140002380(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
*param_1 = MagiAgentManagerServer::vftable;
param_1[1] = MagiAgentManagerServer::vftable;
FUN_14003d110((undefined4 *)(param_1 + 0x928e),param_2,param_3,param_4);
param_1[1] = MagiServerBase::vftable;
if ((void *)param_1[3] != (void *)0x0) {
operator_delete((void *)param_1[3]);
}
param_1[3] = 0;
param_1[4] = 0;
param_1[5] = 0;
*param_1 = MBISingleton<MagiAgentManagerServer>::vftable;
DAT_14017c8b8 = 0;
return;
}

View file

@ -0,0 +1,97 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002400 FUN_140002400
* Pseudocode, not original source. */
void FUN_140002400(LPCWSTR param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
longlong lVar1;
char *pcVar2;
undefined8 *puVar3;
undefined8 *puVar4;
undefined8 uVar5;
ulonglong uVar6;
wchar_t *pwVar7;
if ((DAT_14017d37c & 1) == 0) {
DAT_14017d37c = DAT_14017d37c | 1;
FUN_1400ef080();
atexit((_func_5014 *)&LAB_140104340);
if ((DAT_14017d37c & 1) == 0) {
DAT_14017d37c = DAT_14017d37c | 1;
FUN_1400ef080();
atexit((_func_5014 *)&LAB_140104340);
}
}
if ((DAT_14017d140 != 200) && (DAT_14017d140 != 100)) {
if ((DAT_14017d37c & 1) == 0) {
DAT_14017d37c = DAT_14017d37c | 1;
FUN_1400ef080();
atexit((_func_5014 *)&LAB_140104340);
}
if (DAT_14017d140 != 1000) goto LAB_1400024b1;
}
setlocale(0,"kor");
LAB_1400024b1:
pcVar2 = setlocale(0,(char *)0x0);
printf("Locale is: %s\n");
puVar3 = operator_new(8);
puVar4 = (undefined8 *)0x0;
if (puVar3 != (undefined8 *)0x0) {
puVar4 = FUN_14003acf0(puVar3,pcVar2,param_3,param_4);
}
lVar1 = DAT_14017cf28;
DAT_14017cf30 = puVar4;
*(undefined1 *)(DAT_14017cf28 + 0x1e8) = 0x15;
FUN_14002fc00(lVar1,param_1,param_3,param_4);
uVar5 = FUN_140032f70(DAT_14017cf28,param_1,param_3,param_4);
if ((char)uVar5 == '\0') {
printf("DB PASE ERROR !!! \n");
}
_wmkdir(L"Log");
puVar3 = operator_new(0xe8);
puVar4 = (undefined8 *)0x0;
if (puVar3 != (undefined8 *)0x0) {
puVar4 = FUN_1400ef640(puVar3);
}
DAT_14017c8a8 = puVar4;
FUN_1400ef910((longlong)puVar4,param_1,param_3,param_4);
puVar4 = DAT_14017c8a8;
EnterCriticalSection(DAT_14017cf60);
uVar5 = 0x19;
pwVar7 = L"Log\\Protocol_AgentManager";
FUN_140001710(puVar4 + 3,L"Log\\Protocol_AgentManager",0x19);
LeaveCriticalSection(DAT_14017cf60);
FUN_1400efa40((longlong)DAT_14017c8a8);
puVar3 = operator_new(0x98);
puVar4 = (undefined8 *)0x0;
if (puVar3 != (undefined8 *)0x0) {
puVar4 = FUN_1400ed450(puVar3,pwVar7,uVar5,param_4);
}
DAT_14017cf18 = puVar4;
DAT_14017cf40 = operator_new(8);
if (DAT_14017cf40 != (undefined8 *)0x0) {
*DAT_14017cf40 = MagiXmlFormat::vftable;
}
puVar3 = operator_new(0xb0);
puVar4 = (undefined8 *)0x0;
if (puVar3 != (undefined8 *)0x0) {
puVar4 = FUN_14000da20(puVar3,pwVar7,uVar5,param_4);
}
DAT_14017cf38 = puVar4;
puVar4 = operator_new(0x80);
if (puVar4 == (undefined8 *)0x0) {
puVar4 = (undefined8 *)0x0;
}
else {
*puVar4 = MagiStatistics::vftable;
FUN_14000c1f0(puVar4 + 1);
uVar6 = FUN_140094860();
uVar5 = CONCAT71((int7)((ulonglong)uVar5 >> 8),1);
FUN_14003cf60((undefined4 *)(puVar4 + 9),uVar6 & 0xffffffff,uVar5,param_4);
}
DAT_14017cf48 = puVar4;
FUN_1400ef250((longlong)DAT_14017c8a8,L"\t # INIT # \n",uVar5,param_4);
return;
}

View file

@ -0,0 +1,54 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002670 FUN_140002670
* Pseudocode, not original source. */
void FUN_140002670(longlong param_1)
{
FILE *_File;
undefined8 *puVar1;
longlong lVar2;
puVar1 = *(undefined8 **)(param_1 + 0x49430);
if (puVar1 != (undefined8 *)0x0) {
(**(code **)*puVar1)(puVar1,1);
}
puVar1 = DAT_14017cf48;
*(undefined8 *)(param_1 + 0x49430) = 0;
if (puVar1 != (undefined8 *)0x0) {
(**(code **)*puVar1)(puVar1,1);
}
if (DAT_14017cf38 != (undefined8 *)0x0) {
(**(code **)*DAT_14017cf38)(DAT_14017cf38,1);
}
if (DAT_14017cf40 != (undefined8 *)0x0) {
(**(code **)*DAT_14017cf40)(DAT_14017cf40,1);
}
if (DAT_14017cf18 != (undefined8 *)0x0) {
(**(code **)*DAT_14017cf18)(DAT_14017cf18,1);
}
puVar1 = DAT_14017c8a8;
EnterCriticalSection(DAT_14017cf60);
_File = (FILE *)puVar1[0x17];
if (_File != (FILE *)0x0) {
fclose(_File);
}
puVar1 = puVar1 + 0x19;
lVar2 = 4;
do {
if ((FILE *)*puVar1 != (FILE *)0x0) {
fclose((FILE *)*puVar1);
}
puVar1 = puVar1 + 1;
lVar2 = lVar2 + -1;
} while (lVar2 != 0);
LeaveCriticalSection(DAT_14017cf60);
if (DAT_14017c8a8 != (undefined8 *)0x0) {
(**(code **)*DAT_14017c8a8)(DAT_14017c8a8,1);
}
if (DAT_14017cf30 != (undefined8 *)0x0) {
(**(code **)*DAT_14017cf30)(DAT_14017cf30,1);
}
return;
}

View file

@ -0,0 +1,520 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140002790 FUN_140002790
* 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 */
undefined8 FUN_140002790(longlong param_1,undefined8 param_2,undefined8 param_3,longlong **param_4)
{
double dVar1;
char cVar2;
undefined4 *puVar3;
undefined1 auVar4 [16];
bool bVar5;
longlong *plVar6;
BOOL BVar7;
DWORD DVar8;
undefined8 *puVar9;
undefined8 *puVar10;
longlong *plVar11;
longlong lVar12;
wchar_t *pwVar13;
LPCSTR pCVar14;
short *psVar15;
longlong *plVar16;
longlong *plVar17;
undefined8 uVar18;
undefined *puVar19;
void **ppvVar20;
undefined8 *puVar21;
undefined8 *puVar22;
undefined8 *puVar23;
longlong lVar24;
undefined4 uVar25;
undefined4 uVar26;
undefined4 uVar27;
undefined4 uVar28;
undefined4 uVar29;
undefined4 uVar30;
undefined1 auStack_4d8 [32];
longlong *local_4b8;
longlong *local_4b0;
undefined8 *local_4a8;
longlong *local_4a0;
undefined8 *local_498;
undefined8 *local_490;
undefined8 *local_488;
undefined4 local_480 [2];
undefined8 *local_478;
undefined8 *local_470;
undefined8 *local_468;
LARGE_INTEGER local_460;
undefined8 local_458;
undefined2 local_448;
undefined1 local_446 [158];
undefined1 local_3a8 [160];
undefined4 local_308;
uint uStack_304;
undefined2 local_300;
undefined6 uStack_2fe;
undefined8 local_2f0;
ulonglong local_2e8;
WCHAR local_2d8;
undefined6 uStack_2d6;
undefined8 local_2c8;
ulonglong local_2c0;
short *local_2a8;
short local_2a0 [132];
short *local_198;
short local_190 [132];
ulonglong local_88;
local_458 = 0xfffffffffffffffe;
local_88 = DAT_14016f5a0 ^ (ulonglong)auStack_4d8;
pwVar13 = L"\t # PREPARE # \n";
FUN_1400ef250(DAT_14017c8a8,L"\t # PREPARE # \n",param_3,param_4);
CoInitialize((LPVOID)0x0);
local_460 = (LARGE_INTEGER)operator_new(0xd8);
puVar22 = (undefined8 *)0x0;
puVar9 = puVar22;
if ((undefined8 *)local_460.QuadPart != (undefined8 *)0x0) {
puVar9 = FUN_140005280((undefined8 *)local_460,pwVar13,param_3,param_4);
}
if (puVar9 == (undefined8 *)0x0) {
local_4b8 = (longlong *)0x0;
}
else {
local_4b8 = (longlong *)FUN_14003e840(0x10);
local_4b8[1] = 1;
*local_4b8 = (longlong)puVar9;
}
plVar16 = local_4b8;
local_498 = operator_new(0x118);
puVar9 = puVar22;
if (local_498 != (undefined8 *)0x0) {
puVar9 = FUN_1400060f0(local_498,pwVar13,param_3,param_4);
}
if (puVar9 == (undefined8 *)0x0) {
local_4b0 = (longlong *)0x0;
}
else {
local_4b0 = (longlong *)FUN_14003e840(0x10);
local_4b0[1] = 1;
*local_4b0 = (longlong)puVar9;
}
plVar17 = local_4b0;
local_498 = operator_new(0xa0);
puVar9 = puVar22;
if (local_498 != (undefined8 *)0x0) {
puVar9 = FUN_140007010(local_498,pwVar13,param_3,param_4);
}
if (puVar9 == (undefined8 *)0x0) {
local_4a8 = (undefined8 *)0x0;
}
else {
local_4a8 = (undefined8 *)FUN_14003e840(0x10);
local_4a8[1] = 1;
*local_4a8 = puVar9;
}
puVar9 = local_4a8;
local_468 = local_4a8;
puVar10 = operator_new(0x50);
puVar21 = puVar22;
local_498 = puVar10;
if (puVar10 != (undefined8 *)0x0) {
FUN_1400721c0(puVar10);
FUN_140073a40((void **)(puVar10 + 1));
puVar10[3] = 0;
puVar10[4] = 0;
puVar10[8] = 7;
puVar10[7] = 0;
*(undefined2 *)(puVar10 + 5) = 0;
puVar21 = puVar10;
}
if (puVar21 == (undefined8 *)0x0) {
local_490 = (undefined8 *)0x0;
}
else {
local_490 = (undefined8 *)FUN_14003e840(0x10);
local_490[1] = 1;
*local_490 = puVar21;
}
puVar21 = local_490;
local_498 = local_490;
puVar10 = operator_new(0x50);
local_488 = puVar10;
if (puVar10 != (undefined8 *)0x0) {
FUN_1400721c0(puVar10);
FUN_140073a40((void **)(puVar10 + 1));
puVar10[3] = 0;
puVar10[4] = 0;
puVar10[8] = 7;
puVar10[7] = 0;
*(undefined2 *)(puVar10 + 5) = 0;
puVar22 = puVar10;
}
if (puVar22 == (undefined8 *)0x0) {
local_488 = (undefined8 *)0x0;
}
else {
local_488 = (undefined8 *)FUN_14003e840(0x10);
local_488[1] = 1;
*local_488 = puVar22;
}
puVar22 = local_488;
puVar23 = (undefined8 *)0x0;
puVar10 = puVar23;
if (plVar16 != (longlong *)0x0) {
puVar10 = (undefined8 *)*plVar16;
}
*(undefined8 **)(param_1 + 0x49450) = puVar10;
puVar10 = puVar23;
if (plVar17 != (longlong *)0x0) {
puVar10 = (undefined8 *)*plVar17;
}
*(undefined8 **)(param_1 + 0x49458) = puVar10;
puVar10 = puVar23;
if (puVar9 != (undefined8 *)0x0) {
puVar10 = (undefined8 *)*puVar9;
}
*(undefined8 **)(param_1 + 0x49448) = puVar10;
puVar10 = puVar23;
if (puVar21 != (undefined8 *)0x0) {
puVar10 = (undefined8 *)*puVar21;
}
*(undefined8 **)(param_1 + 0x49460) = puVar10;
puVar10 = puVar23;
if (local_488 != (undefined8 *)0x0) {
puVar10 = (undefined8 *)*local_488;
}
*(undefined8 **)(param_1 + 0x49468) = puVar10;
pCVar14 = (LPCSTR)(DAT_14017cf28 + 0x90);
if (0xf < *(ulonglong *)(DAT_14017cf28 + 0xa8)) {
pCVar14 = *(LPCSTR *)pCVar14;
}
local_2a8 = local_2a0;
uVar18 = 3;
FUN_140005110((longlong *)&local_2a8,pCVar14,3);
FUN_140007430(*(longlong *)(param_1 + 0x49460),local_2a8,uVar18,(short *)param_4);
if (local_2a8 != local_2a0) {
free(local_2a8);
}
pCVar14 = (LPCSTR)(DAT_14017cf28 + 0x108);
if (0xf < *(ulonglong *)(DAT_14017cf28 + 0x120)) {
pCVar14 = *(LPCSTR *)pCVar14;
}
local_198 = local_190;
puVar19 = (undefined *)0x3;
FUN_140005110((longlong *)&local_198,pCVar14,3);
psVar15 = local_198;
FUN_140007430(*(longlong *)(param_1 + 0x49468),local_198,puVar19,(short *)param_4);
if (local_198 != local_190) {
free(local_198);
}
local_480[0] = 3;
*(undefined4 *)(param_1 + 0x10) = 3;
printf("STEP : DB_LOAD \n");
lVar24 = *(longlong *)(param_1 + 0x38);
if ((lVar24 != 0) && (*(char *)(lVar24 + 0x1a) != '\0')) {
param_4 = (longlong **)local_480;
puVar19 = &DAT_14016f5d0;
psVar15 = (short *)0x1;
(**(code **)(*(longlong *)(lVar24 + 0x68) + 0xb0))();
}
printf("AgentManager Auth...\n");
uVar18 = FUN_140007a20(*(longlong *)(param_1 + 0x49460),psVar15,puVar19,param_4);
if ((char)uVar18 == '\0') {
printf("AgentManager Auth Failed !!!\n");
Sleep(3000);
*(undefined1 *)(param_1 + 0x49440) = 0;
}
printf("Read ServerOption...\n");
uVar18 = FUN_140008410(*(longlong *)(param_1 + 0x49460),psVar15,puVar19,param_4);
if ((char)uVar18 == '\0') {
printf("Read ServerOption Failed !!!\n");
Sleep(3000);
*(undefined1 *)(param_1 + 0x49440) = 0;
}
printf("Read ServerFile...\n");
uVar18 = FUN_140009240(*(longlong *)(param_1 + 0x49460),psVar15,puVar19,(longlong)param_4);
if ((char)uVar18 == '\0') {
printf("Read ServerFile Failed !!!\n");
Sleep(3000);
*(undefined1 *)(param_1 + 0x49440) = 0;
}
printf("Read RealTimeEvent...\n");
uVar18 = FUN_140009760(*(longlong *)(param_1 + 0x49460),psVar15,puVar19,param_4);
if ((char)uVar18 == '\0') {
printf("Read RealTimeEvent Failed !!!\n");
Sleep(3000);
*(undefined1 *)(param_1 + 0x49440) = 0;
}
*(undefined8 *)(*(longlong *)(param_1 + 0x49460) + 0x18) = *(undefined8 *)(param_1 + 0x49450);
*(undefined8 *)(*(longlong *)(param_1 + 0x49468) + 0x18) = *(undefined8 *)(param_1 + 0x49450);
*(undefined8 *)(*(longlong *)(param_1 + 0x49450) + 0x68) = *(undefined8 *)(param_1 + 0x49460);
*(undefined8 *)(*(longlong *)(param_1 + 0x49450) + 0x70) = *(undefined8 *)(param_1 + 0x49468);
*(undefined8 *)(*(longlong *)(param_1 + 0x49450) + 0x78) = *(undefined8 *)(param_1 + 0x49458);
*(undefined8 *)(*(longlong *)(param_1 + 0x49450) + 0x80) = *(undefined8 *)(param_1 + 0x49448);
*(undefined8 *)(*(longlong *)(param_1 + 0x49458) + 0x68) = *(undefined8 *)(param_1 + 0x49460);
*(undefined8 *)(*(longlong *)(param_1 + 0x49458) + 0x70) = *(undefined8 *)(param_1 + 0x49468);
*(undefined8 *)(*(longlong *)(param_1 + 0x49458) + 0x78) = *(undefined8 *)(param_1 + 0x49450);
*(undefined8 *)(*(longlong *)(param_1 + 0x49458) + 0x80) = *(undefined8 *)(param_1 + 0x49448);
*(undefined8 *)(*(longlong *)(param_1 + 0x49448) + 0x98) = *(undefined8 *)(param_1 + 0x49450);
pwVar13 = L"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
FUN_1400ef250(DAT_14017c8a8,L"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",puVar19,param_4);
local_308 = 0;
uStack_304 = 0;
local_2e8 = 7;
local_2f0 = 0;
local_300 = 0;
local_2c0 = 7;
local_2c8 = 0;
local_2d8 = L'\0';
if (*(longlong *)(DAT_14017cf28 + 0x1c8) != 0) {
auVar4._8_8_ = 0;
auVar4._0_8_ = *(ulonglong *)(DAT_14017cf28 + 0x1b0);
pwVar13 = SUB168((ZEXT816(0) << 0x40 | ZEXT816(0x17)) % auVar4,0);
local_478 = (undefined8 *)(*(longlong *)(DAT_14017cf28 + 0x1a8) + (longlong)pwVar13 * 8);
for (local_470 = (undefined8 *)*local_478; local_470 != (undefined8 *)0x0;
local_470 = (undefined8 *)*local_470) {
if (*(char *)(local_470 + 1) == '\x17') {
if (local_470 != (undefined8 *)0x0) goto LAB_140002dd4;
break;
}
}
}
local_478 = (undefined8 *)0x0;
local_470 = puVar23;
LAB_140002dd4:
if ((local_470 != (undefined8 *)0x0) &&
(puVar3 = (undefined4 *)local_470[2], puVar3 != (undefined4 *)local_470[3])) {
local_308 = *puVar3;
uStack_304 = puVar3[1];
FUN_140001630((longlong *)&local_300,(longlong *)(puVar3 + 2),0,0xffffffffffffffff);
param_4 = (longlong **)0xffffffffffffffff;
FUN_140001630((longlong *)&local_2d8,(longlong *)(puVar3 + 0xc),0,0xffffffffffffffff);
pwVar13 = &local_2d8;
if (7 < local_2c0) {
pwVar13 = (LPCWSTR)CONCAT62(uStack_2d6,local_2d8);
}
puVar19 = (undefined *)(ulonglong)uStack_304;
FUN_14003bcb0(*(void **)(param_1 + 0x49448),pwVar13,puVar19,param_4);
}
lVar24 = 0;
lVar12 = lVar24;
if (plVar16 != (longlong *)0x0) {
lVar12 = *plVar16;
}
FUN_140005460(lVar12,pwVar13,puVar19,(longlong)param_4);
if (plVar17 != (longlong *)0x0) {
lVar24 = *plVar17;
}
FUN_140006380(lVar24,pwVar13,puVar19,(longlong)param_4);
FUN_1400ef250(DAT_14017c8a8,L"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",puVar19,param_4);
plVar11 = operator_new(0x18);
if (plVar11 == (longlong *)0x0) {
plVar11 = (longlong *)0x0;
}
else {
*plVar11 = (longlong)TimeSourceHRWin32::vftable;
BVar7 = QueryPerformanceFrequency(&local_460);
if (BVar7 == 0) {
*(undefined1 *)(plVar11 + 2) = 0;
GetLastError();
}
else {
*(undefined1 *)(plVar11 + 2) = 1;
plVar11[1] = (longlong)(1.0 / (double)local_460.QuadPart);
}
}
local_4a0 = DAT_14017cf18;
if ((undefined8 *)DAT_14017cf18[2] != (undefined8 *)0x0) {
(*(code *)**(undefined8 **)DAT_14017cf18[2])();
}
local_4a0[2] = (longlong)plVar11;
if (plVar11 != (longlong *)0x0) {
lVar24 = (**(code **)(*plVar11 + 8))(plVar11);
local_4a0[6] = lVar24;
local_4a0[7] = lVar24;
}
local_4a0[0x12] = 0x3ff0000000000000;
plVar11 = operator_new(0x28);
local_4a0 = plVar11;
if (plVar11 != (longlong *)0x0) {
*plVar11 = (longlong)Magi::Timer::vftable;
plVar6 = DAT_14017cf18;
plVar11[1] = (longlong)DAT_14017cf18;
plVar11[2] = 0;
plVar11[3] = 0;
*(undefined1 *)(plVar11 + 4) = 0;
*(undefined4 *)((longlong)plVar11 + 0x24) = 0x3f800000;
(**(code **)(*plVar6 + 0x10))();
}
*(longlong **)(param_1 + 0x49430) = plVar11;
local_448 = 0;
memset(local_446,0,0x9e);
ppvVar20 = (void **)0xa0;
memset(local_3a8,0,0xa0);
uVar26 = 0;
uVar28 = 0;
bVar5 = false;
pwVar13 = L"\t # RUN # \n";
FUN_1400ef250(DAT_14017c8a8,L"\t # RUN # \n",ppvVar20,param_4);
local_4a0 = (longlong *)CONCAT44(local_4a0._4_4_,5);
*(undefined4 *)(param_1 + 0x10) = 5;
if (DAT_14017ce74 != 0) {
printf("********************************\n");
DVar8 = timeGetTime();
pwVar13 = (wchar_t *)((ulonglong)(DVar8 - DAT_14017ce74) / 1000);
printf("** Server Load Time : %d sec\n");
printf("********************************\n");
}
printf("STEP : SERVER_RUN \n");
lVar24 = *(longlong *)(param_1 + 0x38);
if ((lVar24 != 0) && (*(char *)(lVar24 + 0x1a) != '\0')) {
param_4 = &local_4a0;
ppvVar20 = (void **)&DAT_14016f5d0;
pwVar13 = (wchar_t *)0x1;
(**(code **)(*(longlong *)(lVar24 + 0x68) + 0xb0))();
}
cVar2 = *(char *)(param_1 + 0x49440);
uVar29 = uVar26;
uVar30 = uVar28;
while (cVar2 != '\0') {
FUN_1400ed240((longlong)DAT_14017cf18);
dVar1 = *(double *)(*(longlong *)(param_1 + 0x49430) + 0x10);
if (DAT_14017ce84 != '\0') {
printf("AgentSession->Connect\n");
DAT_14017ce84 = DAT_14017ce84 == '\0';
}
FUN_14003c0a0(*(undefined8 **)(param_1 + 0x49448));
uVar25 = SUB84(dVar1,0);
uVar27 = (undefined4)((ulonglong)dVar1 >> 0x20);
if (1.0 <= dVar1 - (double)CONCAT44(uVar28,uVar26)) {
if (DAT_14017ce78 != 0) {
pwVar13 = (wchar_t *)&DAT_14012ea5c;
if (bVar5) {
pwVar13 = (wchar_t *)&DAT_14012ea58;
}
ppvVar20 = (void **)(ulonglong)DAT_14017ce7c;
printf("[ %s ] FPS[ %d ]\n");
bVar5 = !bVar5;
}
_DAT_14017ce80 = DAT_14017ce7c;
DAT_14017ce7c = 0;
uVar26 = uVar25;
uVar28 = uVar27;
}
if (0.10000000149011612 <= dVar1 - (double)CONCAT44(uVar30,uVar29)) {
DAT_14017ce7c = DAT_14017ce7c + 1;
FUN_140003420(param_1,(ulonglong *******)pwVar13,(undefined *)ppvVar20,(undefined2 *)param_4);
FUN_1400054f0(*(longlong *)(param_1 + 0x49450),dVar1,ppvVar20,(ulonglong)param_4);
uVar29 = uVar25;
uVar30 = uVar27;
if (*(char *)(*(longlong *)(param_1 + 0x49450) + 0x9c) != '\0') {
*(undefined4 *)(param_1 + 0x49444) = 1;
*(undefined1 *)(*(longlong *)(param_1 + 0x49450) + 0x9c) = 0;
}
}
*(double *)(param_1 + 0x49438) = dVar1;
if (0 < *(int *)(param_1 + 0x49444)) {
FUN_140003d00(param_1,pwVar13,ppvVar20,(longlong)param_4);
}
Sleep(1);
puVar9 = local_468;
puVar21 = local_498;
cVar2 = *(char *)(param_1 + 0x49440);
}
FUN_14003bfd0(*(longlong *)(param_1 + 0x49448),pwVar13,ppvVar20,param_4);
lVar24 = *(longlong *)(param_1 + 0x49450);
puVar10 = *(undefined8 **)(lVar24 + 0x28);
if (puVar10 != (undefined8 *)0x0) {
(**(code **)*puVar10)(puVar10,1);
}
*(undefined8 *)(lVar24 + 0x28) = 0;
FUN_140006430(*(longlong *)(param_1 + 0x49458));
CoUninitialize();
pwVar13 = L"# SERVER END... #\n";
FUN_1400ef250(DAT_14017c8a8,L"# SERVER END... #\n",ppvVar20,param_4);
if (7 < local_2c0) {
operator_delete((void *)CONCAT62(uStack_2d6,local_2d8));
}
local_2c0 = 7;
local_2c8 = 0;
local_2d8 = L'\0';
if (7 < local_2e8) {
operator_delete((void *)CONCAT62(uStack_2fe,local_300));
}
local_2e8 = 7;
local_2f0 = 0;
local_300 = 0;
if (puVar22 != (undefined8 *)0x0) {
plVar11 = puVar22 + 1;
*plVar11 = *plVar11 + -1;
plVar16 = local_4b8;
puVar9 = local_4a8;
plVar17 = local_4b0;
puVar21 = local_490;
if (*plVar11 == 0) {
FUN_140004b20(local_488,pwVar13,ppvVar20);
plVar16 = local_4b8;
puVar9 = local_4a8;
plVar17 = local_4b0;
puVar21 = local_490;
}
}
if (puVar21 != (undefined8 *)0x0) {
plVar11 = puVar21 + 1;
*plVar11 = *plVar11 + -1;
plVar16 = local_4b8;
puVar9 = local_4a8;
plVar17 = local_4b0;
if (*plVar11 == 0) {
FUN_140004b20(local_490,pwVar13,ppvVar20);
plVar16 = local_4b8;
puVar9 = local_4a8;
plVar17 = local_4b0;
}
}
if (puVar9 != (undefined8 *)0x0) {
plVar11 = puVar9 + 1;
*plVar11 = *plVar11 + -1;
plVar16 = local_4b8;
plVar17 = local_4b0;
if (*plVar11 == 0) {
FUN_140004aa0(local_4a8,pwVar13,ppvVar20,param_4);
plVar16 = local_4b8;
plVar17 = local_4b0;
}
}
plVar11 = local_4b0;
if (plVar17 != (longlong *)0x0) {
plVar17 = plVar17 + 1;
*plVar17 = *plVar17 + -1;
plVar16 = local_4b8;
if (*plVar17 == 0) {
puVar9 = (undefined8 *)*local_4b0;
if (puVar9 != (undefined8 *)0x0) {
(**(code **)*puVar9)(puVar9,1);
}
FUN_14003e8b0(plVar11);
plVar16 = local_4b8;
}
}
plVar17 = local_4b8;
if (plVar16 != (longlong *)0x0) {
plVar16 = plVar16 + 1;
*plVar16 = *plVar16 + -1;
if (*plVar16 == 0) {
puVar9 = (undefined8 *)*local_4b8;
if (puVar9 != (undefined8 *)0x0) {
(**(code **)*puVar9)(puVar9,1);
}
FUN_14003e8b0(plVar17);
}
}
return 0;
}

View file

@ -0,0 +1,22 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400033c0 FUN_1400033c0
* Pseudocode, not original source. */
void FUN_1400033c0(longlong param_1)
{
if (7 < *(ulonglong *)(param_1 + 0x48)) {
operator_delete(*(void **)(param_1 + 0x30));
}
*(undefined8 *)(param_1 + 0x48) = 7;
*(undefined8 *)(param_1 + 0x40) = 0;
*(undefined2 *)(param_1 + 0x30) = 0;
if (7 < *(ulonglong *)(param_1 + 0x20)) {
operator_delete(*(void **)(param_1 + 8));
}
*(undefined8 *)(param_1 + 0x20) = 7;
*(undefined8 *)(param_1 + 0x18) = 0;
*(undefined2 *)(param_1 + 8) = 0;
return;
}

View file

@ -0,0 +1,298 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140003420 FUN_140003420
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
undefined8
FUN_140003420(longlong param_1,ulonglong *******param_2,undefined *param_3,undefined2 *param_4)
{
longlong lVar1;
ulonglong ***********pppppppppppuVar2;
ushort uVar3;
int iVar4;
int iVar5;
ulonglong ************ppppppppppppuVar6;
ulonglong ************ppppppppppppuVar7;
undefined **ppuVar8;
bool bVar9;
undefined1 auStack_1e8 [32];
undefined8 local_1c8;
undefined8 local_1c0;
undefined8 local_1b8;
undefined8 local_1b0;
undefined8 local_1a8;
undefined8 local_1a0;
undefined8 local_198;
undefined8 local_190;
undefined8 local_188;
undefined8 local_180;
undefined4 local_178;
undefined8 local_168;
ulonglong ***********local_160;
ulonglong ************local_158;
undefined8 local_150;
ulonglong local_148;
undefined4 local_138;
uint local_134;
byte local_12c;
undefined2 local_110;
undefined6 uStack_10e;
undefined8 local_100;
ulonglong local_f8;
undefined2 local_e8;
undefined6 uStack_e6;
undefined8 local_d8;
ulonglong local_d0;
undefined2 local_c0;
undefined6 uStack_be;
undefined8 local_b0;
ulonglong local_a8;
void *local_60;
undefined8 local_58;
undefined8 local_50;
ulonglong local_38;
local_168 = 0xfffffffffffffffe;
local_38 = DAT_14016f5a0 ^ (ulonglong)auStack_1e8;
iVar4 = _kbhit();
while (iVar4 != 0) {
iVar4 = _getch();
iVar4 = (int)(char)iVar4;
if (*(int *)(param_1 + 0x49428) == 0) {
iVar5 = toupper(iVar4);
switch(iVar5) {
case 0x30:
local_160 = (ulonglong ***********)0x0;
local_158 = (ulonglong ************)0x0;
local_150 = 0;
param_2 = (ulonglong *******)&local_160;
FUN_1400398e0(DAT_14017cf20,(ulonglong *)param_2);
ppppppppppppuVar6 = local_158;
pppppppppppuVar2 = local_160;
for (ppppppppppppuVar7 = (ulonglong ************)local_160;
ppppppppppppuVar7 != ppppppppppppuVar6; ppppppppppppuVar7 = ppppppppppppuVar7 + 0x1f) {
FUN_140003c50(&local_138,(undefined4 *)ppppppppppppuVar7);
param_4 = &local_c0;
if (7 < local_a8) {
param_4 = (undefined2 *)CONCAT62(uStack_be,local_c0);
}
param_3 = (undefined *)(ulonglong)local_12c;
param_2 = (ulonglong *******)(ulonglong)local_134;
wprintf(L" CODE:[ %d ]\tTYPE:[ %d ]\tNAME:[ %s ] \r\n");
if (local_60 != (void *)0x0) {
operator_delete(local_60);
}
local_60 = (void *)0x0;
local_58 = 0;
local_50 = 0;
if (7 < local_a8) {
operator_delete((void *)CONCAT62(uStack_be,local_c0));
}
local_a8 = 7;
local_b0 = 0;
local_c0 = 0;
if (7 < local_d0) {
operator_delete((void *)CONCAT62(uStack_e6,local_e8));
}
local_d0 = 7;
local_d8 = 0;
local_e8 = 0;
if (7 < local_f8) {
operator_delete((void *)CONCAT62(uStack_10e,local_110));
}
local_f8 = 7;
local_100 = 0;
local_110 = 0;
}
if (pppppppppppuVar2 != (ulonglong ************)0x0) {
FUN_140004ba0((ulonglong *)pppppppppppuVar2,(ulonglong *)ppppppppppppuVar6);
operator_delete(pppppppppppuVar2);
param_2 = (ulonglong *******)ppppppppppppuVar6;
}
FUN_140033b40(DAT_14017cf28);
break;
case 0x31:
bVar9 = *(char *)(DAT_14017cf28 + 0x164) == '\0';
*(bool *)(DAT_14017cf28 + 0x164) = bVar9;
if (bVar9) {
printf("Print On !!!\n");
}
else {
printf("Print Off !!!\n");
}
break;
case 0x32:
FUN_14000bd40(*(longlong *)(param_1 + 0x49468),param_2,param_3,param_4);
param_2 = (ulonglong *******)PTR_s_CreateBackupTable_140174e90;
printf("%s\n");
break;
case 0x33:
bVar9 = *(char *)(DAT_14017cf28 + 0x180) == '\0';
*(bool *)(DAT_14017cf28 + 0x180) = bVar9;
param_2 = (ulonglong *******)(ulonglong)bVar9;
printf("Active : %d\n");
break;
case 0x34:
FUN_140009240(*(longlong *)(param_1 + 0x49460),param_2,param_3,(longlong)param_4);
param_2 = (ulonglong *******)PTR_s_Server_File_Refresh__140174ec0;
printf("%s\n");
break;
case 0x35:
FUN_140008410(*(longlong *)(param_1 + 0x49460),param_2,param_3,param_4);
param_2 = (ulonglong *******)PTR_s_Server_Option_Refresh__140174ed8;
printf("%s\n");
break;
default:
ppuVar8 = &PTR_s_Printf_On_Off__140174e78;
do {
uVar3 = GetAsyncKeyState(0xa0);
if (((uVar3 & 0x8001) != 0) || (*(char *)(ppuVar8 + 1) == '\0')) {
param_3 = *ppuVar8;
param_2 = (ulonglong *******)(ulonglong)(uint)(int)*(char *)(ppuVar8 + -1);
printf(" \'%c\'\t: %s\n");
}
ppuVar8 = ppuVar8 + 3;
} while ((longlong)ppuVar8 < 0x140175028);
printf("........... Message : Unknown Control Command.\n");
break;
case 0x37:
FUN_140009760(*(longlong *)(param_1 + 0x49460),param_2,param_3,param_4);
param_2 = (ulonglong *******)PTR_s_Server_RealTime_Event__140174ef0;
printf("%s\n");
break;
case 0x38:
param_2 = (ulonglong *******)(ulonglong)*(uint *)(DAT_14017cf20 + 0x58);
printf("[AgentCount : %d] \n");
break;
case 0x39:
FUN_14000c120(DAT_14017cf48);
param_2 = (ulonglong *******)PTR_s_Statistics_Print__140174f20;
printf("%s\n");
break;
case 0x45:
*(undefined1 *)(param_1 + 0x49440) = 0;
printf("Server Shutdown\n");
return 0;
case 0x46:
wprintf(L"-AGENT MANAGER SERVER [CODE:%d]---------------------------------\n");
wprintf(L"PUBLIC NETWORK : ADDRESS[ %s ] PORT[ %d ]\n");
wprintf(L"PRIVATE NETWORK : ADDRESS[ %s ] PORT[ %d ]\n");
param_3 = (undefined *)(ulonglong)*(uint *)(*(longlong *)(param_1 + 0x49448) + 0x50);
printf("API NETWORK : ADDRESS[ %s ] PORT[ %d ] \n");
wprintf(
L"\n-SESSION----------------------------------------------------------------------\n"
);
wprintf(L"%s \n");
param_2 = (ulonglong *******)(*(longlong *)(param_1 + 0x49468) + 0x28);
if (7 < *(ulonglong *)(*(longlong *)(param_1 + 0x49468) + 0x40)) {
param_2 = (ulonglong *******)*param_2;
}
wprintf(L"%s \n");
wprintf(
L"\n------------------------------------------------------------------------------\n\n"
);
break;
case 0x4c:
*(undefined4 *)(param_1 + 0x49428) = 1;
param_3 = &DAT_14012eca4;
param_2 = (ulonglong *******)PTR_s_Keyboard_Locked_140174f80;
printf("%s %s\n");
break;
case 0x4d:
FUN_140038530(DAT_14017cf10);
param_2 = (ulonglong *******)PTR_s_CustomOption_Init_140175010;
printf("%s\n");
break;
case 0x50:
lVar1 = *(longlong *)(param_1 + 0x49450);
if (lVar1 != 0) {
local_188 = 0;
local_1c0 = 0;
local_1c8 = 0;
local_1b0 = 0;
local_1b8 = 0;
local_190 = 0;
local_198 = 0;
local_1a0 = 0;
local_1a8 = 0;
local_180 = 0;
local_178 = 0;
if (*(longlong *)(lVar1 + 0x28) != 0) {
(**(code **)(**(longlong **)(lVar1 + 0x28) + 0xb0))
(*(longlong **)(lVar1 + 0x28),&local_1c8);
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");
}
}
param_2 = (ulonglong *******)PTR_s_Network_Status_140174f98;
printf("%s\n");
break;
case 0x52:
DAT_14017ce78 = (uint)(DAT_14017ce78 == 0);
param_3 = &DAT_14012eca8;
if (DAT_14017ce78 != 0) {
param_3 = &DAT_14012eca4;
}
param_2 = (ulonglong *******)PTR_s_ShowFPS_140174fb0;
printf("%s %s\n");
break;
case 0x54:
DAT_14017ce84 = DAT_14017ce84 == '\0';
param_2 = (ulonglong *******)(ulonglong)(byte)DAT_14017ce84;
printf("Connect : [%d]\n");
}
}
else {
iVar5 = toupper(iVar4);
if (iVar5 == 0x55) {
*(undefined4 *)(param_1 + 0x49428) = 0;
param_3 = &DAT_14012eca8;
param_2 = (ulonglong *******)PTR_s_Keyboard_UnLocked_140174fc8;
printf("%s %s\n");
ppuVar8 = &PTR_s_Printf_On_Off__140174e78;
do {
uVar3 = GetAsyncKeyState(0xa0);
if (((uVar3 & 0x8001) != 0) || (*(char *)(ppuVar8 + 1) == '\0')) {
param_3 = *ppuVar8;
param_2 = (ulonglong *******)(ulonglong)(uint)(int)*(char *)(ppuVar8 + -1);
printf(" \'%c\'\t: %s\n");
}
ppuVar8 = ppuVar8 + 3;
} while ((longlong)ppuVar8 < 0x140175028);
}
}
iVar4 = toupper(iVar4);
if (iVar4 == 0x49) {
printf("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n");
GetCurrentProcessId();
printf("ProcessID : %d\n");
printf("SVN : %d\n");
printf("Resource : %d\n");
printf("Build Date : %s\n");
param_2 = (ulonglong *******)FUN_1400ed8a0((ulonglong *)&local_160);
if ((ulonglong ***********)0xf < param_2[3]) {
param_2 = (ulonglong *******)*param_2;
}
printf("PROTOCOL : %s\n");
if (0xf < local_148) {
operator_delete(local_160);
}
local_148 = 0xf;
local_150 = 0;
local_160 = (ulonglong ***********)((ulonglong)local_160 & 0xffffffffffffff00);
printf("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n");
}
iVar4 = _kbhit();
}
return 2;
}

View file

@ -0,0 +1,19 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140003c50 FUN_140003c50
* Pseudocode, not original source. */
undefined4 * FUN_140003c50(undefined4 *param_1,undefined4 *param_2)
{
FUN_140004f20(param_1,param_2);
*(undefined8 *)(param_1 + 0x28) = *(undefined8 *)(param_2 + 0x28);
*(undefined8 *)(param_1 + 0x2a) = *(undefined8 *)(param_2 + 0x2a);
*(undefined8 *)(param_1 + 0x2c) = *(undefined8 *)(param_2 + 0x2c);
*(undefined8 *)(param_1 + 0x2e) = *(undefined8 *)(param_2 + 0x2e);
*(undefined8 *)(param_1 + 0x30) = *(undefined8 *)(param_2 + 0x30);
*(undefined8 *)(param_1 + 0x32) = *(undefined8 *)(param_2 + 0x32);
*(undefined8 *)(param_1 + 0x34) = *(undefined8 *)(param_2 + 0x34);
FUN_140004de0((undefined8 *)(param_1 + 0x36),(longlong *)(param_2 + 0x36));
return param_1;
}

View file

@ -0,0 +1,458 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140003d00 FUN_140003d00
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_140003d00(longlong param_1,undefined8 param_2,undefined8 param_3,longlong param_4)
{
ulonglong *puVar1;
ulonglong *puVar2;
bool bVar3;
undefined1 auStack_178 [32];
ulonglong *local_158;
ulonglong *local_150;
undefined8 local_148;
undefined8 local_138;
undefined4 local_128;
uint local_124;
undefined2 local_100;
undefined6 uStack_fe;
undefined8 local_f0;
ulonglong local_e8;
undefined2 local_d8;
undefined6 uStack_d6;
undefined8 local_c8;
ulonglong local_c0;
undefined2 local_b0;
undefined6 uStack_ae;
undefined8 local_a0;
ulonglong local_98;
int local_64;
void *local_50;
undefined8 local_48;
undefined8 local_40;
ulonglong local_28;
local_138 = 0xfffffffffffffffe;
local_28 = DAT_14016f5a0 ^ (ulonglong)auStack_178;
if (*(longlong *)(param_1 + 0x49450) == 0) {
return;
}
local_158 = (ulonglong *)0x0;
local_150 = (ulonglong *)0x0;
local_148 = 0;
switch(*(undefined4 *)(param_1 + 0x49444)) {
case 1:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\f');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x11');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x12');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x13');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
if (local_64 == 0) {
FUN_14000cb70(*(longlong *)(param_1 + 0x49450),0,(ulonglong)local_124,param_4);
}
if (local_50 != (void *)0x0) {
operator_delete(local_50);
}
local_40 = 0;
local_48 = 0;
local_50 = (void *)0x0;
if (7 < local_98) {
operator_delete((void *)CONCAT62(uStack_ae,local_b0));
}
local_b0 = 0;
local_a0 = 0;
local_98 = 7;
if (7 < local_c0) {
operator_delete((void *)CONCAT62(uStack_d6,local_d8));
}
local_d8 = 0;
local_c8 = 0;
local_c0 = 7;
if (7 < local_e8) {
operator_delete((void *)CONCAT62(uStack_fe,local_100));
}
}
break;
case 2:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\f');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x11');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x12');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x13');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
if (local_64 != 3) {
if (local_50 != (void *)0x0) {
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
if (7 < local_98) {
operator_delete((void *)CONCAT62(uStack_ae,local_b0));
}
local_98 = 7;
local_a0 = 0;
local_b0 = 0;
if (7 < local_c0) {
operator_delete((void *)CONCAT62(uStack_d6,local_d8));
}
local_c0 = 7;
local_c8 = 0;
local_d8 = 0;
if (7 < local_e8) {
operator_delete((void *)CONCAT62(uStack_fe,local_100));
}
local_e8 = 7;
local_f0 = 0;
local_100 = 0;
if (local_158 == (ulonglong *)0x0) {
return;
}
goto LAB_14000490b;
}
if (local_50 != (void *)0x0) {
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
if (7 < local_98) {
operator_delete((void *)CONCAT62(uStack_ae,local_b0));
}
local_98 = 7;
local_a0 = 0;
local_b0 = 0;
if (7 < local_c0) {
operator_delete((void *)CONCAT62(uStack_d6,local_d8));
}
local_c0 = 7;
local_c8 = 0;
local_d8 = 0;
if (7 < local_e8) {
operator_delete((void *)CONCAT62(uStack_fe,local_100));
}
}
break;
case 3:
FUN_14000bd40(*(longlong *)(param_1 + 0x49468),&IMAGE_DOS_HEADER_140000000,param_3,param_4);
*(int *)(param_1 + 0x49444) = *(int *)(param_1 + 0x49444) + 1;
goto switchD_140003d7b_caseD_5;
case 4:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\f');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
FUN_14000cb70(*(longlong *)(param_1 + 0x49450),0xd,(ulonglong)local_124,param_4);
if (local_50 != (void *)0x0) {
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
if (7 < local_98) {
operator_delete((void *)CONCAT62(uStack_ae,local_b0));
}
local_98 = 7;
local_a0 = 0;
local_b0 = 0;
if (7 < local_c0) {
operator_delete((void *)CONCAT62(uStack_d6,local_d8));
}
local_c0 = 7;
local_c8 = 0;
local_d8 = 0;
if (7 < local_e8) {
operator_delete((void *)CONCAT62(uStack_fe,local_100));
}
}
break;
default:
goto switchD_140003d7b_caseD_5;
case 6:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\b');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x06');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\t');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\n');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\v');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
if (local_64 == 0) {
FUN_14000cb70(*(longlong *)(param_1 + 0x49450),0,(ulonglong)local_124,param_4);
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
goto LAB_1400041ea;
}
}
else if (local_50 != (void *)0x0) {
LAB_1400041ea:
operator_delete(local_50);
}
local_40 = 0;
local_48 = 0;
local_50 = (void *)0x0;
if (7 < local_98) {
operator_delete((void *)CONCAT62(uStack_ae,local_b0));
}
local_b0 = 0;
local_a0 = 0;
local_98 = 7;
if (7 < local_c0) {
operator_delete((void *)CONCAT62(uStack_d6,local_d8));
}
local_d8 = 0;
local_c8 = 0;
local_c0 = 7;
if (7 < local_e8) {
operator_delete((void *)CONCAT62(uStack_fe,local_100));
}
}
break;
case 7:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\b');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x06');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\t');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\n');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\v');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
if (local_64 != 3) {
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
if (7 < local_98) {
operator_delete((void *)CONCAT62(uStack_ae,local_b0));
}
local_98 = 7;
local_a0 = 0;
local_b0 = 0;
if (7 < local_c0) {
operator_delete((void *)CONCAT62(uStack_d6,local_d8));
}
local_c0 = 7;
local_c8 = 0;
local_d8 = 0;
if (7 < local_e8) {
operator_delete((void *)CONCAT62(uStack_fe,local_100));
}
local_e8 = 7;
local_f0 = 0;
local_100 = 0;
bVar3 = local_158 == (ulonglong *)0x0;
goto LAB_1400048f9;
}
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
if (7 < local_98) {
operator_delete((void *)CONCAT62(uStack_ae,local_b0));
}
local_98 = 7;
local_a0 = 0;
local_b0 = 0;
if (7 < local_c0) {
operator_delete((void *)CONCAT62(uStack_d6,local_d8));
}
local_c0 = 7;
local_c8 = 0;
local_d8 = 0;
if (7 < local_e8) {
operator_delete((void *)CONCAT62(uStack_fe,local_100));
}
}
break;
case 8:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\a');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x05');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
if (local_64 == 0) {
FUN_14000cb70(*(longlong *)(param_1 + 0x49450),0,(ulonglong)local_124,param_4);
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
FUN_140004e90((longlong)&local_128);
}
else {
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
if (7 < local_98) {
operator_delete((void *)CONCAT62(uStack_ae,local_b0));
}
local_98 = 7;
local_a0 = 0;
local_b0 = 0;
if (7 < local_c0) {
operator_delete((void *)CONCAT62(uStack_d6,local_d8));
}
local_c0 = 7;
local_c8 = 0;
local_d8 = 0;
if (7 < local_e8) {
operator_delete((void *)CONCAT62(uStack_fe,local_100));
}
}
}
break;
case 9:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\a');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x05');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
if (local_64 != 3) {
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
FUN_140004e90((longlong)&local_128);
bVar3 = local_158 == (ulonglong *)0x0;
goto LAB_1400048f9;
}
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
FUN_140004e90((longlong)&local_128);
}
break;
case 10:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x01');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
if (local_64 == 0) {
FUN_14000cb70(*(longlong *)(param_1 + 0x49450),0,(ulonglong)local_124,param_4);
}
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
FUN_140004e90((longlong)&local_128);
}
break;
case 0xb:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x01');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
if (local_64 != 3) {
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
FUN_140004e90((longlong)&local_128);
bVar3 = local_158 == (ulonglong *)0x0;
goto LAB_1400048f9;
}
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
FUN_140004e90((longlong)&local_128);
}
break;
case 0xc:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x02');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x03');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
if (local_64 == 0) {
FUN_14000cb70(*(longlong *)(param_1 + 0x49450),0,(ulonglong)local_124,param_4);
}
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
FUN_140004e90((longlong)&local_128);
}
break;
case 0xd:
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x02');
FUN_140039980(DAT_14017cf20,(ulonglong *)&local_158,'\x03');
puVar1 = local_150;
for (puVar2 = local_158; puVar2 != puVar1; puVar2 = puVar2 + 0x1f) {
FUN_140003c50(&local_128,(undefined4 *)puVar2);
if (local_64 != 3) {
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
FUN_140004e90((longlong)&local_128);
bVar3 = local_158 == (ulonglong *)0x0;
goto LAB_1400048f9;
}
if (local_50 != (void *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_50);
operator_delete(local_50);
}
local_50 = (void *)0x0;
local_48 = 0;
local_40 = 0;
FUN_140004e90((longlong)&local_128);
}
break;
case 0xe:
*(undefined4 *)(param_1 + 0x49444) = 0;
goto switchD_140003d7b_caseD_5;
}
*(int *)(param_1 + 0x49444) = *(int *)(param_1 + 0x49444) + 1;
switchD_140003d7b_caseD_5:
bVar3 = local_158 == (ulonglong *)0x0;
LAB_1400048f9:
if (!bVar3) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_158);
LAB_14000490b:
FUN_140004ba0(local_158,local_150);
operator_delete(local_158);
}
return;
}

View file

@ -0,0 +1,23 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004980 FUN_140004980
* Pseudocode, not original source. */
void FUN_140004980(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_14003e8b0(plVar1);
}
return;
}

View file

@ -0,0 +1,16 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400049e0 FUN_1400049e0
* Pseudocode, not original source. */
void FUN_1400049e0(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
if (*param_1 != 0) {
*(longlong *)(*param_1 + 8) = *(longlong *)(*param_1 + 8) + -1;
if (*(longlong *)(*param_1 + 8) == 0) {
FUN_140004aa0((undefined8 *)*param_1,0,param_3,param_4);
}
}
return;
}

View file

@ -0,0 +1,16 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004a20 FUN_140004a20
* Pseudocode, not original source. */
void FUN_140004a20(longlong *param_1,undefined8 param_2,void **param_3)
{
if (*param_1 != 0) {
*(longlong *)(*param_1 + 8) = *(longlong *)(*param_1 + 8) + -1;
if (*(longlong *)(*param_1 + 8) == 0) {
FUN_140004b20((undefined8 *)*param_1,0,param_3);
}
}
return;
}

View file

@ -0,0 +1,17 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004a60 FUN_140004a60
* Pseudocode, not original source. */
void FUN_140004a60(undefined8 *param_1)
{
if ((ulonglong *)*param_1 != (ulonglong *)0x0) {
FUN_140004ba0((ulonglong *)*param_1,(ulonglong *)param_1[1]);
operator_delete((void *)*param_1);
}
*param_1 = 0;
param_1[1] = 0;
param_1[2] = 0;
return;
}

View file

@ -0,0 +1,25 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004aa0 FUN_140004aa0
* Pseudocode, not original source. */
void FUN_140004aa0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 *puVar1;
puVar1 = (undefined8 *)*param_1;
if (puVar1 != (undefined8 *)0x0) {
*puVar1 = MagiApiServer::vftable;
FUN_14003d110((undefined4 *)(puVar1 + 0xc),param_2,param_3,param_4);
if (0xf < (ulonglong)puVar1[8]) {
operator_delete((void *)puVar1[5]);
}
puVar1[8] = 0xf;
puVar1[7] = 0;
*(undefined1 *)(puVar1 + 5) = 0;
operator_delete(puVar1);
}
FUN_14003e8b0(param_1);
return;
}

View file

@ -0,0 +1,40 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004b20 FUN_140004b20
* Pseudocode, not original source. */
void FUN_140004b20(undefined8 *param_1,undefined8 param_2,void **param_3)
{
char *pcVar1;
pcVar1 = (char *)*param_1;
if (pcVar1 != (char *)0x0) {
if (7 < *(ulonglong *)(pcVar1 + 0x40)) {
operator_delete(*(void **)(pcVar1 + 0x28));
}
pcVar1[0x40] = '\a';
pcVar1[0x41] = '\0';
pcVar1[0x42] = '\0';
pcVar1[0x43] = '\0';
pcVar1[0x44] = '\0';
pcVar1[0x45] = '\0';
pcVar1[0x46] = '\0';
pcVar1[0x47] = '\0';
pcVar1[0x38] = '\0';
pcVar1[0x39] = '\0';
pcVar1[0x3a] = '\0';
pcVar1[0x3b] = '\0';
pcVar1[0x3c] = '\0';
pcVar1[0x3d] = '\0';
pcVar1[0x3e] = '\0';
pcVar1[0x3f] = '\0';
pcVar1[0x28] = '\0';
pcVar1[0x29] = '\0';
FUN_140072ba0((longlong *)(pcVar1 + 8),param_2,param_3);
FUN_1400721f0(pcVar1);
operator_delete(pcVar1);
}
FUN_14003e8b0(param_1);
return;
}

View file

@ -0,0 +1,44 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004ba0 FUN_140004ba0
* Pseudocode, not original source. */
void FUN_140004ba0(ulonglong *param_1,ulonglong *param_2)
{
ulonglong *puVar1;
ulonglong *puVar2;
if (param_1 != param_2) {
puVar2 = param_1 + 0x12;
do {
if ((void *)puVar2[9] != (void *)0x0) {
operator_delete((void *)puVar2[9]);
}
puVar2[9] = 0;
puVar2[10] = 0;
puVar2[0xb] = 0;
if (7 < *puVar2) {
operator_delete((void *)puVar2[-3]);
}
*puVar2 = 7;
puVar2[-1] = 0;
*(undefined2 *)(puVar2 + -3) = 0;
if (7 < puVar2[-5]) {
operator_delete((void *)puVar2[-8]);
}
puVar2[-5] = 7;
puVar2[-6] = 0;
*(undefined2 *)(puVar2 + -8) = 0;
if (7 < puVar2[-10]) {
operator_delete((void *)puVar2[-0xd]);
}
puVar2[-10] = 7;
puVar2[-0xb] = 0;
*(undefined2 *)(puVar2 + -0xd) = 0;
puVar1 = puVar2 + 0xd;
puVar2 = puVar2 + 0x1f;
} while (puVar1 != param_2);
}
return;
}

View file

@ -0,0 +1,17 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004c70 FUN_140004c70
* Pseudocode, not original source. */
void FUN_140004c70(longlong param_1)
{
if (*(void **)(param_1 + 0xd8) != (void *)0x0) {
operator_delete(*(void **)(param_1 + 0xd8));
}
*(undefined8 *)(param_1 + 0xd8) = 0;
*(undefined8 *)(param_1 + 0xe0) = 0;
*(undefined8 *)(param_1 + 0xe8) = 0;
FUN_140004e90(param_1);
return;
}

View file

@ -0,0 +1,11 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004cb0 FUN_140004cb0
* Pseudocode, not original source. */
void FUN_140004cb0(longlong param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4)
{
FUN_140002350((undefined8 *)(param_1 + -8),param_2,param_3,param_4);
return;
}

View file

@ -0,0 +1,25 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004cc0 FUN_140004cc0
* Pseudocode, not original source. */
void * FUN_140004cc0(undefined8 param_1,ulonglong param_2)
{
void *pvVar1;
char *local_res10 [3];
undefined **local_28 [5];
if (param_2 == 0) {
return (void *)0x0;
}
if ((param_2 < 0x4000000000000000) && (pvVar1 = operator_new(param_2 * 4), pvVar1 != (void *)0x0))
{
return pvVar1;
}
local_res10[0] = (char *)0x0;
std::exception::exception((exception *)local_28,local_res10);
local_28[0] = std::bad_alloc::vftable;
/* WARNING: Subroutine does not return */
_CxxThrowException(local_28,(ThrowInfo *)&DAT_14016c158);
}

View file

@ -0,0 +1,32 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004d30 FUN_140004d30
* Pseudocode, not original source. */
undefined8 FUN_140004d30(undefined8 *param_1,ulonglong param_2)
{
code *pcVar1;
undefined8 uVar2;
void *pvVar3;
uVar2 = 0;
*param_1 = 0;
param_1[1] = 0;
param_1[2] = 0;
if (param_2 != 0) {
if (0x3fffffffffffffff < param_2) {
std::_Xlength_error("vector<T> too long");
pcVar1 = (code *)swi(3);
uVar2 = (*pcVar1)();
return uVar2;
}
pvVar3 = FUN_140004cc0(param_1 + 3,param_2);
*param_1 = pvVar3;
param_1[1] = pvVar3;
pvVar3 = (void *)((longlong)pvVar3 + param_2 * 4);
param_1[2] = pvVar3;
uVar2 = CONCAT71((int7)((ulonglong)pvVar3 >> 8),1);
}
return uVar2;
}

View file

@ -0,0 +1,16 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004da0 FUN_140004da0
* Pseudocode, not original source. */
undefined4 * FUN_140004da0(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)
{
for (; param_1 != param_2; param_1 = param_1 + 1) {
if (param_3 != (undefined4 *)0x0) {
*param_3 = *param_1;
}
param_3 = param_3 + 1;
}
return param_3;
}

View file

@ -0,0 +1,36 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004de0 FUN_140004de0
* Pseudocode, not original source. */
undefined8 * FUN_140004de0(undefined8 *param_1,longlong *param_2)
{
code *pcVar1;
undefined8 *puVar2;
undefined4 *puVar3;
ulonglong uVar4;
*param_1 = 0;
param_1[1] = 0;
param_1[2] = 0;
uVar4 = param_2[1] - *param_2 >> 2;
*param_1 = 0;
param_1[1] = 0;
param_1[2] = 0;
if (uVar4 != 0) {
if (0x3fffffffffffffff < uVar4) {
std::_Xlength_error("vector<T> too long");
pcVar1 = (code *)swi(3);
puVar2 = (undefined8 *)(*pcVar1)();
return puVar2;
}
puVar3 = FUN_140004cc0(param_1 + 3,uVar4);
*param_1 = puVar3;
param_1[1] = puVar3;
param_1[2] = puVar3 + uVar4;
puVar3 = FUN_140004da0((undefined4 *)*param_2,(undefined4 *)param_2[1],puVar3);
param_1[1] = puVar3;
}
return param_1;
}

View file

@ -0,0 +1,28 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004e90 FUN_140004e90
* Pseudocode, not original source. */
void FUN_140004e90(longlong param_1)
{
if (7 < *(ulonglong *)(param_1 + 0x90)) {
operator_delete(*(void **)(param_1 + 0x78));
}
*(undefined8 *)(param_1 + 0x90) = 7;
*(undefined8 *)(param_1 + 0x88) = 0;
*(undefined2 *)(param_1 + 0x78) = 0;
if (7 < *(ulonglong *)(param_1 + 0x68)) {
operator_delete(*(void **)(param_1 + 0x50));
}
*(undefined8 *)(param_1 + 0x68) = 7;
*(undefined8 *)(param_1 + 0x60) = 0;
*(undefined2 *)(param_1 + 0x50) = 0;
if (7 < *(ulonglong *)(param_1 + 0x40)) {
operator_delete(*(void **)(param_1 + 0x28));
}
*(undefined8 *)(param_1 + 0x40) = 7;
*(undefined8 *)(param_1 + 0x38) = 0;
*(undefined2 *)(param_1 + 0x28) = 0;
return;
}

View file

@ -0,0 +1,31 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140004f20 FUN_140004f20
* Pseudocode, not original source. */
undefined4 * FUN_140004f20(undefined4 *param_1,undefined4 *param_2)
{
*param_1 = *param_2;
param_1[1] = param_2[1];
param_1[2] = param_2[2];
*(undefined1 *)(param_1 + 3) = *(undefined1 *)(param_2 + 3);
param_1[4] = param_2[4];
param_1[5] = param_2[5];
param_1[6] = param_2[6];
param_1[7] = param_2[7];
*(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);
*(undefined8 *)(param_1 + 0x10) = 7;
*(undefined8 *)(param_1 + 0xe) = 0;
*(undefined2 *)(param_1 + 10) = 0;
FUN_140001630((longlong *)(param_1 + 10),(longlong *)(param_2 + 10),0,0xffffffffffffffff);
*(undefined8 *)(param_1 + 0x1a) = 7;
*(undefined8 *)(param_1 + 0x18) = 0;
*(undefined2 *)(param_1 + 0x14) = 0;
FUN_140001630((longlong *)(param_1 + 0x14),(longlong *)(param_2 + 0x14),0,0xffffffffffffffff);
*(undefined8 *)(param_1 + 0x24) = 7;
*(undefined8 *)(param_1 + 0x22) = 0;
*(undefined2 *)(param_1 + 0x1e) = 0;
FUN_140001630((longlong *)(param_1 + 0x1e),(longlong *)(param_2 + 0x1e),0,0xffffffffffffffff);
return param_1;
}

View file

@ -0,0 +1,13 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005000 FUN_140005000
* Pseudocode, not original source. */
void FUN_140005000(undefined8 *param_1)
{
if ((undefined8 *)*param_1 != param_1 + 1) {
free((undefined8 *)*param_1);
}
return;
}

View file

@ -0,0 +1,50 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005020 FUN_140005020
* Pseudocode, not original source. */
void FUN_140005020(longlong *param_1,int param_2,void *param_3,int param_4)
{
void *pvVar1;
if (param_1 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x80070057);
}
if (param_2 < 0) {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x80070057);
}
if (param_3 == (void *)0x0) {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x80070057);
}
pvVar1 = (void *)*param_1;
if (pvVar1 == param_3) {
if (param_2 <= param_4) {
*param_1 = (longlong)param_3;
goto LAB_1400050b1;
}
pvVar1 = calloc((longlong)param_2,2);
}
else {
if (param_2 <= param_4) {
free(pvVar1);
*param_1 = (longlong)param_3;
goto LAB_1400050b1;
}
pvVar1 = _recalloc(pvVar1,(longlong)param_2,2);
if (pvVar1 == (void *)0x0) {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x8007000e);
}
}
*param_1 = (longlong)pvVar1;
LAB_1400050b1:
if (*param_1 == 0) {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x8007000e);
}
return;
}

View file

@ -0,0 +1,14 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400050d0 FUN_1400050d0
* Pseudocode, not original source. */
void FUN_1400050d0(undefined4 param_1)
{
undefined4 local_res8 [8];
local_res8[0] = param_1;
/* WARNING: Subroutine does not return */
_CxxThrowException(local_res8,(ThrowInfo *)&DAT_14016c1b0);
}

View file

@ -0,0 +1,17 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400050f0 FUN_1400050f0
* Pseudocode, not original source. */
void FUN_1400050f0(void)
{
DWORD DVar1;
DVar1 = GetLastError();
if (0 < (int)DVar1) {
DVar1 = DVar1 & 0xffff | 0x80070000;
}
/* WARNING: Subroutine does not return */
FUN_1400050d0(DVar1);
}

View file

@ -0,0 +1,40 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005110 FUN_140005110
* Pseudocode, not original source. */
void FUN_140005110(longlong *param_1,LPCSTR param_2,UINT param_3)
{
code *pcVar1;
int iVar2;
int iVar3;
DWORD DVar4;
bool bVar5;
if (param_2 == (LPCSTR)0x0) {
*param_1 = 0;
return;
}
iVar2 = lstrlenA(param_2);
iVar2 = iVar2 + 1;
FUN_140005020(param_1,iVar2,param_1 + 1,0x80);
iVar3 = MultiByteToWideChar(param_3,0,param_2,iVar2,(LPWSTR)*param_1,iVar2);
if (iVar3 == 0) {
DVar4 = GetLastError();
bVar5 = true;
if (DVar4 == 0x7a) {
iVar3 = MultiByteToWideChar(param_3,0,param_2,iVar2,(LPWSTR)0x0,0);
FUN_140005020(param_1,iVar3,param_1 + 1,0x80);
iVar2 = MultiByteToWideChar(param_3,0,param_2,iVar2,(LPWSTR)*param_1,iVar3);
bVar5 = iVar2 == 0;
}
if (bVar5) {
FUN_1400050f0();
pcVar1 = (code *)swi(3);
(*pcVar1)();
return;
}
}
return;
}

View file

@ -0,0 +1,15 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005220 FUN_140005220
* Pseudocode, not original source. */
undefined8 * FUN_140005220(undefined8 *param_1,byte param_2)
{
DAT_14017c8b8 = 0;
*param_1 = MBISingleton<MagiAgentManagerServer>::vftable;
if ((param_2 & 1) != 0) {
operator_delete(param_1);
}
return param_1;
}

View file

@ -0,0 +1,12 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005260 FUN_140005260
* Pseudocode, not original source. */
void FUN_140005260(undefined8 *param_1)
{
DAT_14017c8b8 = 0;
*param_1 = MBISingleton<MagiAgentManagerServer>::vftable;
return;
}

View file

@ -0,0 +1,43 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005280 FUN_140005280
* Pseudocode, not original source. */
undefined8 *
FUN_140005280(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 *puVar1;
ulonglong uVar2;
undefined7 uVar3;
uVar3 = (undefined7)((ulonglong)param_3 >> 8);
param_1[5] = 0;
FUN_14003e7c0(param_1,param_2,param_3,param_4);
param_1[6] = PTR_DAT_14016f010;
param_1[7] = 0;
*(undefined4 *)(param_1 + 8) = 0;
*param_1 = Proud::INetServerEvent::vftable;
FUN_140079b60(param_1 + 1);
*param_1 = MagiAgentManagerNetwork::vftable;
param_1[1] = MagiAgentManagerNetwork::vftable;
puVar1 = param_1 + 9;
FUN_140076890(puVar1);
*puVar1 = AGENTMANAGER2AGENT_PROTOCOL::Proxy::vftable;
if (*(int *)((longlong)param_1 + 0x5c) != 1) {
FUN_14003e110((wchar_t *)PTR_u_PIDL_compiler_is_incompatible_to_140170070);
}
*puVar1 = RNP::AgentManager2AgentProxy::vftable;
*(undefined1 *)(param_1 + 0xc) = 0;
param_1[0xd] = 0;
param_1[0xe] = 0;
param_1[0xf] = 0;
param_1[0x10] = 0;
param_1[0x11] = 0;
param_1[0x12] = 0;
*(undefined4 *)(param_1 + 0x13) = 0xffffffff;
*(undefined1 *)((longlong)param_1 + 0x9c) = 0;
uVar2 = FUN_140094860();
FUN_14003cf60((undefined4 *)(param_1 + 0x14),uVar2 & 0xffffffff,CONCAT71(uVar3,1),param_4);
return param_1;
}

View file

@ -0,0 +1,15 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005380 FUN_140005380
* Pseudocode, not original source. */
undefined8 *
FUN_140005380(undefined8 *param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4)
{
FUN_1400053b0(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,28 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400053b0 FUN_1400053b0
* Pseudocode, not original source. */
void FUN_1400053b0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 *puVar1;
*param_1 = MagiAgentManagerNetwork::vftable;
param_1[1] = MagiAgentManagerNetwork::vftable;
FUN_14003d110((undefined4 *)(param_1 + 0x14),param_2,param_3,param_4);
param_1[9] = RNP::AgentManager2AgentProxy::vftable;
FUN_1400768c0(param_1 + 9);
param_1[1] = RNP::Agent2AgentManagerStub::vftable;
FUN_140079b90(param_1 + 1);
*param_1 = Proud::INetServerEvent::vftable;
FUN_140049b90(param_1);
puVar1 = (undefined8 *)param_1[5];
if (puVar1 != (undefined8 *)0x0) {
param_2 = 1;
(**(code **)*puVar1)();
}
param_1[5] = 0;
FUN_140002190(param_1 + 6,param_2,param_3,param_4);
return;
}

View file

@ -0,0 +1,27 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005460 FUN_140005460
* Pseudocode, not original source. */
void FUN_140005460(longlong param_1,undefined8 param_2,undefined8 param_3,longlong param_4)
{
longlong *plVar1;
short *psVar2;
longlong lVar3;
plVar1 = FUN_140069970(param_1,param_2,param_3,param_4);
*(longlong **)(param_1 + 0x28) = plVar1;
lVar3 = *plVar1;
(**(code **)(lVar3 + 0x10))(plVar1,param_1 + 8);
(**(code **)(**(longlong **)(param_1 + 0x28) + 8))(*(longlong **)(param_1 + 0x28),param_1 + 0x48);
(**(code **)(**(longlong **)(param_1 + 0x28) + 0x130))(*(longlong **)(param_1 + 0x28),param_1);
psVar2 = (short *)(DAT_14017cf28 + 0x30);
if (7 < *(ulonglong *)(DAT_14017cf28 + 0x48)) {
psVar2 = *(short **)psVar2;
}
FUN_140005dd0((longlong *)(param_1 + 0x30),psVar2,lVar3,param_4);
*(undefined4 *)(param_1 + 0x38) = *(undefined4 *)(DAT_14017cf28 + 0x80);
FUN_140037750((undefined8 *)(param_1 + 0x28),psVar2,lVar3,param_4);
return;
}

View file

@ -0,0 +1,258 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400054f0 FUN_1400054f0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_1400054f0(longlong param_1,double param_2,undefined8 param_3,ulonglong param_4)
{
int iVar1;
int *piVar2;
int *piVar3;
longlong lVar4;
undefined8 **ppuVar5;
int **ppiVar6;
_SYSTEMTIME *p_Var7;
undefined8 uVar8;
undefined8 uVar9;
ulonglong uVar10;
undefined8 uVar11;
undefined8 uVar12;
int *piVar13;
int *piVar14;
int iVar15;
int *piVar16;
uint uVar17;
int *piVar18;
int iVar19;
uint uVar20;
uint uVar21;
undefined1 auStackY_138 [32];
undefined8 *local_f0;
undefined8 local_e8;
int *local_e0;
undefined8 local_d8;
undefined8 *local_d0;
undefined8 local_c8;
int *local_c0;
undefined8 local_b8;
int *local_b0;
int *local_a8;
undefined8 local_a0;
undefined8 *local_90;
undefined8 local_88;
undefined8 *local_80;
undefined8 local_78;
undefined8 *local_70;
undefined8 local_68;
undefined8 local_60;
_SYSTEMTIME local_58;
ulonglong local_48;
local_60 = 0xfffffffffffffffe;
local_48 = DAT_14016f5a0 ^ (ulonglong)auStackY_138;
if (20.0 <= param_2 - *(double *)(param_1 + 0x88)) {
local_b0 = (int *)0x0;
local_a8 = (int *)0x0;
local_a0 = 0;
FUN_140039a40(DAT_14017cf20,(longlong *)&local_b0);
piVar14 = local_b0;
if (local_b0 != local_a8) {
do {
piVar18 = (int *)0x0;
iVar1 = *piVar14;
uVar20 = 0;
if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) {
local_70 = (undefined8 *)0x0;
local_68 = 0;
ppuVar5 = &local_70;
}
else {
local_f0 = *(undefined8 **)(DAT_14017cf20 + 0x68);
if (local_f0 == (undefined8 *)0x0) {
local_e8 = 0;
}
else {
local_e8 = *local_f0;
}
ppuVar5 = &local_f0;
}
piVar13 = (int *)*ppuVar5;
piVar3 = (int *)ppuVar5[1];
piVar16 = piVar18;
uVar21 = uVar20;
while (piVar3 != (int *)0x0) {
piVar2 = *(int **)(piVar3 + 4);
if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\b')) {
piVar16 = (int *)(ulonglong)(uint)((int)piVar16 + piVar2[0x2e]);
}
uVar21 = (uint)piVar16;
piVar3 = *(int **)piVar3;
while (piVar3 == (int *)0x0) {
piVar13 = piVar13 + 2;
piVar3 = *(int **)piVar13;
}
if (piVar13 == piVar3) {
piVar3 = piVar18;
}
}
if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) {
local_80 = (undefined8 *)0x0;
local_78 = 0;
ppuVar5 = &local_80;
}
else {
local_90 = *(undefined8 **)(DAT_14017cf20 + 0x68);
if (local_90 == (undefined8 *)0x0) {
local_88 = 0;
}
else {
local_88 = *local_90;
}
ppuVar5 = &local_90;
}
piVar13 = (int *)*ppuVar5;
piVar3 = (int *)ppuVar5[1];
piVar16 = piVar18;
while (piVar3 != (int *)0x0) {
piVar2 = *(int **)(piVar3 + 4);
if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\x01')) {
piVar16 = (int *)(ulonglong)(uint)((int)piVar16 + piVar2[0x2e]);
}
uVar20 = (uint)piVar16;
piVar3 = *(int **)piVar3;
while (piVar3 == (int *)0x0) {
piVar13 = piVar13 + 2;
piVar3 = *(int **)piVar13;
}
if (piVar13 == piVar3) {
piVar3 = piVar18;
}
}
if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) {
local_e0 = (int *)0x0;
local_d8 = 0;
ppiVar6 = &local_e0;
}
else {
local_c0 = *(int **)(DAT_14017cf20 + 0x68);
if (local_c0 == (int *)0x0) {
local_b8 = 0;
}
else {
local_b8 = *(undefined8 *)local_c0;
}
ppiVar6 = &local_c0;
}
piVar13 = *ppiVar6;
piVar3 = ppiVar6[1];
piVar16 = piVar18;
while (iVar19 = (int)piVar16, piVar3 != (int *)0x0) {
piVar2 = *(int **)(piVar3 + 4);
if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\x02')) {
piVar16 = (int *)(ulonglong)(uint)(iVar19 + piVar2[0x2e]);
}
piVar3 = *(int **)piVar3;
while (piVar3 == (int *)0x0) {
piVar13 = piVar13 + 2;
piVar3 = *(int **)piVar13;
}
if (piVar13 == piVar3) {
piVar3 = piVar18;
}
}
iVar15 = 0;
if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) {
local_58.wYear = 0;
local_58.wMonth = 0;
local_58.wDayOfWeek = 0;
local_58.wDay = 0;
local_58.wHour = 0;
local_58.wMinute = 0;
local_58.wSecond = 0;
local_58.wMilliseconds = 0;
p_Var7 = &local_58;
}
else {
local_d0 = *(undefined8 **)(DAT_14017cf20 + 0x68);
if (local_d0 == (undefined8 *)0x0) {
local_c8._0_2_ = 0;
local_c8._2_2_ = 0;
local_c8._4_2_ = 0;
local_c8._6_2_ = 0;
}
else {
local_c8 = *local_d0;
}
p_Var7 = (_SYSTEMTIME *)&local_d0;
}
piVar13 = *(int **)p_Var7;
piVar3 = *(int **)&p_Var7->wHour;
piVar16 = piVar18;
while (piVar3 != (int *)0x0) {
piVar2 = *(int **)(piVar3 + 4);
if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\x03')) {
piVar16 = (int *)(ulonglong)(uint)((int)piVar16 + piVar2[0x2e]);
}
iVar15 = (int)piVar16;
piVar3 = *(int **)piVar3;
while (piVar3 == (int *)0x0) {
piVar13 = piVar13 + 2;
piVar3 = *(int **)piVar13;
}
if (piVar13 == piVar3) {
piVar3 = piVar18;
}
}
uVar17 = iVar15 + iVar19 + uVar20 + uVar21;
if (*(char *)(DAT_14017cf28 + 0x180) != '\0') {
FUN_14000d4a0(param_1,iVar1,(ulonglong)uVar17,param_4);
if (*(longlong *)(param_1 + 0x70) != 0) {
param_4 = (ulonglong)uVar20;
FUN_14000b1c0(*(longlong *)(param_1 + 0x70),iVar1,uVar21,param_4,iVar19,iVar15,uVar17);
}
}
piVar14 = piVar14 + 1;
} while (piVar14 != local_a8);
}
*(double *)(param_1 + 0x88) = param_2;
if (local_b0 != (int *)0x0) {
operator_delete(local_b0);
}
}
if (5.0 <= param_2 - *(double *)(param_1 + 0x90)) {
*(double *)(param_1 + 0x90) = param_2;
FUN_140039230(DAT_14017cf20);
}
if (*(char *)(DAT_14017cf28 + 0x180) != '\0') {
GetLocalTime(&local_58);
lVar4 = DAT_14017cf48;
if (*(uint *)(param_1 + 0x98) != (uint)local_58.wHour) {
if (*(uint *)(param_1 + 0x98) != 0xffffffff) {
piVar14 = (int *)(DAT_14017cf48 + 0x48);
local_e0 = piVar14;
FUN_14003d040(piVar14);
local_d8 = CONCAT71(local_d8._1_7_,1);
uVar8 = FUN_14000bf50(lVar4,0);
uVar9 = FUN_14000bf50(lVar4,1);
uVar10 = FUN_14000bf50(lVar4,2);
uVar11 = FUN_14000bf50(lVar4,3);
uVar12 = FUN_14000bf50(lVar4,4);
local_f0 = (undefined8 *)FUN_14000bf50(lVar4,5);
FUN_14003d0d0((longlong)piVar14);
lVar4 = DAT_14017cf48;
FUN_14003d040((int *)(DAT_14017cf48 + 0x48));
FUN_14003b460((undefined8 *)(lVar4 + 8));
FUN_14003d0d0(lVar4 + 0x48);
if (*(longlong *)(param_1 + 0x70) != 0) {
FUN_14000b980(*(longlong *)(param_1 + 0x70),(int)uVar8,(int)uVar9,uVar10 & 0xffffffff,
(int)uVar12,(int)local_f0,(int)uVar11);
}
}
*(uint *)(param_1 + 0x98) = (uint)local_58.wHour;
}
}
return;
}

View file

@ -0,0 +1,35 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005990 FUN_140005990
* Pseudocode, not original source. */
void FUN_140005990(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_140071d40(param_2,(longlong *)local_res18,param_3,param_4);
puVar5 = (undefined *)*plVar2;
if ((undefined *)*plVar2 == (undefined *)0x0) {
puVar5 = PTR_DAT_14016f010;
}
pwVar4 = L"OnError MagiAgentManagerNetwork : %s";
FUN_14001df30(L"OnError MagiAgentManagerNetwork : %s",puVar5,param_3,param_4);
if (((local_res18[0] != (undefined *)0x0) && (local_res18[0] != PTR_DAT_14016f010)) &&
(local_res18[0] + -8 != (undefined *)0x0)) {
piVar3 = (int *)FUN_14003e7c0(pwVar4,puVar5,param_3,param_4);
FUN_14003d040(piVar3);
piVar1 = (int *)(local_res18[0] + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(local_res18[0] + -8);
}
FUN_14003d0d0((longlong)piVar3);
}
return;
}

View file

@ -0,0 +1,35 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005a30 FUN_140005a30
* Pseudocode, not original source. */
void FUN_140005a30(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_140071d40(param_2,(longlong *)local_res18,param_3,param_4);
puVar5 = (undefined *)*plVar2;
if ((undefined *)*plVar2 == (undefined *)0x0) {
puVar5 = PTR_DAT_14016f010;
}
pwVar4 = L"OnWarning MagiAgentManagerNetwork : %s";
FUN_14001df30(L"OnWarning MagiAgentManagerNetwork : %s",puVar5,param_3,param_4);
if (((local_res18[0] != (undefined *)0x0) && (local_res18[0] != PTR_DAT_14016f010)) &&
(local_res18[0] + -8 != (undefined *)0x0)) {
piVar3 = (int *)FUN_14003e7c0(pwVar4,puVar5,param_3,param_4);
FUN_14003d040(piVar3);
piVar1 = (int *)(local_res18[0] + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(local_res18[0] + -8);
}
FUN_14003d0d0((longlong)piVar3);
}
return;
}

View file

@ -0,0 +1,14 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005ad0 FUN_140005ad0
* Pseudocode, not original source. */
void FUN_140005ad0(undefined8 param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 uVar1;
uVar1 = (**(code **)(*param_2 + 8))(param_2);
FUN_14001e070("OnException MagiAgentManagerNetwork : %s",uVar1,param_3,param_4);
return;
}

View file

@ -0,0 +1,37 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005af0 FUN_140005af0
* Pseudocode, not original source. */
void FUN_140005af0(undefined8 param_1,undefined8 *param_2,undefined8 param_3,undefined8 param_4)
{
int *piVar1;
undefined8 *puVar2;
int *piVar3;
longlong lVar4;
wchar_t *pwVar5;
ulonglong uVar6;
undefined8 uVar7;
undefined *local_res10 [3];
puVar2 = (undefined8 *)
(**(code **)*param_2)(param_2,local_res10,param_3,param_4,0xfffffffffffffffe);
uVar7 = *puVar2;
uVar6 = (ulonglong)*(uint *)(param_2 + 6);
pwVar5 = L"AGENT CONNECT : HostID:[%d][%s]";
lVar4 = DAT_14017c8a8;
FUN_1400ef250(DAT_14017c8a8,L"AGENT CONNECT : HostID:[%d][%s]",uVar6,uVar7);
if (((local_res10[0] != (undefined *)0x0) && (local_res10[0] != PTR_DAT_14016f010)) &&
(local_res10[0] + -8 != (undefined *)0x0)) {
piVar3 = (int *)FUN_14003e7c0(lVar4,pwVar5,uVar6,uVar7);
FUN_14003d040(piVar3);
piVar1 = (int *)(local_res10[0] + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(local_res10[0] + -8);
}
FUN_14003d0d0((longlong)piVar3);
}
return;
}

View file

@ -0,0 +1,80 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005b90 FUN_140005b90
* Pseudocode, not original source. */
void FUN_140005b90(longlong param_1,undefined8 *param_2,undefined8 param_3,undefined8 param_4)
{
int *piVar1;
longlong *plVar2;
longlong *plVar3;
undefined8 *puVar4;
longlong *plVar5;
longlong lVar6;
longlong lVar7;
wchar_t *pwVar8;
ulonglong uVar9;
undefined8 uVar10;
undefined *local_res10;
longlong *local_90;
longlong *local_88;
undefined8 local_80;
undefined8 local_70;
undefined8 local_68;
undefined8 local_60;
undefined8 local_58;
void *local_50 [5];
puVar4 = (undefined8 *)
(**(code **)*param_2)(param_2,&local_res10,param_3,param_4,0xfffffffffffffffe);
uVar10 = *puVar4;
uVar9 = (ulonglong)*(uint *)(param_2 + 6);
pwVar8 = L"AGENT DISCONNECT : HostID:[%d][%s]";
lVar7 = DAT_14017c8a8;
FUN_1400ef250(DAT_14017c8a8,L"AGENT DISCONNECT : HostID:[%d][%s]",uVar9,uVar10);
if (((local_res10 != (undefined *)0x0) && (local_res10 != PTR_DAT_14016f010)) &&
(local_res10 + -8 != (undefined *)0x0)) {
plVar5 = (longlong *)FUN_14003e7c0(lVar7,pwVar8,uVar9,uVar10);
local_90 = plVar5;
FUN_14003d040((int *)plVar5);
local_88 = (longlong *)CONCAT71(local_88._1_7_,1);
piVar1 = (int *)(local_res10 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(local_res10 + -8);
}
FUN_14003d0d0((longlong)plVar5);
}
local_res10 = PTR_DAT_14016f010;
lVar7 = DAT_14017cf20;
lVar6 = FUN_1400395f0(DAT_14017cf20,*(int *)(param_2 + 6));
if (lVar6 != 0) {
*(undefined4 *)(lVar6 + 0xa0) = 0;
local_90 = (longlong *)0x0;
local_88 = (longlong *)0x0;
local_80 = 0;
FUN_1400397d0(lVar7,(ulonglong *)&local_90);
plVar3 = local_88;
plVar2 = local_90;
for (plVar5 = local_90; plVar5 != plVar3; plVar5 = plVar5 + 1) {
lVar7 = *plVar5;
if (*(int *)(lVar7 + 8) == *(int *)(lVar6 + 4)) {
*(undefined4 *)(lVar7 + 0xc4) = 0;
puVar4 = FUN_140005da0(lVar7,local_50);
local_70 = *(undefined8 *)(lVar7 + 0xb8);
local_68 = *(undefined8 *)(lVar7 + 0xc0);
local_60 = *(undefined8 *)(lVar7 + 200);
local_58 = *(undefined8 *)(lVar7 + 0xd0);
FUN_140012020(*(longlong *)(param_1 + 0x78),*(undefined4 *)(lVar7 + 4),&local_70,puVar4);
if (local_50[0] != (void *)0x0) {
operator_delete(local_50[0]);
}
}
}
if (plVar2 != (longlong *)0x0) {
operator_delete(plVar2);
}
}
return;
}

View file

@ -0,0 +1,11 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005d40 FUN_140005d40
* Pseudocode, not original source. */
void FUN_140005d40(longlong param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4)
{
FUN_140005380((undefined8 *)(param_1 + -8),param_2,param_3,param_4);
return;
}

View file

@ -0,0 +1,15 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005d50 FUN_140005d50
* Pseudocode, not original source. */
void FUN_140005d50(undefined8 param_1,undefined8 param_2,longlong *param_3,longlong *param_4)
{
longlong *plVar1;
plVar1 = param_4;
FUN_140002190(param_3,param_2,param_3,param_4);
FUN_140002190(param_4,param_2,param_3,plVar1);
return;
}

View file

@ -0,0 +1,10 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005d80 FUN_140005d80
* Pseudocode, not original source. */
undefined8 FUN_140005d80(void)
{
return 0x85a4;
}

View file

@ -0,0 +1,10 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005d90 FUN_140005d90
* Pseudocode, not original source. */
undefined8 FUN_140005d90(void)
{
return 0x8598;
}

View file

@ -0,0 +1,11 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005da0 FUN_140005da0
* Pseudocode, not original source. */
undefined8 * FUN_140005da0(longlong param_1,undefined8 *param_2)
{
FUN_140004de0(param_2,(longlong *)(param_1 + 0xd8));
return param_2;
}

View file

@ -0,0 +1,171 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140005dd0 FUN_140005dd0
* Pseudocode, not original source. */
longlong * FUN_140005dd0(longlong *param_1,short *param_2,undefined8 param_3,undefined8 param_4)
{
uint uVar1;
uint uVar2;
int *piVar3;
uint *puVar4;
uint *puVar5;
ulonglong uVar6;
short *psVar7;
uint *puVar8;
uint *puVar9;
uint uVar10;
uint uVar11;
ulonglong uVar12;
uint *local_res18;
psVar7 = param_2;
FUN_14003e7c0(param_1,param_2,param_3,param_4);
puVar9 = (uint *)PTR_DAT_14016f010;
local_res18 = (uint *)PTR_DAT_14016f010;
uVar1 = FUN_14003e620(param_2);
uVar12 = 0;
uVar11 = 0;
uVar6 = uVar12;
if ((puVar9 != (uint *)0x0) && (uVar6 = 0, puVar9 != (uint *)PTR_DAT_14016f010)) {
uVar6 = (ulonglong)*(uint *)((longlong)puVar9 + -8);
}
uVar2 = uVar1;
if ((((int)uVar1 <= (int)uVar6) && (uVar2 = uVar11, puVar9 != (uint *)0x0)) &&
(puVar9 != (uint *)PTR_DAT_14016f010)) {
uVar2 = *(uint *)((longlong)puVar9 + -8);
}
uVar10 = 1;
if (1 < (int)uVar2) {
uVar10 = uVar2;
}
uVar2 = uVar11;
if ((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_14016f010)) {
uVar2 = *(uint *)((longlong)puVar9 + -8);
}
if ((int)uVar2 < (int)uVar10) {
if (puVar9 == (uint *)0x0) {
puVar9 = (uint *)PTR_DAT_14016f010;
}
local_res18 = puVar9;
if ((int)uVar10 < 0) {
/* WARNING: Subroutine does not return */
FUN_14003dec0();
}
if (uVar10 == 0) {
local_res18 = (uint *)PTR_DAT_14016f010;
if (((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_14016f010)) &&
(puVar9 + -2 != (uint *)0x0)) {
local_res18 = puVar9;
piVar3 = (int *)FUN_14003e7c0(uVar6,psVar7,PTR_DAT_14016f010,param_4);
FUN_14003d040(piVar3);
puVar4 = puVar9 + -1;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_14003e8b0(puVar9 + -2);
}
FUN_14003d0d0((longlong)piVar3);
local_res18 = (uint *)PTR_DAT_14016f010;
}
}
else {
uVar2 = uVar11;
if ((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_14016f010)) {
uVar2 = puVar9[-2];
}
if (uVar10 != uVar2) {
puVar4 = (uint *)FUN_14003e840((longlong)(int)uVar10 * 2 + 10);
if (puVar4 != (uint *)0x0) {
*puVar4 = 0;
puVar4[1] = 1;
}
*puVar4 = uVar10;
uVar2 = uVar11;
if ((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_14016f010)) {
uVar2 = puVar9[-2];
}
puVar8 = (uint *)PTR_DAT_14016f010;
if ((int)uVar10 < (int)uVar2) {
LAB_140005f29:
if (puVar9 != (uint *)0x0) {
puVar8 = puVar9;
}
}
else {
uVar10 = uVar11;
if (puVar9 != (uint *)0x0) {
if (puVar9 != (uint *)PTR_DAT_14016f010) {
uVar10 = puVar9[-2];
}
goto LAB_140005f29;
}
}
uVar6 = (ulonglong)uVar10;
FUN_14003e650(puVar4 + 2,puVar8,uVar10);
FUN_140002190((longlong *)&local_res18,puVar8,uVar6,param_4);
local_res18 = puVar4 + 2;
}
}
}
FUN_140001df0((longlong *)&local_res18);
puVar9 = local_res18;
puVar4 = local_res18;
if (local_res18 == (uint *)0x0) {
puVar4 = (uint *)PTR_DAT_14016f010;
}
puVar8 = (uint *)(ulonglong)uVar1;
FUN_14003e650(puVar4,param_2,uVar1);
puVar4 = puVar9;
if (puVar9 == (uint *)0x0) {
puVar4 = (uint *)PTR_DAT_14016f010;
}
uVar1 = FUN_14003e620((short *)puVar4);
puVar4 = (uint *)PTR_DAT_14016f010;
uVar6 = uVar12;
if (0 < (int)uVar1) {
uVar6 = (ulonglong)uVar1;
}
uVar1 = 0;
if ((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_14016f010)) {
uVar1 = puVar9[-2];
}
if (((int)uVar1 <= (int)uVar6) && (uVar6 = uVar12, puVar9 != (uint *)0x0)) {
if (puVar9 == (uint *)PTR_DAT_14016f010) goto LAB_140005fdc;
uVar6 = (ulonglong)puVar9[-2];
}
if (((puVar9 != (uint *)PTR_DAT_14016f010) && (puVar9 != (uint *)0x0)) &&
(puVar8 = puVar9 + -2, puVar8 != (uint *)0x0)) {
*puVar8 = (uint)uVar6;
*(undefined2 *)((longlong)puVar9 + (longlong)(int)(uint)uVar6 * 2) = 0;
}
LAB_140005fdc:
puVar5 = (uint *)*param_1;
if ((uint *)*param_1 == (uint *)0x0) {
puVar5 = puVar4;
}
*param_1 = (longlong)puVar5;
if (puVar9 != puVar5) {
piVar3 = (int *)FUN_14003e7c0(puVar4,uVar6,puVar8,param_4);
FUN_14003d040(piVar3);
FUN_140002190(param_1,uVar6,puVar8,param_4);
*param_1 = (longlong)puVar9;
if (((puVar9 != (uint *)PTR_DAT_14016f010) && (puVar9 != (uint *)0x0)) &&
(puVar9 != (uint *)0x8)) {
puVar9[-1] = puVar9[-1] + 1;
}
FUN_14003d0d0((longlong)piVar3);
puVar4 = (uint *)PTR_DAT_14016f010;
}
if (((puVar9 != (uint *)0x0) && (puVar9 != puVar4)) && (puVar9 + -2 != (uint *)0x0)) {
piVar3 = (int *)FUN_14003e7c0(puVar4,uVar6,puVar8,param_4);
FUN_14003d040(piVar3);
puVar4 = puVar9 + -1;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_14003e8b0(puVar9 + -2);
}
FUN_14003d0d0((longlong)piVar3);
}
return param_1;
}

View file

@ -0,0 +1,21 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400060a0 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_140049b90((undefined8 *)this);
if ((param_1 & 1) != 0) {
operator_delete(this);
}
return this;
}

View file

@ -0,0 +1,12 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400060e0 FUN_1400060e0
* Pseudocode, not original source. */
void FUN_1400060e0(undefined8 *param_1)
{
*param_1 = Proud::INetServerEvent::vftable;
FUN_140049b90(param_1);
return;
}

View file

@ -0,0 +1,56 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400060f0 FUN_1400060f0
* Pseudocode, not original source. */
/* WARNING: Removing unreachable block (ram,0x000140006218) */
/* WARNING: Removing unreachable block (ram,0x000140006221) */
/* WARNING: Removing unreachable block (ram,0x000140006242) */
/* WARNING: Removing unreachable block (ram,0x00014000624b) */
undefined8 *
FUN_1400060f0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 *puVar1;
ulonglong uVar2;
undefined7 uVar3;
uVar3 = (undefined7)((ulonglong)param_3 >> 8);
param_1[5] = 0;
FUN_14003e7c0(param_1,param_2,param_3,param_4);
param_1[6] = PTR_DAT_14016f010;
param_1[7] = 0;
*(undefined4 *)(param_1 + 8) = 0;
*param_1 = Proud::INetServerEvent::vftable;
FUN_140079b60(param_1 + 1);
*param_1 = MagiAgentManagerMonitorNetwork::vftable;
param_1[1] = MagiAgentManagerMonitorNetwork::vftable;
puVar1 = param_1 + 9;
FUN_140076890(puVar1);
*puVar1 = AGENTMANAGER2AGENTMONITOR_PROTOCOL::Proxy::vftable;
if (*(int *)((longlong)param_1 + 0x5c) != 1) {
FUN_14003e110((wchar_t *)PTR_u_PIDL_compiler_is_incompatible_to_140170070);
}
*puVar1 = RNP::AgentManager2AgentMonitorProxy::vftable;
*(undefined1 *)(param_1 + 0xc) = 0;
param_1[0xd] = 0;
param_1[0xe] = 0;
param_1[0xf] = 0;
*(undefined1 *)(param_1 + 0x11) = 0;
param_1[0x1b] = 0;
param_1[0x12] = 0;
param_1[0x13] = 0;
param_1[0x14] = 0;
*(undefined4 *)(param_1 + 0x16) = 0x11;
param_1[0x15] = 0;
*(undefined4 *)(param_1 + 0x1a) = 0;
*(undefined4 *)((longlong)param_1 + 0xb4) = 0x3f400000;
*(undefined4 *)(param_1 + 0x17) = 0x3e800000;
*(undefined4 *)((longlong)param_1 + 0xbc) = 0x40100000;
param_1[0x18] = 0x26;
param_1[0x19] = 0;
uVar2 = FUN_140094860();
FUN_14003cf60((undefined4 *)(param_1 + 0x1c),uVar2 & 0xffffffff,CONCAT71(uVar3,1),param_4);
return param_1;
}

View file

@ -0,0 +1,15 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006290 FUN_140006290
* Pseudocode, not original source. */
undefined8 *
FUN_140006290(undefined8 *param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4)
{
FUN_1400062c0(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,29 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400062c0 FUN_1400062c0
* Pseudocode, not original source. */
void FUN_1400062c0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 *puVar1;
*param_1 = MagiAgentManagerMonitorNetwork::vftable;
param_1[1] = MagiAgentManagerMonitorNetwork::vftable;
FUN_14003d110((undefined4 *)(param_1 + 0x1c),param_2,param_3,param_4);
FUN_140006920((char *)(param_1 + 0x11));
param_1[9] = RNP::AgentManager2AgentMonitorProxy::vftable;
FUN_1400768c0(param_1 + 9);
param_1[1] = RNP::AgentMonitor2AgentManagerStub::vftable;
FUN_140079b90(param_1 + 1);
*param_1 = Proud::INetServerEvent::vftable;
FUN_140049b90(param_1);
puVar1 = (undefined8 *)param_1[5];
if (puVar1 != (undefined8 *)0x0) {
param_2 = 1;
(**(code **)*puVar1)();
}
param_1[5] = 0;
FUN_140002190(param_1 + 6,param_2,param_3,param_4);
return;
}

View file

@ -0,0 +1,31 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006380 FUN_140006380
* Pseudocode, not original source. */
void FUN_140006380(longlong param_1,undefined8 param_2,undefined8 param_3,longlong param_4)
{
uint uVar1;
longlong *plVar2;
short *psVar3;
longlong lVar4;
plVar2 = FUN_140069970(param_1,param_2,param_3,param_4);
*(longlong **)(param_1 + 0x28) = plVar2;
lVar4 = *plVar2;
(**(code **)(lVar4 + 0x10))(plVar2,param_1 + 8);
(**(code **)(**(longlong **)(param_1 + 0x28) + 8))(*(longlong **)(param_1 + 0x28),param_1 + 0x48);
(**(code **)(**(longlong **)(param_1 + 0x28) + 0x130))(*(longlong **)(param_1 + 0x28),param_1);
psVar3 = (short *)(DAT_14017cf28 + 0x58);
if (7 < *(ulonglong *)(DAT_14017cf28 + 0x70)) {
psVar3 = *(short **)psVar3;
}
FUN_140005dd0((longlong *)(param_1 + 0x30),psVar3,lVar4,param_4);
uVar1 = *(uint *)(DAT_14017cf28 + 0x84);
*(uint *)(param_1 + 0x38) = uVar1;
FUN_140037750((undefined8 *)(param_1 + 0x28),(ulonglong)uVar1,lVar4,param_4);
FUN_1400ef250(DAT_14017c8a8,L"MONITOR NETWORK INIT : ADDRESS[%s] PORT[%u]",
*(undefined8 *)(param_1 + 0x30),(ulonglong)*(uint *)(param_1 + 0x38));
return;
}

View file

@ -0,0 +1,42 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006430 FUN_140006430
* Pseudocode, not original source. */
void FUN_140006430(longlong param_1)
{
void *pvVar1;
undefined8 *puVar2;
longlong lVar3;
lVar3 = 0;
if (*(longlong *)(param_1 + 0xa8) != 0) {
lVar3 = *(longlong *)(param_1 + 0x98);
}
while( true ) {
if (lVar3 == 0) {
FUN_140006940((char *)(param_1 + 0x88));
puVar2 = *(undefined8 **)(param_1 + 0x28);
if (puVar2 != (undefined8 *)0x0) {
(**(code **)*puVar2)(puVar2,1);
}
*(undefined8 *)(param_1 + 0x28) = 0;
return;
}
if (lVar3 == 0) break;
pvVar1 = *(void **)(lVar3 + 8);
lVar3 = *(longlong *)(lVar3 + 0x10);
if (pvVar1 != (void *)0x0) {
if (7 < *(ulonglong *)((longlong)pvVar1 + 0x20)) {
operator_delete(*(void **)((longlong)pvVar1 + 8));
}
*(undefined8 *)((longlong)pvVar1 + 0x20) = 7;
*(undefined8 *)((longlong)pvVar1 + 0x18) = 0;
*(undefined2 *)((longlong)pvVar1 + 8) = 0;
operator_delete(pvVar1);
}
}
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x80004005);
}

View file

@ -0,0 +1,35 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006500 FUN_140006500
* Pseudocode, not original source. */
void FUN_140006500(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_140071d40(param_2,(longlong *)local_res18,param_3,param_4);
puVar5 = (undefined *)*plVar2;
if ((undefined *)*plVar2 == (undefined *)0x0) {
puVar5 = PTR_DAT_14016f010;
}
pwVar4 = L"OnError MagiAgentManagerMonitorNetwork : %s";
FUN_14001df30(L"OnError MagiAgentManagerMonitorNetwork : %s",puVar5,param_3,param_4);
if (((local_res18[0] != (undefined *)0x0) && (local_res18[0] != PTR_DAT_14016f010)) &&
(local_res18[0] + -8 != (undefined *)0x0)) {
piVar3 = (int *)FUN_14003e7c0(pwVar4,puVar5,param_3,param_4);
FUN_14003d040(piVar3);
piVar1 = (int *)(local_res18[0] + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(local_res18[0] + -8);
}
FUN_14003d0d0((longlong)piVar3);
}
return;
}

View file

@ -0,0 +1,35 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400065a0 FUN_1400065a0
* Pseudocode, not original source. */
void FUN_1400065a0(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_140071d40(param_2,(longlong *)local_res18,param_3,param_4);
puVar5 = (undefined *)*plVar2;
if ((undefined *)*plVar2 == (undefined *)0x0) {
puVar5 = PTR_DAT_14016f010;
}
pwVar4 = L"OnWarning MagiAgentManagerMonitorNetwork : %s";
FUN_14001df30(L"OnWarning MagiAgentManagerMonitorNetwork : %s",puVar5,param_3,param_4);
if (((local_res18[0] != (undefined *)0x0) && (local_res18[0] != PTR_DAT_14016f010)) &&
(local_res18[0] + -8 != (undefined *)0x0)) {
piVar3 = (int *)FUN_14003e7c0(pwVar4,puVar5,param_3,param_4);
FUN_14003d040(piVar3);
piVar1 = (int *)(local_res18[0] + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(local_res18[0] + -8);
}
FUN_14003d0d0((longlong)piVar3);
}
return;
}

View file

@ -0,0 +1,14 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006640 FUN_140006640
* Pseudocode, not original source. */
void FUN_140006640(undefined8 param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 uVar1;
uVar1 = (**(code **)(*param_2 + 8))(param_2);
FUN_14001e070("OnException MagiAgentManagerMonitorNetwork : %s",uVar1,param_3,param_4);
return;
}

View file

@ -0,0 +1,42 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006660 FUN_140006660
* Pseudocode, not original source. */
void FUN_140006660(longlong param_1,undefined8 *param_2)
{
int *piVar1;
uint *puVar2;
undefined8 *puVar3;
int *piVar4;
longlong lVar5;
wchar_t *pwVar6;
ulonglong uVar7;
undefined8 uVar8;
undefined *local_res8;
FUN_14003d040((int *)(param_1 + 0xe0));
puVar2 = (uint *)FUN_14000dde0(DAT_14017cf38,*(int *)(param_2 + 6));
if (puVar2 != (uint *)0x0) {
puVar3 = (undefined8 *)(**(code **)*param_2)(param_2,&local_res8);
uVar8 = *puVar3;
uVar7 = (ulonglong)*puVar2;
pwVar6 = L"MONITOR CONNECT : HostID:[%d][%s]";
lVar5 = DAT_14017c8a8;
FUN_1400ef250(DAT_14017c8a8,L"MONITOR CONNECT : HostID:[%d][%s]",uVar7,uVar8);
if (((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_14016f010)) &&
(local_res8 + -8 != (undefined *)0x0)) {
piVar4 = (int *)FUN_14003e7c0(lVar5,pwVar6,uVar7,uVar8);
FUN_14003d040(piVar4);
piVar1 = (int *)(local_res8 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(local_res8 + -8);
}
FUN_14003d0d0((longlong)piVar4);
}
}
FUN_14003d0d0(param_1 + 0xe0);
return;
}

View file

@ -0,0 +1,81 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006740 FUN_140006740
* Pseudocode, not original source. */
void FUN_140006740(longlong param_1,longlong param_2,int *param_3)
{
int *piVar1;
undefined8 *puVar2;
uint *puVar3;
int *piVar4;
longlong lVar5;
uint *puVar6;
wchar_t *pwVar7;
uint *puVar8;
undefined8 uVar9;
ulonglong uVar10;
undefined *local_res8;
FUN_14003d040((int *)(param_1 + 0xe0));
uVar10 = (ulonglong)*(int *)(param_2 + 0x30);
if (*(longlong *)(DAT_14017cf38 + 0x58) != 0) {
for (puVar2 = *(undefined8 **)
(*(longlong *)(DAT_14017cf38 + 0x38) +
(uVar10 % *(ulonglong *)(DAT_14017cf38 + 0x40)) * 8); puVar2 != (undefined8 *)0x0
; puVar2 = (undefined8 *)*puVar2) {
if (*(int *)(param_2 + 0x30) == *(int *)(puVar2 + 1)) {
if ((puVar2 != (undefined8 *)0x0) && (puVar3 = (uint *)puVar2[2], puVar3 != (uint *)0x0)) {
puVar8 = puVar3 + 2;
puVar6 = puVar8;
if (7 < *(ulonglong *)(puVar3 + 8)) {
puVar6 = *(uint **)puVar8;
}
uVar9 = 0;
FUN_140012160(param_1,(short *)puVar6,0,uVar10);
FUN_140071d40(param_3,(longlong *)&local_res8,uVar9,uVar10);
if (7 < *(ulonglong *)(puVar3 + 8)) {
puVar8 = *(uint **)puVar8;
}
uVar10 = (ulonglong)*puVar3;
pwVar7 = L"MONITOR DISCONNECT : Name:[%s] HostID:[%d] Error:[%s] ";
lVar5 = DAT_14017c8a8;
FUN_1400ef250(DAT_14017c8a8,L"MONITOR DISCONNECT : Name:[%s] HostID:[%d] Error:[%s] ",
puVar8,uVar10);
if (((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_14016f010)) &&
(local_res8 + -8 != (undefined *)0x0)) {
piVar4 = (int *)FUN_14003e7c0(lVar5,pwVar7,puVar8,uVar10);
FUN_14003d040(piVar4);
piVar1 = (int *)(local_res8 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(local_res8 + -8);
}
FUN_14003d0d0((longlong)piVar4);
}
local_res8 = PTR_DAT_14016f010;
uVar10 = (ulonglong)*puVar3 % (ulonglong)*(uint *)(param_1 + 0xb0);
if (*(longlong *)(param_1 + 0x90) == 0) goto LAB_1400068df;
puVar8 = *(uint **)(*(longlong *)(param_1 + 0x90) + uVar10 * 8);
goto joined_r0x0001400068b1;
}
break;
}
}
}
goto LAB_1400068ee;
joined_r0x0001400068b1:
if ((puVar8 == (uint *)0x0) || ((uint)uVar10 != puVar8[8] % *(uint *)(param_1 + 0xb0)))
goto LAB_1400068df;
if (*puVar8 != *puVar3) {
puVar8 = *(uint **)(puVar8 + 4);
goto joined_r0x0001400068b1;
}
FUN_1400069f0((char *)(param_1 + 0x88),puVar8);
LAB_1400068df:
FUN_14000dcb0(DAT_14017cf38,*puVar3);
LAB_1400068ee:
FUN_14003d0d0(param_1 + 0xe0);
return;
}

View file

@ -0,0 +1,10 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006910 FUN_140006910
* Pseudocode, not original source. */
undefined1 FUN_140006910(void)
{
return 1;
}

View file

@ -0,0 +1,11 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006920 FUN_140006920
* Pseudocode, not original source. */
void FUN_140006920(char *param_1)
{
FUN_140006940(param_1);
return;
}

View file

@ -0,0 +1,70 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006940 FUN_140006940
* Pseudocode, not original source. */
void FUN_140006940(char *param_1)
{
longlong *plVar1;
LPVOID pvVar2;
LPVOID pvVar3;
uint uVar4;
*(int *)(param_1 + 0x48) = *(int *)(param_1 + 0x48) + 1;
FUN_140006bc0(param_1);
pvVar3 = *(LPVOID *)(param_1 + 0x10);
while (pvVar3 != (LPVOID)0x0) {
plVar1 = *(longlong **)(param_1 + 0x50);
pvVar2 = *(LPVOID *)((longlong)pvVar3 + 0x10);
if (plVar1 == (longlong *)0x0) {
FUN_14003e8b0(pvVar3);
}
else {
(**(code **)(*plVar1 + 0x18))(plVar1,pvVar3);
}
*(longlong *)(param_1 + 0x20) = *(longlong *)(param_1 + 0x20) + -1;
pvVar3 = pvVar2;
}
FUN_14003e8b0(*(LPVOID *)(param_1 + 8));
param_1[8] = '\0';
param_1[9] = '\0';
param_1[10] = '\0';
param_1[0xb] = '\0';
param_1[0xc] = '\0';
param_1[0xd] = '\0';
param_1[0xe] = '\0';
param_1[0xf] = '\0';
param_1[0x20] = '\0';
param_1[0x21] = '\0';
param_1[0x22] = '\0';
param_1[0x23] = '\0';
param_1[0x24] = '\0';
param_1[0x25] = '\0';
param_1[0x26] = '\0';
param_1[0x27] = '\0';
param_1[0x10] = '\0';
param_1[0x11] = '\0';
param_1[0x12] = '\0';
param_1[0x13] = '\0';
param_1[0x14] = '\0';
param_1[0x15] = '\0';
param_1[0x16] = '\0';
param_1[0x17] = '\0';
param_1[0x18] = '\0';
param_1[0x19] = '\0';
param_1[0x1a] = '\0';
param_1[0x1b] = '\0';
param_1[0x1c] = '\0';
param_1[0x1d] = '\0';
param_1[0x1e] = '\0';
param_1[0x1f] = '\0';
FUN_140006bc0(param_1);
if (*(int *)(param_1 + 0x48) == 0) {
uVar4 = FUN_140006cf0((longlong)param_1,*(longlong *)(param_1 + 0x20));
FUN_140006b10((longlong)param_1,uVar4);
}
FUN_140006bc0(param_1);
*(int *)(param_1 + 0x48) = *(int *)(param_1 + 0x48) + -1;
return;
}

View file

@ -0,0 +1,79 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400069f0 FUN_1400069f0
* Pseudocode, not original source. */
void FUN_1400069f0(char *param_1,LPVOID param_2)
{
uint uVar1;
longlong *plVar2;
ulonglong uVar3;
uint uVar4;
if (param_2 == (LPVOID)0x0) {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x80004005);
}
uVar1 = *(uint *)(param_1 + 0x28);
uVar3 = (ulonglong)*(uint *)((longlong)param_2 + 0x20) % (ulonglong)uVar1;
if (*(longlong *)(param_1 + 0x20) == 1) {
*(undefined8 *)(*(longlong *)(param_1 + 8) + uVar3 * 8) = 0;
param_1[0x10] = '\0';
param_1[0x11] = '\0';
param_1[0x12] = '\0';
param_1[0x13] = '\0';
param_1[0x14] = '\0';
param_1[0x15] = '\0';
param_1[0x16] = '\0';
param_1[0x17] = '\0';
param_1[0x18] = '\0';
param_1[0x19] = '\0';
param_1[0x1a] = '\0';
param_1[0x1b] = '\0';
param_1[0x1c] = '\0';
param_1[0x1d] = '\0';
param_1[0x1e] = '\0';
param_1[0x1f] = '\0';
}
else {
uVar4 = (uint)uVar3;
if (((*(longlong *)((longlong)param_2 + 0x18) == 0) ||
(*(uint *)(*(longlong *)((longlong)param_2 + 0x18) + 0x20) % uVar1 != uVar4)) &&
((*(longlong *)((longlong)param_2 + 0x10) == 0 ||
(*(uint *)(*(longlong *)((longlong)param_2 + 0x10) + 0x20) % uVar1 != uVar4)))) {
*(undefined8 *)(*(longlong *)(param_1 + 8) + uVar3 * 8) = 0;
}
else if (param_2 == *(LPVOID *)(*(longlong *)(param_1 + 8) + (longlong)(int)uVar4 * 8)) {
*(undefined8 *)(*(longlong *)(param_1 + 8) + uVar3 * 8) =
*(undefined8 *)((longlong)param_2 + 0x10);
}
if (param_2 == *(LPVOID *)(param_1 + 0x10)) {
*(undefined8 *)(param_1 + 0x10) = *(undefined8 *)((longlong)param_2 + 0x10);
*(undefined8 *)((longlong)param_2 + 0x18) = 0;
}
if (param_2 == *(LPVOID *)(param_1 + 0x18)) {
*(undefined8 *)(param_1 + 0x18) = *(undefined8 *)((longlong)param_2 + 0x18);
*(undefined8 *)((longlong)param_2 + 0x10) = 0;
}
if (*(longlong *)((longlong)param_2 + 0x18) != 0) {
*(undefined8 *)(*(longlong *)((longlong)param_2 + 0x18) + 0x10) =
*(undefined8 *)((longlong)param_2 + 0x10);
}
if (*(longlong *)((longlong)param_2 + 0x10) != 0) {
*(undefined8 *)(*(longlong *)((longlong)param_2 + 0x10) + 0x18) =
*(undefined8 *)((longlong)param_2 + 0x18);
}
}
plVar2 = *(longlong **)(param_1 + 0x50);
if (plVar2 != (longlong *)0x0) {
(**(code **)(*plVar2 + 0x18))(plVar2,param_2);
*(longlong *)(param_1 + 0x20) = *(longlong *)(param_1 + 0x20) + -1;
FUN_140006bc0(param_1);
return;
}
FUN_14003e8b0(param_2);
*(longlong *)(param_1 + 0x20) = *(longlong *)(param_1 + 0x20) + -1;
FUN_140006bc0(param_1);
return;
}

View file

@ -0,0 +1,37 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006b10 FUN_140006b10
* Pseudocode, not original source. */
undefined8 FUN_140006b10(longlong param_1,uint param_2)
{
ulonglong uVar1;
longlong lVar2;
longlong lVar3;
float fVar4;
float fVar5;
if (*(LPVOID *)(param_1 + 8) != (LPVOID)0x0) {
FUN_14003e8b0(*(LPVOID *)(param_1 + 8));
*(undefined8 *)(param_1 + 8) = 0;
}
lVar2 = 0;
*(uint *)(param_1 + 0x28) = param_2;
fVar5 = (float)param_2 * *(float *)(param_1 + 0x34);
if ((9.223372e+18 < fVar5) && (fVar5 = fVar5 - 9.223372e+18, fVar5 < 9.223372e+18)) {
lVar2 = -0x8000000000000000;
}
fVar4 = (float)param_2 * *(float *)(param_1 + 0x30);
lVar3 = 0;
*(longlong *)(param_1 + 0x38) = (longlong)fVar5 + lVar2;
if ((9.223372e+18 < fVar4) && (fVar4 = fVar4 - 9.223372e+18, fVar4 < 9.223372e+18)) {
lVar3 = -0x8000000000000000;
}
uVar1 = (longlong)fVar4 + lVar3;
if ((ulonglong)((longlong)fVar4 + lVar3) < 0x11) {
uVar1 = 0;
}
*(ulonglong *)(param_1 + 0x40) = uVar1;
return CONCAT71((int7)(uVar1 >> 8),1);
}

View file

@ -0,0 +1,53 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x140006bc0 FUN_140006bc0
* Pseudocode, not original source. */
void FUN_140006bc0(char *param_1)
{
longlong lVar1;
longlong lVar2;
longlong lVar3;
ulonglong uVar4;
exception local_58 [88];
if (*param_1 != '\0') {
uVar4 = 0;
if ((*(longlong *)(param_1 + 0x20) != 0) && (*(longlong *)(param_1 + 8) == 0)) {
FUN_14003db10(local_58,L"CFastMap consistency error #0!",param_1,0);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210);
}
lVar1 = *(longlong *)(param_1 + 0x10);
lVar3 = lVar1;
while (lVar3 != 0) {
lVar2 = *(longlong *)(lVar3 + 0x10);
if ((lVar2 != 0) && (*(longlong *)(lVar2 + 0x18) != lVar3)) {
FUN_14003db10(local_58,L"CFastMap consistency error #1!",param_1,uVar4);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210);
}
if ((lVar3 == lVar1) && (*(longlong *)(lVar3 + 0x18) != 0)) {
FUN_14003db10(local_58,L"CFastMap consistency error #2!",param_1,uVar4);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210);
}
if ((lVar3 == *(longlong *)(param_1 + 0x18)) && (lVar2 != 0)) {
FUN_14003db10(local_58,L"CFastMap consistency error #3!",param_1,uVar4);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210);
}
uVar4 = (ulonglong)((int)uVar4 + 1);
lVar3 = lVar2;
}
if ((int)uVar4 != *(int *)(param_1 + 0x20)) {
for (; lVar1 != 0; lVar1 = *(longlong *)(lVar1 + 0x10)) {
}
FUN_14003db10(local_58,L"CFastMap consistency error #4!",param_1,uVar4);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210);
}
}
return;
}

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