140 lines
3.6 KiB
C
140 lines
3.6 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x14003a320 FUN_14003a320
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
void FUN_14003a320(longlong param_1)
|
|
|
|
{
|
|
ulonglong *puVar1;
|
|
ulonglong *puVar2;
|
|
wchar_t *pwVar3;
|
|
wchar_t *pwVar4;
|
|
ulonglong uVar5;
|
|
wchar_t ******ppppppwVar6;
|
|
ulonglong *puVar7;
|
|
ulonglong uVar8;
|
|
int iVar9;
|
|
undefined1 auStack_128 [32];
|
|
ulonglong *local_108;
|
|
ulonglong *local_100;
|
|
undefined8 local_f8;
|
|
undefined8 local_e8;
|
|
undefined4 local_d8;
|
|
int local_d4;
|
|
char local_cc;
|
|
undefined4 local_c8;
|
|
wchar_t *****local_b0 [3];
|
|
ulonglong local_98;
|
|
undefined2 local_88;
|
|
undefined6 uStack_86;
|
|
undefined8 local_78;
|
|
ulonglong local_70;
|
|
wchar_t local_60;
|
|
undefined6 uStack_5e;
|
|
ulonglong local_50;
|
|
ulonglong local_48;
|
|
ulonglong local_38;
|
|
|
|
local_e8 = 0xfffffffffffffffe;
|
|
local_38 = DAT_14016f5a0 ^ (ulonglong)auStack_128;
|
|
local_108 = (ulonglong *)0x0;
|
|
local_100 = (ulonglong *)0x0;
|
|
local_f8 = 0;
|
|
FUN_140039b70(param_1,(ulonglong *)&local_108);
|
|
puVar2 = local_100;
|
|
puVar1 = local_108;
|
|
iVar9 = 700;
|
|
puVar7 = local_108;
|
|
do {
|
|
if (puVar7 == puVar2) {
|
|
LAB_14003a552:
|
|
if (puVar1 != (ulonglong *)0x0) {
|
|
FUN_14000a5f0(puVar1,puVar2);
|
|
operator_delete(puVar1);
|
|
}
|
|
return;
|
|
}
|
|
FUN_140004f20(&local_d8,(undefined4 *)puVar7);
|
|
pwVar4 = (wchar_t *)CONCAT62(uStack_5e,local_60);
|
|
pwVar3 = &local_60;
|
|
if (7 < local_48) {
|
|
pwVar3 = pwVar4;
|
|
}
|
|
if (L"PATCH" < pwVar3) {
|
|
LAB_14003a432:
|
|
if (local_48 < 5) {
|
|
FUN_140001920((undefined8 *)&local_60,5,local_50);
|
|
pwVar4 = (wchar_t *)CONCAT62(uStack_5e,local_60);
|
|
}
|
|
pwVar3 = &local_60;
|
|
if (7 < local_48) {
|
|
pwVar3 = pwVar4;
|
|
}
|
|
builtin_wcsncpy(pwVar3,L"PATCH",5);
|
|
local_50 = 5;
|
|
pwVar4 = &local_60;
|
|
if (7 < local_48) {
|
|
pwVar4 = (wchar_t *)CONCAT62(uStack_5e,local_60);
|
|
}
|
|
pwVar4[5] = L'\0';
|
|
}
|
|
else {
|
|
pwVar3 = &local_60;
|
|
if (7 < local_48) {
|
|
pwVar3 = pwVar4;
|
|
}
|
|
if (pwVar3 + local_50 < (wchar_t *)((longlong)L"PATCH" + 1)) goto LAB_14003a432;
|
|
pwVar3 = &local_60;
|
|
if (7 < local_48) {
|
|
pwVar3 = pwVar4;
|
|
}
|
|
uVar8 = (longlong)L"PATCH" - (longlong)pwVar3 >> 1;
|
|
if (local_50 < uVar8) {
|
|
std::_Xout_of_range("invalid string position");
|
|
goto LAB_14003a552;
|
|
}
|
|
uVar5 = local_50 - uVar8;
|
|
if (5 < uVar5) {
|
|
uVar5 = 5;
|
|
}
|
|
FUN_140001800((undefined8 *)&local_60,uVar5 + uVar8,0xffffffffffffffff);
|
|
FUN_140001800((undefined8 *)&local_60,0,uVar8);
|
|
}
|
|
if (local_cc == '\r') {
|
|
LAB_14003a4b4:
|
|
local_cc = '\x18';
|
|
local_c8 = 0xc3b1;
|
|
local_d4 = iVar9;
|
|
FUN_140033c30((ulonglong *)&local_60,0x18,iVar9);
|
|
FUN_1400394f0(param_1,&local_d8);
|
|
iVar9 = iVar9 + 1;
|
|
}
|
|
else if (local_cc == '\x15') {
|
|
ppppppwVar6 = local_b0;
|
|
if (7 < local_98) {
|
|
ppppppwVar6 = (wchar_t ******)local_b0[0];
|
|
}
|
|
uVar8 = FUN_14003a250(param_1,(wchar_t *)ppppppwVar6);
|
|
if ((char)uVar8 == '\0') goto LAB_14003a4b4;
|
|
}
|
|
if (7 < local_48) {
|
|
operator_delete((void *)CONCAT62(uStack_5e,local_60));
|
|
}
|
|
local_48 = 7;
|
|
local_50 = 0;
|
|
local_60 = L'\0';
|
|
if (7 < local_70) {
|
|
operator_delete((void *)CONCAT62(uStack_86,local_88));
|
|
}
|
|
local_70 = 7;
|
|
local_78 = 0;
|
|
local_88 = 0;
|
|
if (7 < local_98) {
|
|
operator_delete(local_b0[0]);
|
|
}
|
|
puVar7 = puVar7 + 0x14;
|
|
} while( true );
|
|
}
|
|
|