193 lines
5.9 KiB
C
193 lines
5.9 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x1400ca130 FUN_1400ca130
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
ulonglong FUN_1400ca130(undefined *param_1,longlong *param_2,undefined8 param_3,ulonglong param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
char *pcVar3;
|
|
undefined *puVar4;
|
|
longlong *plVar5;
|
|
longlong *plVar6;
|
|
int *piVar7;
|
|
ulonglong uVar8;
|
|
undefined8 uVar9;
|
|
char *pcVar10;
|
|
longlong *plVar11;
|
|
wchar_t *pwVar12;
|
|
undefined **ppuVar13;
|
|
LPCSTR pCVar14;
|
|
wchar_t *pwVar15;
|
|
LPCSTR pCVar16;
|
|
uint uVar17;
|
|
uint uVar18;
|
|
undefined1 auStack_1a8 [32];
|
|
int *local_188;
|
|
undefined1 local_180;
|
|
LPCSTR local_178;
|
|
undefined *local_170;
|
|
longlong *local_168;
|
|
undefined8 local_160;
|
|
longlong *local_158;
|
|
undefined1 local_150;
|
|
wchar_t *local_148;
|
|
wchar_t local_140 [132];
|
|
ulonglong local_38;
|
|
|
|
local_160 = 0xfffffffffffffffe;
|
|
local_38 = DAT_14016f5a0 ^ (ulonglong)auStack_1a8;
|
|
local_168 = param_2;
|
|
FUN_14003e7c0(param_1,param_2,param_3,param_4);
|
|
pCVar16 = PTR_DAT_14016f008;
|
|
local_178 = PTR_DAT_14016f008;
|
|
pcVar3 = (char *)*param_2;
|
|
pcVar10 = PTR_DAT_14016f008;
|
|
if (((pcVar3 == (char *)0x0) || (pcVar10 = pcVar3, pcVar3 == PTR_DAT_14016f008)) ||
|
|
(-1 < *(int *)(pcVar3 + -8))) {
|
|
pcVar3 = strstr(pcVar10,"http");
|
|
uVar17 = 0xffffffff;
|
|
if (pcVar3 != (char *)0x0) {
|
|
puVar4 = (undefined *)*param_2;
|
|
if ((undefined *)*param_2 == (undefined *)0x0) {
|
|
puVar4 = PTR_DAT_14016f008;
|
|
}
|
|
uVar17 = (int)pcVar3 - (int)puVar4;
|
|
}
|
|
}
|
|
else {
|
|
uVar17 = 0xffffffff;
|
|
}
|
|
pcVar3 = (char *)*param_2;
|
|
pcVar10 = PTR_DAT_14016f008;
|
|
if ((((pcVar3 == (char *)0x0) || (pcVar10 = pcVar3, pcVar3 == PTR_DAT_14016f008)) ||
|
|
(uVar18 = 0xffffffff, -1 < *(int *)(pcVar3 + -8))) &&
|
|
(pcVar3 = strstr(pcVar10,".xml"), uVar18 = 0xffffffff, pcVar3 != (char *)0x0)) {
|
|
puVar4 = (undefined *)*param_2;
|
|
if ((undefined *)*param_2 == (undefined *)0x0) {
|
|
puVar4 = PTR_DAT_14016f008;
|
|
}
|
|
uVar18 = (int)pcVar3 - (int)puVar4;
|
|
}
|
|
if (((int)uVar17 < (int)uVar18) && (-1 < (int)uVar17)) {
|
|
uVar18 = (uVar18 - uVar17) + 4;
|
|
param_4 = (ulonglong)uVar18;
|
|
uVar8 = (ulonglong)uVar17;
|
|
ppuVar13 = &local_170;
|
|
plVar6 = param_2;
|
|
plVar5 = FUN_1400c9e20(param_2,(longlong *)ppuVar13,uVar17,uVar18);
|
|
if (pCVar16 == (undefined *)0x0) {
|
|
pCVar16 = PTR_DAT_14016f008;
|
|
}
|
|
local_178 = pCVar16;
|
|
if ((LPCSTR)*plVar5 != pCVar16) {
|
|
plVar6 = (longlong *)FUN_14003e7c0(plVar6,ppuVar13,uVar8,param_4);
|
|
plVar11 = plVar6;
|
|
local_158 = plVar6;
|
|
FUN_14003d040((int *)plVar6);
|
|
local_150 = 1;
|
|
if (((pCVar16 != (LPCSTR)0x0) && (pCVar16 != PTR_DAT_14016f008)) &&
|
|
(pCVar16 + -8 != (LPCSTR)0x0)) {
|
|
piVar7 = (int *)FUN_14003e7c0(plVar11,ppuVar13,uVar8,param_4);
|
|
local_188 = piVar7;
|
|
FUN_14003d040(piVar7);
|
|
local_180 = 1;
|
|
piVar1 = (int *)(pCVar16 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14003e8b0(pCVar16 + -8);
|
|
}
|
|
FUN_14003d0d0((longlong)piVar7);
|
|
}
|
|
pCVar16 = (LPCSTR)*plVar5;
|
|
if (((pCVar16 != PTR_DAT_14016f008) && (pCVar16 != (LPCSTR)0x0)) && (pCVar16 != (LPCSTR)0x8))
|
|
{
|
|
*(int *)(pCVar16 + -4) = *(int *)(pCVar16 + -4) + 1;
|
|
}
|
|
local_178 = pCVar16;
|
|
FUN_14003d0d0((longlong)plVar6);
|
|
}
|
|
if (((local_170 != (undefined *)0x0) && (local_170 != PTR_DAT_14016f008)) &&
|
|
(local_170 + -8 != (undefined *)0x0)) {
|
|
piVar7 = (int *)FUN_14003e7c0(plVar6,ppuVar13,uVar8,param_4);
|
|
local_188 = piVar7;
|
|
FUN_14003d040(piVar7);
|
|
local_180 = 1;
|
|
piVar1 = (int *)(local_170 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14003e8b0(local_170 + -8);
|
|
}
|
|
FUN_14003d0d0((longlong)piVar7);
|
|
}
|
|
}
|
|
pCVar14 = pCVar16;
|
|
if (pCVar16 == (LPCSTR)0x0) {
|
|
pCVar14 = PTR_DAT_14016f008;
|
|
}
|
|
local_148 = local_140;
|
|
FUN_140005110((longlong *)&local_148,pCVar14,3);
|
|
uVar9 = 0;
|
|
pwVar15 = local_148;
|
|
iVar2 = FUN_1400c9ff0((wchar_t *)(param_1 + 0x10),local_148,0);
|
|
pwVar12 = local_148;
|
|
if (local_148 != local_140) {
|
|
free(local_148);
|
|
}
|
|
if (iVar2 == 0) {
|
|
if (((pCVar16 != (LPCSTR)0x0) && (pCVar16 != PTR_DAT_14016f008)) &&
|
|
(pCVar16 + -8 != (LPCSTR)0x0)) {
|
|
piVar7 = (int *)FUN_14003e7c0(pwVar12,pwVar15,uVar9,param_4);
|
|
local_188 = piVar7;
|
|
FUN_14003d040(piVar7);
|
|
local_180 = 1;
|
|
piVar1 = (int *)(pCVar16 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14003e8b0(pCVar16 + -8);
|
|
}
|
|
FUN_14003d0d0((longlong)piVar7);
|
|
}
|
|
uVar8 = FUN_140006e80(param_2);
|
|
uVar8 = uVar8 & 0xffffffffffffff00;
|
|
}
|
|
else if ((wchar_t *)param_1 == L"TICON") {
|
|
if (((pCVar16 != (LPCSTR)0x0) && (pCVar16 != PTR_DAT_14016f008)) &&
|
|
(pCVar16 + -8 != (LPCSTR)0x0)) {
|
|
piVar7 = (int *)FUN_14003e7c0(&DAT_140131724,pwVar15,uVar9,param_4);
|
|
local_188 = piVar7;
|
|
FUN_14003d040(piVar7);
|
|
local_180 = 1;
|
|
piVar1 = (int *)(pCVar16 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14003e8b0(pCVar16 + -8);
|
|
}
|
|
FUN_14003d0d0((longlong)piVar7);
|
|
}
|
|
uVar8 = FUN_140006e80(param_2);
|
|
uVar8 = uVar8 & 0xffffffffffffff00;
|
|
}
|
|
else {
|
|
if (((pCVar16 != (LPCSTR)0x0) && (pCVar16 != PTR_DAT_14016f008)) &&
|
|
(pCVar16 + -8 != (LPCSTR)0x0)) {
|
|
piVar7 = (int *)FUN_14003e7c0(&DAT_140131724,pwVar15,uVar9,param_4);
|
|
local_188 = piVar7;
|
|
FUN_14003d040(piVar7);
|
|
local_180 = 1;
|
|
piVar1 = (int *)(pCVar16 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14003e8b0(pCVar16 + -8);
|
|
}
|
|
FUN_14003d0d0((longlong)piVar7);
|
|
}
|
|
uVar9 = FUN_140006e80(param_2);
|
|
uVar8 = CONCAT71((int7)((ulonglong)uVar9 >> 8),1);
|
|
}
|
|
return uVar8;
|
|
}
|
|
|