/* 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; }