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_0041c410(pcVar1);
iVar2 = stat(pcVar1,&sStack_a8) //possible issue identified - semgrep
if (iVar2 == 0) {
bVar3 = (sStack_a8.st_nlink & 0xf000) == 0x4000;
goto LAB_0041c610;
}
__ptr = dirname(pcVar1);
iVar2 = make_valid_path(__ptr,param_2);
if (iVar2 == 0) {
LAB_0041c5f0:
bVar3 = false;
}
else {
iVar2 = mkdir(pcVar1,param_2) //possible issue identified - semgrep
bVar3 = true;
if (iVar2 < 0) goto LAB_0041c5f0;
}
if (__ptr != (char *)0x0) {
free(__ptr);
}
LAB_0041c610:
if (pcVar1 != (char *)0x0) {
free(pcVar1);
}
return bVar3;
}