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;
}