/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14001e8a0 FUN_14001e8a0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_14001e8a0(undefined8 *param_1,longlong *param_2) { ulonglong uVar1; char cVar2; byte bVar3; longlong lVar4; undefined1 auVar5 [16]; __uint64 _Var6; longlong *plVar7; longlong lVar8; int *piVar9; undefined *puVar10; int iVar11; uint uVar12; ulonglong uVar13; size_t sVar14; undefined8 uVar15; char *pcVar16; undefined1 auStack_a8 [32]; longlong *local_88; undefined8 *local_80; undefined8 *local_78; longlong *local_70; undefined8 local_68; char local_60 [32]; ulonglong local_40; local_68 = 0xfffffffffffffffe; local_40 = DAT_14016f5a0 ^ (ulonglong)auStack_a8; iVar11 = 0; piVar9 = (int *)*param_1; uVar15 = *(undefined8 *)piVar9; if (0 < (int)uVar15) { local_88 = local_70; local_80 = param_1; do { bVar3 = *(byte *)((longlong)iVar11 + 0x10 + (longlong)piVar9); if (bVar3 == 0x26) { puVar10 = PTR_s__amp__140174cc0; uVar12 = DAT_140174cc8; if ((((int)uVar15 + -2 <= iVar11) || (*(char *)((longlong)(iVar11 + 1) + 0x10 + (longlong)piVar9) != '#')) || (*(char *)((longlong)(iVar11 + 2) + 0x10 + (longlong)piVar9) != 'x')) { LAB_14001ea85: plVar7 = (longlong *)*param_2; uVar13 = *plVar7 + (ulonglong)uVar12; if (((ulonglong)plVar7[1] < uVar13) && (uVar1 = plVar7[1] + uVar13, (ulonglong)plVar7[1] < uVar1)) { FUN_14001e1f0(param_2,uVar1); } memmove((void *)(*param_2 + *(longlong *)*param_2 + 0x10),puVar10,(ulonglong)uVar12); *(ulonglong *)*param_2 = uVar13; *(undefined1 *)(*param_2 + 0x10 + uVar13) = 0; goto LAB_14001eba5; } lVar8 = (longlong)iVar11; if (iVar11 < (int)uVar15 + -1) { do { plVar7 = (longlong *)*param_2; uVar13 = *plVar7 + 1; if (((ulonglong)plVar7[1] < uVar13) && (uVar1 = plVar7[1] + uVar13, (ulonglong)plVar7[1] < uVar1)) { local_78 = &DAT_14017ce88; lVar4 = *plVar7; if (uVar1 == 0) { plVar7 = &DAT_14017ce88; } else { auVar5._8_8_ = 0; auVar5._0_8_ = uVar1 + 0x1b >> 2; _Var6 = SUB168(ZEXT816(4) * auVar5,0); if (SUB168(ZEXT816(4) * auVar5,8) != 0) { _Var6 = 0xffffffffffffffff; } plVar7 = operator_new(_Var6); *plVar7 = lVar4; *(undefined1 *)((longlong)plVar7 + lVar4 + 0x10) = 0; plVar7[1] = uVar1; local_88 = plVar7; } memcpy(plVar7 + 2,(size_t *)*param_2 + 2,*(size_t *)*param_2); local_70 = (longlong *)param_2[1]; local_78 = (undefined8 *)*param_2; *param_2 = (longlong)plVar7; param_2[1] = (longlong)local_88; local_88 = local_70; if (local_78 != &DAT_14017ce88) { operator_delete__(local_70); } } memmove((void *)(*param_2 + *(longlong *)*param_2 + 0x10), (void *)((longlong)iVar11 + 0x10 + (longlong)piVar9),1); *(ulonglong *)*param_2 = uVar13; *(undefined1 *)(*param_2 + 0x10 + uVar13) = 0; iVar11 = iVar11 + 1; piVar9 = (int *)*local_80; } while ((*(char *)((longlong)piVar9 + lVar8 + 0x11) != ';') && (lVar8 = lVar8 + 1, iVar11 < *piVar9 + -1)); } } else { puVar10 = PTR_DAT_140174cd0; uVar12 = DAT_140174cd8; if (bVar3 == 0x3c) goto LAB_14001ea85; if (bVar3 == 0x3e) { sVar14 = (size_t)DAT_140174ce8; puVar10 = PTR_DAT_140174ce0; } else if (bVar3 == 0x22) { sVar14 = (size_t)DAT_140174cf8; puVar10 = PTR_s__quot__140174cf0; } else { if (bVar3 != 0x27) { if (bVar3 < 0x20) { FUN_14001e1c0(local_60,0x20,"&#x%02X;",(ulonglong)bVar3); lVar8 = -1; pcVar16 = local_60; do { if (lVar8 == 0) break; lVar8 = lVar8 + -1; cVar2 = *pcVar16; pcVar16 = pcVar16 + 1; } while (cVar2 != '\0'); sVar14 = (size_t)(int)(~(uint)lVar8 - 1); plVar7 = (longlong *)*param_2; uVar13 = *plVar7 + sVar14; if (((ulonglong)plVar7[1] < uVar13) && (uVar1 = plVar7[1] + uVar13, (ulonglong)plVar7[1] < uVar1)) { FUN_14001e1f0(param_2,uVar1); } memmove((void *)(*param_2 + *(longlong *)*param_2 + 0x10),local_60,sVar14); *(ulonglong *)*param_2 = uVar13; *(undefined1 *)(*param_2 + 0x10 + uVar13) = 0; } else { FUN_14001e440(param_2,bVar3); } goto LAB_14001eba5; } sVar14 = (size_t)DAT_140174d08; puVar10 = PTR_s__apos__140174d00; } FUN_14001e3c0(param_2,puVar10,sVar14); LAB_14001eba5: iVar11 = iVar11 + 1; } piVar9 = (int *)*local_80; uVar15 = *(undefined8 *)piVar9; } while (iVar11 < (int)uVar15); } return; }