bool make_valid_path(char *param_1,__mode_t param_2)
{
char *pcVar1;
int iVar2;
char *__ptr;
bool bVar3;
stat sStack_a8;
pcVar1 = strdup(param_1);
pcVar1 = (char *)FUN_00406f90(pcVar1);
iVar2 = stat(pcVar1,&sStack_a8) //possible issue identified - semgrep
if (iVar2 == 0) {
bVar3 = (sStack_a8.st_nlink & 0xf000) == 0x4000;
goto LAB_00407190;
}
__ptr = dirname(pcVar1);
iVar2 = make_valid_path(__ptr,param_2);
if (iVar2 == 0) {
LAB_00407170:
bVar3 = false;
}
else {
iVar2 = mkdir(pcVar1,param_2) //possible issue identified - semgrep
bVar3 = true;
if (iVar2 < 0) goto LAB_00407170;
}
if (__ptr != (char *)0x0) {
free(__ptr);
}
LAB_00407190:
if (pcVar1 != (char *)0x0) {
free(pcVar1);
}
return bVar3;
}