/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400ca9c0 FUN_1400ca9c0 * Pseudocode, not original source. */ longlong * FUN_1400ca9c0(undefined8 param_1,longlong *param_2,longlong *******param_3,longlong *param_4) { int *piVar1; longlong *****ppppplVar2; longlong ************pppppppppppplVar3; char *pcVar4; longlong ******pppppplVar5; longlong ***********ppppppppppplVar6; longlong ************_Str; longlong ******_Str_00; longlong *****_SubStr; longlong ***********_SubStr_00; longlong *plVar7; uint uVar8; uint uVar9; int iVar10; undefined *puVar11; ulonglong uVar12; ulonglong uVar13; longlong *****local_48; longlong ***********local_40; undefined1 local_38; undefined8 local_30; local_30 = 0xfffffffffffffffe; plVar7 = param_4; FUN_14003e7c0(param_1,param_2,param_3,param_4); local_48 = (longlong *****)PTR_DAT_14016f008; puVar11 = (undefined *)*param_4; if ((undefined *)*param_4 == (undefined *)0x0) { puVar11 = PTR_DAT_14016f008; } pppppplVar5 = &local_48; FUN_140040470((longlong *)pppppplVar5,"<%s>",puVar11,plVar7); ppppplVar2 = local_48; _SubStr = local_48; if (local_48 == (longlong *****)0x0) { _SubStr = (longlong *****)PTR_DAT_14016f008; } if (_SubStr == (longlong *****)0x0) { uVar8 = 0xffffffff; } else { pppppplVar5 = *param_3; _Str_00 = (longlong ******)PTR_DAT_14016f008; if (((pppppplVar5 == (longlong ******)0x0) || (_Str_00 = pppppplVar5, pppppplVar5 == (longlong ******)PTR_DAT_14016f008)) || (uVar8 = 0xffffffff, -1 < *(int *)(pppppplVar5 + -1))) { pcVar4 = strstr((char *)_Str_00,(char *)_SubStr); if (pcVar4 == (char *)0x0) { pppppplVar5 = _Str_00; uVar8 = 0xffffffff; } else { pppppplVar5 = *param_3; if (*param_3 == (longlong ******)0x0) { pppppplVar5 = (longlong ******)PTR_DAT_14016f008; } uVar8 = (int)pcVar4 - (int)pppppplVar5; pppppplVar5 = (longlong ******)PTR_DAT_14016f008; if (-1 < (int)uVar8) { iVar10 = 0; if ((ppppplVar2 != (longlong *****)0x0) && (iVar10 = 0, ppppplVar2 != (longlong *****)PTR_DAT_14016f008)) { iVar10 = *(int *)(ppppplVar2 + -1); } uVar8 = uVar8 + iVar10; } } } } FUN_14003e7c0(pppppplVar5,_SubStr,puVar11,plVar7); local_40 = (longlong ***********)PTR_DAT_14016f008; puVar11 = (undefined *)*param_4; if ((undefined *)*param_4 == (undefined *)0x0) { puVar11 = PTR_DAT_14016f008; } _Str = &local_40; FUN_140040470((longlong *)_Str,"",puVar11,plVar7); ppppppppppplVar6 = local_40; _SubStr_00 = local_40; if (local_40 == (longlong ***********)0x0) { _SubStr_00 = (longlong ***********)PTR_DAT_14016f008; } uVar9 = 0xffffffff; if ((_SubStr_00 != (longlong ***********)0x0) && ((((_Str = (longlong ************)*param_3, pppppppppppplVar3 = (longlong ************)PTR_DAT_14016f008, uVar9 = 0xffffffff, _Str == (longlong ************)0x0 || (pppppppppppplVar3 = _Str, _Str == (longlong ************)PTR_DAT_14016f008)) || (-1 < *(int *)(_Str + -1))) && (_Str = pppppppppppplVar3, pcVar4 = strstr((char *)_Str,(char *)_SubStr_00), pcVar4 != (char *)0x0)))) { pppppplVar5 = *param_3; if (*param_3 == (longlong ******)0x0) { pppppplVar5 = (longlong ******)PTR_DAT_14016f008; } uVar9 = (int)pcVar4 - (int)pppppplVar5; } if ((((int)uVar8 < 0) || ((int)uVar9 < 0)) || ((int)uVar9 <= (int)uVar8)) { FUN_14003e7c0(_Str,_SubStr_00,puVar11,plVar7); *param_2 = (longlong)PTR_DAT_14016f008; if (((ppppppppppplVar6 != (longlong ***********)0x0) && (ppppppppppplVar6 != (longlong ***********)PTR_DAT_14016f008)) && (ppppppppppplVar6 + -1 != (longlong ***********)0x0)) { _Str = (longlong ************)FUN_14003e7c0(_Str,_SubStr_00,puVar11,plVar7); local_40 = (longlong ***********)_Str; FUN_14003d040((int *)_Str); local_38 = 1; piVar1 = (int *)((longlong)ppppppppppplVar6 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14003e8b0(ppppppppppplVar6 + -1); } FUN_14003d0d0((longlong)_Str); } if (ppppplVar2 == (longlong *****)0x0) { return param_2; } if (ppppplVar2 == (longlong *****)PTR_DAT_14016f008) { return param_2; } if (ppppplVar2 + -1 == (longlong *****)0x0) { return param_2; } ppppppppppplVar6 = (longlong ***********)FUN_14003e7c0(_Str,_SubStr_00,puVar11,plVar7); local_40 = ppppppppppplVar6; FUN_14003d040((int *)ppppppppppplVar6); local_38 = 1; piVar1 = (int *)((longlong)ppppplVar2 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14003e8b0(ppppplVar2 + -1); } } else { uVar13 = (ulonglong)(uVar9 - uVar8); uVar12 = (ulonglong)uVar8; plVar7 = param_2; FUN_1400c9e20((longlong *)param_3,param_2,uVar8,uVar9 - uVar8); if (((ppppppppppplVar6 != (longlong ***********)0x0) && (ppppppppppplVar6 != (longlong ***********)PTR_DAT_14016f008)) && (ppppppppppplVar6 + -1 != (longlong ***********)0x0)) { param_3 = (longlong *******)FUN_14003e7c0(param_3,plVar7,uVar12,uVar13); local_40 = (longlong ***********)param_3; FUN_14003d040((int *)param_3); local_38 = 1; piVar1 = (int *)((longlong)ppppppppppplVar6 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14003e8b0(ppppppppppplVar6 + -1); } FUN_14003d0d0((longlong)param_3); } if (ppppplVar2 == (longlong *****)0x0) { return param_2; } if (ppppplVar2 == (longlong *****)PTR_DAT_14016f008) { return param_2; } if (ppppplVar2 + -1 == (longlong *****)0x0) { return param_2; } ppppppppppplVar6 = (longlong ***********)FUN_14003e7c0(param_3,plVar7,uVar12,uVar13); local_40 = ppppppppppplVar6; FUN_14003d040((int *)ppppppppppplVar6); local_38 = 1; piVar1 = (int *)((longlong)ppppplVar2 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14003e8b0(ppppplVar2 + -1); } } FUN_14003d0d0((longlong)ppppppppppplVar6); return param_2; }