/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14003f480 FUN_14003f480 * Pseudocode, not original source. */ undefined8 FUN_14003f480(longlong *param_1,char *param_2,uint param_3,undefined8 *param_4,uint *param_5, uint param_6,int param_7) { char cVar1; longlong lVar2; uint uVar3; char *pcVar4; longlong lVar5; uint uVar6; uint uVar7; char *pcVar8; longlong lVar9; undefined8 uVar10; if (param_1 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } if (param_2 == (char *)0x0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } if (param_4 == (undefined8 *)0x0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } if (param_5 == (uint *)0x0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } lVar9 = *param_1; pcVar8 = (char *)*param_4; uVar10 = 0; if ((*param_2 != '/') && (*param_2 != '\\')) goto LAB_14003f589; cVar1 = *pcVar8; if ((cVar1 == '/') || (cVar1 == '\\')) { pcVar4 = pcVar8 + 1; } else { if ((cVar1 != '.') || (((cVar1 = pcVar8[1], cVar1 != '/' && (cVar1 != '\\')) && (cVar1 != '\0')))) goto LAB_14003f589; lVar9 = lVar9 + -1; uVar7 = 0; lVar5 = lVar9; uVar6 = param_3 - 1; do { uVar3 = uVar6; lVar2 = lVar5; if (uVar3 == 0) goto LAB_14003f570; uVar7 = uVar3 - 1; } while ((*(char *)(lVar2 + -1) != '/') && (lVar5 = lVar2 + -1, uVar6 = uVar7, *(char *)(lVar2 + -1) != '\\')); if (((-1 < (char)param_6) || (((param_6 >> 8 & 1) != 0 || (param_7 == 0)))) || (param_7 + 1U < uVar7)) { uVar10 = 1; lVar9 = lVar2; param_3 = uVar3; } LAB_14003f570: pcVar4 = pcVar8 + 2; if (param_3 != uVar7 + 1) { lVar9 = lVar9 + 1; goto LAB_14003f589; } } pcVar8 = pcVar4; uVar10 = 1; LAB_14003f589: *param_1 = lVar9; *param_4 = pcVar8; *param_5 = param_3; return uVar10; }