
FTSENT * fts_build(FTS *sp,int type)

{
  bool bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  _ftsent *p_Var5;
  FTSENT *pFVar6;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  code *pcVar7;
  code *pcVar8;
  code *pcVar9;
  int *piVar10;
  undefined4 *puVar11;
  FTSENT *pFVar12;
  uint uVar13;
  _ftsent *p_Var14;
  int iVar15;
  _Bool _Var18;
  ushort uVar17;
  leaf_optimization lVar16;
  DIR *pDVar19;
  uint uVar20;
  char *pcVar21;
  undefined4 uVar22;
  undefined4 uVar23;
  size_t nitems;
  uint uVar24;
  uint uVar25;
  FTSENT *pFVar26;
  DIR *pDVar27;
  FTSENT *pFVar28;
  int iVar29;
  FTSENT *local_6c;
  uint local_5c;
  char *local_58;
  int local_54;
  uint local_50;
  int local_40;
  
  pFVar26 = sp->fts_cur;
  pDVar19 = pFVar26->fts_dirp;
  if (pDVar19 == (DIR *)0x0) {
    uVar20 = sp->fts_options;
    if ((uVar20 & 0x204) == 0x200) {
      iVar29 = sp->fts_cwd_fd;
    }
    else {
      iVar29 = -100;
    }
    uVar25 = uVar20 & 0x10;
    if (((uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0)) &&
       (uVar25 = pFVar26->fts_level, uVar25 != 0)) {
      uVar25 = 0x20000;
    }
    local_40 = openat_safer(iVar29,pFVar26->fts_accpath,(uVar20 & 0x800) << 7 | uVar25 | 0x90880);
    if (-1 < local_40) {
      pDVar27 = (DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40);
      if (pDVar27 != (DIR *)0x0) {
        pFVar26->fts_dirp = pDVar27;
        if (pFVar26->fts_info == 0xb) {
          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),
                            (FTS *)0x0);
          pFVar26->fts_info = uVar17;
        }
        else if (((uint)sp->fts_options & 0x100) != 0) {
          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);
          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);
          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);
          if (CONCAT31(extraout_var_00,_Var18) == 0) {
            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();
            *puVar11 = 0xc;
            return (FTSENT *)0x0;
          }
        }
        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {
          local_5c = 100000;
        }
        else {
          local_5c = 0xffffffff;
        }
        if (type == 2) {
LAB_000189a4:
          uVar20 = sp->fts_options;
          bVar1 = false;
          goto LAB_000181a0;
        }
        if ((sp->fts_options & 0x38U) == 0x18) {
          bVar1 = true;
          if (pFVar26->fts_statp[0].st_nlink == 2) {
            lVar16 = leaf_optimization(pFVar26,local_40);
            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;
            bVar1 = false;
            if (type != 3) goto LAB_000189a4;
          }
        }
        else {
LAB_0001873c:
          bVar1 = true;
        }
        if ((((sp->fts_options & 0x200U) == 0) ||
            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&
           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {
          uVar20 = sp->fts_options;
          bVar1 = true;
        }
        else {
          if ((bVar1) && (type == 3)) {
            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();
            pFVar26->fts_errno = *piVar10;
          }
          puVar3 = PTR_closedir_000322ac;
          pFVar26->fts_flags = pFVar26->fts_flags | 1;
          (*(code *)puVar3)(pFVar26->fts_dirp);
          uVar20 = sp->fts_options;
          pFVar26->fts_dirp = (DIR *)0x0;
          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {
            pFVar26->fts_dirp = (DIR *)0x0;
            bVar1 = false;
          }
          else {
            (*(code *)PTR_close_000322b0)(local_40);
            uVar20 = sp->fts_options;
            bVar1 = false;
            pFVar26->fts_dirp = (DIR *)0x0;
          }
        }
        goto LAB_000181a0;
      }
      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();
      uVar22 = *puVar11;
      (*(code *)PTR_close_000322b0)(local_40);
      *puVar11 = uVar22;
    }
    pFVar26->fts_dirp = (DIR *)0x0;
joined_r0x00018a30:
    puVar3 = PTR___errno_location_00032328;
    if (type == 3) {
      pFVar26->fts_info = 4;
      piVar10 = (int *)(*(code *)puVar3)();
      pFVar26->fts_errno = *piVar10;
      return (FTSENT *)0x0;
    }
    return (FTSENT *)0x0;
  }
  local_40 = (*(code *)PTR_dirfd_000323dc)();
  if (local_40 < 0) {
    (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);
    pFVar26->fts_dirp = (DIR *)0x0;
    goto joined_r0x00018a30;
  }
  uVar20 = sp->fts_options;
  if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {
    bVar1 = true;
    local_5c = 100000;
  }
  else {
    local_5c = 0xffffffff;
    bVar1 = true;
  }
LAB_000181a0:
  uVar24 = pFVar26->fts_pathlen;
  uVar25 = uVar24;
  local_50 = uVar24 - 1;
  if (pFVar26->fts_path[uVar24 - 1] != '/') {
    uVar25 = uVar24 + 1;
    local_50 = uVar24;
  }
  if ((uVar20 & 4) == 0) {
    local_58 = (char *)0x0;
  }
  else {
    local_58 = sp->fts_path + local_50 + 1;
    sp->fts_path[local_50] = '/';
  }
  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;
  iVar29 = pFVar26->fts_level;
  pFVar28 = (FTSENT *)0x0;
  nitems = 0;
  bVar2 = false;
  local_54 = 0;
  local_6c = (FTSENT *)0x0;
  pcVar7 = (code *)(PTR_00032104 + 0x72c0);
  pcVar8 = (code *)(PTR_00032104 + 0x746c);
  pcVar9 = (code *)(PTR_00032104 + 0x7820);
  uVar20 = sp->fts_pathlen - uVar25;
  pDVar27 = pFVar26->fts_dirp;
  while (pDVar27 != (DIR *)0x0) {
    piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();
    puVar4 = PTR_readdir64_000322e0;
    *piVar10 = 0;
    puVar11 = (undefined4 *)(*(code *)puVar4)(pDVar27);
    if (puVar11 == (undefined4 *)0x0) {
      if (*piVar10 != 0) {
        pFVar26->fts_errno = *piVar10;
        uVar17 = 7;
        if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {
          uVar17 = 4;
        }
        pFVar26->fts_info = uVar17;
      }
      if (pFVar26->fts_dirp != (DIR *)0x0) {
        (*(code *)PTR_closedir_000322ac)();
        pFVar26->fts_dirp = (DIR *)0x0;
      }
      break;
    }
    if ((((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.')) ||
       ((*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000)))) {
      uVar24 = (*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13);
      pFVar12 = (FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24);
      if (pFVar12 == (FTSENT *)0x0) {
LAB_000188cc:
        iVar29 = *piVar10;
        (*(code *)PTR_free_000323d4)(pFVar12);
        fts_lfree(local_6c);
        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);
        uVar20 = sp->fts_options;
        pFVar26->fts_dirp = (DIR *)0x0;
        pFVar26->fts_info = 7;
        sp->fts_options = uVar20 | 0x4000;
        *piVar10 = iVar29;
        return (FTSENT *)0x0;
      }
      if (uVar20 <= uVar24) {
        pcVar21 = sp->fts_path;
        _Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,
                            (FTS *)(local_50 + 2 + uVar24));
        iVar15 = CONCAT31(extraout_var,_Var18);
        if (iVar15 == 0) goto LAB_000188cc;
        if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {
          local_58 = sp->fts_path + uVar25;
        }
        uVar20 = sp->fts_pathlen - uVar25;
      }
      if (uVar24 + uVar25 < uVar25) {
        (*(code *)PTR_free_000323d4)(pFVar12);
        fts_lfree(local_6c);
        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);
        uVar20 = sp->fts_options;
        pFVar26->fts_dirp = (DIR *)0x0;
        pFVar26->fts_info = 7;
        sp->fts_options = uVar20 | 0x4000;
        *piVar10 = 0x4e;
        return (FTSENT *)0x0;
      }
      uVar13 = sp->fts_options;
      uVar23 = puVar11[1];
      uVar22 = *puVar11;
      pFVar12->fts_parent = sp->fts_cur;
      pFVar12->fts_pathlen = uVar24 + uVar25;
      pFVar12->fts_level = iVar29 + 1;
      *(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4) = uVar23;
      *(undefined4 *)&pFVar12->fts_statp[0].st_ino = uVar22;
      puVar4 = PTR_memmove_000323d8;
      if ((uVar13 & 4) == 0) {
        pFVar12->fts_accpath = (char *)(pFVar12 + 1);
      }
      else {
        pFVar12->fts_accpath = pFVar12->fts_path;
        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);
        uVar13 = sp->fts_options;
      }
      if ((sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||
         ((uVar13 & 0x400) != 0)) {
        uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);
        if ((uVar13 & 0x18) == 0x18) {
          if (uVar24 == 0) {
            pFVar12->fts_info = 0xb;
            goto LAB_00018464;
          }
          if (uVar24 == 4) {
            pFVar12->fts_info = 0xb;
            goto LAB_00018368;
          }
          pFVar12->fts_info = 0xb;
          if (uVar24 - 1 < 0xc) {
            uVar22 = 1;
            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);
          }
          else {
            pFVar12->fts_statp[0].st_mode = 0;
            uVar22 = 1;
          }
        }
        else {
          pFVar12->fts_info = 0xb;
          if (uVar24 - 1 < 0xc) {
LAB_00018368:
            uVar22 = 2;
            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);
          }
          else {
LAB_00018464:
            pFVar12->fts_statp[0].st_mode = 0;
            uVar22 = 2;
          }
        }
        *(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;
        *(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;
      }
      else {
        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);
        pFVar12->fts_info = uVar17;
      }
      pFVar12->fts_link = (_ftsent *)0x0;
      pFVar6 = pFVar12;
      if (local_6c != (FTSENT *)0x0) {
        pFVar28->fts_link = pFVar12;
        pFVar6 = local_6c;
      }
      local_6c = pFVar6;
      pFVar28 = pFVar12;
      if (nitems == 10000) {
        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {
          iVar15 = (*pcVar8)(pFVar26,local_40);
          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {
            bVar2 = false;
            if (local_5c < 0x2712) goto LAB_00018814;
            goto LAB_000183bc;
          }
          bVar2 = true;
        }
        nitems = 0x2711;
      }
      else {
        if (local_5c <= nitems + 1) {
LAB_00018814:
          nitems = nitems + 1;
          break;
        }
LAB_000183bc:
        nitems = nitems + 1;
      }
    }
    pDVar27 = pFVar26->fts_dirp;
  }
  if (local_54 != 0) {
    pcVar21 = sp->fts_path;
    for (p_Var14 = sp->fts_child; p_Var5 = local_6c, p_Var14 != (_ftsent *)0x0;
        p_Var14 = p_Var14->fts_link) {
      if ((_ftsent *)p_Var14->fts_accpath != p_Var14 + 1) {
        p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);
      }
      p_Var14->fts_path = pcVar21;
    }
    while (pFVar28 = p_Var5, -1 < pFVar28->fts_level) {
      if ((FTSENT *)pFVar28->fts_accpath != pFVar28 + 1) {
        pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);
      }
      pFVar28->fts_path = pcVar21;
      p_Var5 = pFVar28->fts_link;
      if (pFVar28->fts_link == (_ftsent *)0x0) {
        p_Var5 = pFVar28->fts_parent;
      }
    }
  }
  if ((sp->fts_options & 4U) != 0) {
    if ((sp->fts_pathlen == uVar25) || (nitems == 0)) {
      local_58 = local_58 + -1;
    }
    *local_58 = '\0';
  }
  if ((pDVar19 == (DIR *)0x0) && (bVar1)) {
    if ((type != 1) && (nitems != 0)) goto LAB_00018870;
    if (pFVar26->fts_level == 0) {
      iVar29 = restore_initial_cwd(sp);
    }
    else {
      iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,
                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);
    }
    if (iVar29 != 0) {
      uVar20 = sp->fts_options;
      pFVar26->fts_info = 7;
      sp->fts_options = uVar20 | 0x4000;
      goto LAB_00018c18;
    }
  }
  if (nitems == 0) {
    if (((type == 3) && (pFVar26->fts_info != 4)) && (pFVar26->fts_info != 7)) {
      pFVar26->fts_info = 6;
    }
LAB_00018c18:
    fts_lfree(local_6c);
    return (FTSENT *)0x0;
  }
LAB_00018870:
  if (bVar2) {
    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)(PTR_00032104 + 0x7120);
    pFVar26 = fts_sort(sp,local_6c,nitems);
    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0;
    return pFVar26;
  }
  if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {
    return local_6c;
  }
  if (nitems == 1) {
    return local_6c;
  }
  pFVar26 = fts_sort(sp,local_6c,nitems);
  return pFVar26;
}



int FUN_00018118(int *param_1,int param_2)

{
  bool bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  code *pcVar5;
  code *pcVar6;
  code *pcVar7;
  int *piVar8;
  undefined4 *puVar9;
  uint uVar10;
  int iVar11;
  undefined2 uVar12;
  int iVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  int iVar17;
  uint uVar18;
  uint uVar19;
  int iVar20;
  int iVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int local_6c;
  uint local_5c;
  undefined1 *local_58;
  int local_54;
  uint local_50;
  int local_40;
  
  iVar20 = *param_1;
  iVar13 = *(int *)(iVar20 + 0xc);
  if (iVar13 == 0) {
    uVar14 = param_1[0xc];
    if ((uVar14 & 0x204) == 0x200) {
      iVar17 = param_1[8];
    }
    else {
      iVar17 = -100;
    }
    uVar19 = uVar14 & 0x10;
    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&
       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {
      uVar19 = 0x20000;
    }
    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),
                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);
    if (-1 < local_40) {
      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);
      if (iVar17 != 0) {
        *(int *)(iVar20 + 0xc) = iVar17;
        if (*(short *)(iVar20 + 0x3c) == 0xb) {
          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);
          *(undefined2 *)(iVar20 + 0x3c) = uVar12;
        }
        else if ((param_1[0xc] & 0x100U) != 0) {
          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);
          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);
          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);
          if (iVar17 == 0) {
            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();
            *puVar9 = 0xc;
            return 0;
          }
        }
        if (param_1[0xb] == 0) {
          local_5c = 100000;
        }
        else {
          local_5c = 0xffffffff;
        }
        if (param_2 == 2) {
LAB_000189a4:
          uVar14 = param_1[0xc];
          bVar1 = false;
          goto LAB_000181a0;
        }
        if ((param_1[0xc] & 0x38U) == 0x18) {
          bVar1 = true;
          if (*(int *)(iVar20 + 100) == 2) {
            iVar17 = FUN_00017604(iVar20,local_40);
            if (iVar17 == 0) goto LAB_0001873c;
            bVar1 = false;
            if (param_2 != 3) goto LAB_000189a4;
          }
        }
        else {
LAB_0001873c:
          bVar1 = true;
        }
        if ((((param_1[0xc] & 0x200U) == 0) ||
            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&
           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {
          uVar14 = param_1[0xc];
          bVar1 = true;
        }
        else {
          if ((bVar1) && (param_2 == 3)) {
            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();
            *(undefined4 *)(iVar20 + 0x20) = *puVar9;
          }
          puVar3 = PTR_closedir_000322ac;
          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;
          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));
          uVar14 = param_1[0xc];
          *(undefined4 *)(iVar20 + 0xc) = 0;
          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {
            *(undefined4 *)(iVar20 + 0xc) = 0;
            bVar1 = false;
          }
          else {
            (*(code *)PTR_close_000322b0)(local_40);
            uVar14 = param_1[0xc];
            bVar1 = false;
            *(undefined4 *)(iVar20 + 0xc) = 0;
          }
        }
        goto LAB_000181a0;
      }
      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();
      uVar15 = *puVar9;
      (*(code *)PTR_close_000322b0)(local_40);
      *puVar9 = uVar15;
    }
    *(undefined4 *)(iVar20 + 0xc) = 0;
joined_r0x00018a30:
    puVar3 = PTR___errno_location_00032328;
    if (param_2 == 3) {
      *(undefined2 *)(iVar20 + 0x3c) = 4;
      puVar9 = (undefined4 *)(*(code *)puVar3)();
      *(undefined4 *)(iVar20 + 0x20) = *puVar9;
      return 0;
    }
    return 0;
  }
  local_40 = (*(code *)PTR_dirfd_000323dc)();
  if (local_40 < 0) {
    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));
    *(undefined4 *)(iVar20 + 0xc) = 0;
    goto joined_r0x00018a30;
  }
  uVar14 = param_1[0xc];
  if (param_1[0xb] == 0) {
    bVar1 = true;
    local_5c = 100000;
  }
  else {
    local_5c = 0xffffffff;
    bVar1 = true;
  }
LAB_000181a0:
  uVar18 = *(uint *)(iVar20 + 0x28);
  uVar19 = uVar18;
  local_50 = uVar18 - 1;
  if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {
    uVar19 = uVar18 + 1;
    local_50 = uVar18;
  }
  if ((uVar14 & 4) == 0) {
    local_58 = (undefined1 *)0x0;
  }
  else {
    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;
    *(undefined1 *)(param_1[6] + local_50) = 0x2f;
  }
  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;
  iVar24 = *(int *)(iVar20 + 0x30);
  iVar23 = 0;
  iVar17 = 0;
  bVar2 = false;
  local_54 = 0;
  local_6c = 0;
  pcVar5 = (code *)(PTR_00032104 + 0x72c0);
  pcVar6 = (code *)(PTR_00032104 + 0x746c);
  pcVar7 = (code *)(PTR_00032104 + 0x7820);
  uVar14 = param_1[9] - uVar19;
  iVar21 = *(int *)(iVar20 + 0xc);
  while (iVar21 != 0) {
    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();
    puVar4 = PTR_readdir64_000322e0;
    *piVar8 = 0;
    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);
    if (puVar9 == (undefined4 *)0x0) {
      if (*piVar8 != 0) {
        *(int *)(iVar20 + 0x20) = *piVar8;
        uVar12 = 7;
        if ((iVar13 == 0) && (iVar17 == 0)) {
          uVar12 = 4;
        }
        *(undefined2 *)(iVar20 + 0x3c) = uVar12;
      }
      if (*(int *)(iVar20 + 0xc) != 0) {
        (*(code *)PTR_closedir_000322ac)();
        *(undefined4 *)(iVar20 + 0xc) = 0;
      }
      break;
    }
    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||
       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {
      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);
      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);
      if (iVar21 == 0) {
LAB_000188cc:
        iVar13 = *piVar8;
        (*(code *)PTR_free_000323d4)(iVar21);
        FUN_0001737c(local_6c);
        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));
        uVar14 = param_1[0xc];
        *(undefined4 *)(iVar20 + 0xc) = 0;
        *(undefined2 *)(iVar20 + 0x3c) = 7;
        param_1[0xc] = uVar14 | 0x4000;
        *piVar8 = iVar13;
        return 0;
      }
      if (uVar14 <= uVar18) {
        iVar22 = param_1[6];
        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);
        if (iVar11 == 0) goto LAB_000188cc;
        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {
          local_58 = (undefined1 *)(param_1[6] + uVar19);
        }
        uVar14 = param_1[9] - uVar19;
      }
      if (uVar18 + uVar19 < uVar19) {
        (*(code *)PTR_free_000323d4)(iVar21);
        FUN_0001737c(local_6c);
        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));
        uVar14 = param_1[0xc];
        *(undefined4 *)(iVar20 + 0xc) = 0;
        *(undefined2 *)(iVar20 + 0x3c) = 7;
        param_1[0xc] = uVar14 | 0x4000;
        *piVar8 = 0x4e;
        return 0;
      }
      uVar10 = param_1[0xc];
      uVar16 = puVar9[1];
      uVar15 = *puVar9;
      *(int *)(iVar21 + 4) = *param_1;
      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;
      *(int *)(iVar21 + 0x30) = iVar24 + 1;
      *(undefined4 *)(iVar21 + 0x5c) = uVar16;
      *(undefined4 *)(iVar21 + 0x58) = uVar15;
      puVar4 = PTR_memmove_000323d8;
      if ((uVar10 & 4) == 0) {
        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;
      }
      else {
        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);
        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);
        uVar10 = param_1[0xc];
      }
      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {
        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);
        if ((uVar10 & 0x18) == 0x18) {
          if (uVar18 == 0) {
            *(undefined2 *)(iVar21 + 0x3c) = 0xb;
            goto LAB_00018464;
          }
          if (uVar18 == 4) {
            *(undefined2 *)(iVar21 + 0x3c) = 0xb;
            goto LAB_00018368;
          }
          *(undefined2 *)(iVar21 + 0x3c) = 0xb;
          if (uVar18 - 1 < 0xc) {
            uVar15 = 1;
            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);
          }
          else {
            *(undefined4 *)(iVar21 + 0x60) = 0;
            uVar15 = 1;
          }
        }
        else {
          *(undefined2 *)(iVar21 + 0x3c) = 0xb;
          if (uVar18 - 1 < 0xc) {
LAB_00018368:
            uVar15 = 2;
            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);
          }
          else {
LAB_00018464:
            *(undefined4 *)(iVar21 + 0x60) = 0;
            uVar15 = 2;
          }
        }
        *(undefined4 *)(iVar21 + 0x84) = uVar15;
        *(undefined4 *)(iVar21 + 0x80) = 0;
      }
      else {
        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);
        *(undefined2 *)(iVar21 + 0x3c) = uVar12;
      }
      *(undefined4 *)(iVar21 + 8) = 0;
      iVar11 = iVar21;
      if (local_6c != 0) {
        *(int *)(iVar23 + 8) = iVar21;
        iVar11 = local_6c;
      }
      local_6c = iVar11;
      iVar23 = iVar21;
      if (iVar17 == 10000) {
        if (param_1[0xb] == 0) {
          iVar21 = (*pcVar6)(iVar20,local_40);
          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {
            bVar2 = false;
            if (local_5c < 0x2712) goto LAB_00018814;
            goto LAB_000183bc;
          }
          bVar2 = true;
        }
        iVar17 = 0x2711;
      }
      else {
        if (local_5c <= iVar17 + 1U) {
LAB_00018814:
          iVar17 = iVar17 + 1;
          break;
        }
LAB_000183bc:
        iVar17 = iVar17 + 1;
      }
    }
    iVar21 = *(int *)(iVar20 + 0xc);
  }
  if (local_54 != 0) {
    iVar21 = param_1[6];
    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {
      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {
        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));
      }
      *(int *)(iVar23 + 0x1c) = iVar21;
    }
    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {
      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {
        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));
      }
      *(int *)(iVar23 + 0x1c) = iVar21;
      iVar24 = *(int *)(iVar23 + 8);
      if (*(int *)(iVar23 + 8) == 0) {
        iVar24 = *(int *)(iVar23 + 4);
      }
    }
  }
  if ((param_1[0xc] & 4U) != 0) {
    if ((param_1[9] == uVar19) || (iVar17 == 0)) {
      local_58 = local_58 + -1;
    }
    *local_58 = 0;
  }
  if ((iVar13 == 0) && (bVar1)) {
    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;
    if (*(int *)(iVar20 + 0x30) == 0) {
      iVar13 = FUN_00017788(param_1);
    }
    else {
      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,
                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);
    }
    if (iVar13 != 0) {
      uVar14 = param_1[0xc];
      *(undefined2 *)(iVar20 + 0x3c) = 7;
      param_1[0xc] = uVar14 | 0x4000;
      goto LAB_00018c18;
    }
  }
  if (iVar17 == 0) {
    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {
      *(undefined2 *)(iVar20 + 0x3c) = 6;
    }
LAB_00018c18:
    FUN_0001737c(local_6c);
    return 0;
  }
LAB_00018870:
  if (bVar2) {
    param_1[0xb] = (int)(PTR_00032104 + 0x7120);
    iVar13 = FUN_00017184(param_1,local_6c,iVar17);
    param_1[0xb] = 0;
    return iVar13;
  }
  if (param_1[0xb] == 0) {
    return local_6c;
  }
  if (iVar17 == 1) {
    return local_6c;
  }
  iVar13 = FUN_00017184(param_1,local_6c,iVar17);
  return iVar13;
}


lui gp,0x2
addiu gp,gp,0x1fb8
addu gp,gp,t9
addiu sp,sp,-0x88
sw s2,0x68(sp)
sw s8,0x80(sp)
or s8,a0,zero
lw s2,0x0(a0)
sw gp,0x10(sp)
sw ra,0x84(sp)
sw s7,0x7c(sp)
sw s6,0x78(sp)
sw s5,0x74(sp)
sw s4,0x70(sp)
sw s3,0x6c(sp)
sw s1,0x64(sp)
sw s0,0x60(sp)
sw a1,0x54(sp)
lw a0,0xc(s2)
beq a0,zero,0x00018674
_sw a0,0x50(sp)
lw t9,-0x7cf4(gp)
jalr t9
_nop
lw gp,0x10(sp)
bltz v0,0x00018c58
_sw v0,0x48(sp)
lw v0,0x2c(s8)
beq v0,zero,0x00018b44
_lw a0,0x30(s8)
li v0,-0x1
sw v0,0x2c(sp)
li v0,0x1
sw v0,0x5c(sp)
lw s1,0x28(s2)
li v1,0x2f
lw v0,0x1c(s2)
addiu a1,s1,-0x1
addu v0,v0,a1
sw a1,0x38(sp)
lb v0,0x0(v0)
beq v0,v1,0x000181cc
_nop
sw s1,0x38(sp)
addiu s1,s1,0x1
andi a0,a0,0x4
beq a0,zero,0x000187c8
_lw v1,0x38(sp)
lw v0,0x18(s8)
addu v0,v0,v1
addiu v1,v0,0x1
sw v1,0x30(sp)
li v1,0x2f
sb v1,0x0(v0)
lw s7,0x30(s2)
or s5,zero,zero
sw s2,0x20(sp)
or s0,zero,zero
sw zero,0x4c(sp)
addiu v0,s7,0x1
sw zero,0x34(sp)
sw zero,0x1c(sp)
sw v0,0x28(sp)
lw v0,-0x7fc8(gp)
lw s4,0x24(s8)
sw v0,0x3c(sp)
lw v0,-0x7fcc(gp)
sw v0,0x40(sp)
lw v0,-0x7fcc(gp)
addiu v0,v0,0x72c0
sw v0,0x24(sp)
lw v0,-0x7fcc(gp)
addiu v0,v0,0x746c
sw v0,0x58(sp)
lw v0,-0x7fcc(gp)
addiu v0,v0,0x7820
sw v0,0x44(sp)
lw v0,0x20(sp)
lw s3,0xc(v0)
beq s3,zero,0x000183d0
_subu s4,s4,s1
lw t9,-0x7da8(gp)
jalr t9
_nop
or a0,s3,zero
lw gp,0x10(sp)
or s3,v0,zero
lw t9,-0x7df0(gp)
jalr t9
_sw zero,0x0(v0)
lw gp,0x10(sp)
beq v0,zero,0x000189b0
_or s6,v0,zero
lw v0,0x30(s8)
andi v0,v0,0x20
bne v0,zero,0x000182a8
_li v0,0x2e
lb v1,0x13(s6)
beq v1,v0,0x000185ec
_nop
lw t9,-0x7d8c(gp)
addiu a1,s6,0x13
or a0,a1,zero
jalr t9
_or s2,a1,zero
lw t9,0x24(sp)
or a1,s2,zero
or a2,v0,zero
or a0,s8,zero
jalr t9
_or s2,v0,zero
lw gp,0x10(sp)
beq v0,zero,0x000188cc
_or s7,v0,zero
sltu v0,s2,s4
beq v0,zero,0x000184cc
_addu a3,s2,s1
sltu v0,a3,s1
bne v0,zero,0x00018534
_lw t9,-0x7cfc(gp)
lw v0,0x30(s8)
addiu a1,s7,0xe8
lw t2,0x0(s8)
lw t1,0x4(s6)
lw t0,0x0(s6)
andi a2,v0,0x4
lw v1,0x28(sp)
sw t2,0x4(s7)
sw a3,0x28(s7)
sw v1,0x30(s7)
sw t1,0x5c(s7)
bne a2,zero,0x000185bc
_sw t0,0x58(s7)
sw a1,0x18(s7)
lw a0,0x2c(s8)
beq a0,zero,0x00018348
_li a1,0x18
andi a0,v0,0x400
beq a0,zero,0x0001864c
_or a3,zero,zero
andi v0,v0,0x18
beq v0,a1,0x00018618
_lbu a0,0x12(s6)
addiu v0,a0,-0x1
li a1,0xb
sltiu a0,v0,0xc
beq a0,zero,0x00018464
_sh a1,0x3c(s7)
lw v1,0x3c(sp)
sll v0,v0,0x2
li a1,0x2
or a0,zero,zero
addiu a2,v1,0x13a0
addu v0,v0,a2
lw v0,0x0(v0)
sw v0,0x60(s7)
sw a1,0x84(s7)
sw a0,0x80(s7)
lw v0,0x1c(sp)
beq v0,zero,0x000185e4
_sw zero,0x8(s7)
sw s7,0x8(s5)
li v0,0x2710
beq s0,v0,0x00018474
_lw v0,0x2c(sp)
addiu s0,s0,0x1
sltu v0,s0,v0
beq v0,zero,0x00018814
_nop
or s5,s7,zero
lw v0,0x20(sp)
lw s3,0xc(v0)
bne s3,zero,0x00018260
_lw t9,-0x7da8(gp)
or s2,v0,zero
lw v0,0x34(sp)
beq v0,zero,0x00018824
_nop
lw v0,0x4(s8)
beq v0,zero,0x0001841c
_lw a0,0x18(s8)
lw v1,0x18(v0)
addiu a1,v0,0xe8
beq v1,a1,0x0001840c
_nop
lw a1,0x1c(v0)
subu v1,v1,a1
addu v1,a0,v1
sw v1,0x18(v0)
sw a0,0x1c(v0)
lw v0,0x8(v0)
bne v0,zero,0x000183ec
_nop
lw v0,0x1c(sp)
lw v1,0x30(v0)
bltz v1,0x00018824
_addiu a1,v0,0xe8
lw v1,0x18(v0)
beq v1,a1,0x00018448
_nop
lw a1,0x1c(v0)
subu v1,v1,a1
addu v1,a0,v1
sw v1,0x18(v0)
lw v1,0x8(v0)
beq v1,zero,0x000189f0
_sw a0,0x1c(v0)
b 0x00018420
_or v0,v1,zero
li v0,0xb
sh v0,0x3c(s7)
sw zero,0x60(s7)
li a1,0x2
b 0x00018388
_or a0,zero,zero
lw v0,0x2c(s8)
beq v0,zero,0x0001848c
_lw a0,0x20(sp)
li s0,0x2711
b 0x000183c0
_or s5,s7,zero
lw t9,0x58(sp)
jalr t9
_lw a1,0x48(sp)
li a0,0x6969
beq v0,a0,0x00018800
_lw gp,0x10(sp)
lui a0,0x102
addiu a0,a0,0x1994
beq v0,a0,0x00018800
_lui a0,0xff53
addiu a0,a0,0x4d42
beq v0,a0,0x00018800
_li v0,0x1
li s0,0x2711
b 0x00018484
_sw v0,0x4c(sp)
lw v0,0x38(sp)
addiu a1,s8,0x24
addiu a0,s8,0x18
lw s4,0x18(s8)
addiu a2,v0,0x2
lw v0,0x40(sp)
addiu t9,v0,0x7a58
bal 0x00017a58
_addu a2,a2,s2
beq v0,zero,0x000188cc
_lw gp,0x10(sp)
lw a1,0x18(s8)
beq a1,s4,0x0001866c
_nop
lw a0,0x30(s8)
andi a0,a0,0x4
beq a0,zero,0x00018518
_addu v1,a1,s1
sw v1,0x30(sp)
lw s4,0x24(s8)
addu a3,s2,s1
sw v0,0x34(sp)
sltu v0,a3,s1
beq v0,zero,0x000182f8
_subu s4,s4,s1
lw t9,-0x7cfc(gp)
or a0,s7,zero
jalr t9
_lw s2,0x20(sp)
lw gp,0x10(sp)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x737c
bal 0x0001737c
_lw a0,0x1c(sp)
lw gp,0x10(sp)
lw t9,-0x7e24(gp)
jalr t9
_lw a0,0xc(s2)
li v1,0x7
lw v0,0x30(s8)
lw ra,0x84(sp)
lw s7,0x7c(sp)
ori v0,v0,0x4000
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
sw zero,0xc(s2)
sh v1,0x3c(s2)
sw v0,0x30(s8)
li v0,0x4e
sw zero,0x1c(sp)
sw v0,0x0(s3)
lw s8,0x80(sp)
lw v0,0x1c(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
jr ra
_addiu sp,sp,0x88
lw a2,0x34(s7)
lw v0,0x1c(s7)
lw t9,-0x7cf8(gp)
lw a0,0x30(sp)
addiu a2,a2,0x1
jalr t9
_sw v0,0x18(s7)
lw gp,0x10(sp)
b 0x00018330
_lw v0,0x30(s8)
b 0x000183a0
_sw s7,0x1c(sp)
lb v0,0x14(s6)
beq v0,zero,0x0001860c
_lui a0,0xffff
lw v0,0x14(s6)
lui v1,0x2e00
and v0,v0,a0
bne v0,v1,0x000182ac
_lw t9,-0x7d8c(gp)
or s7,s5,zero
b 0x000183c0
_or s5,s7,zero
beq a0,zero,0x0001845c
_nop
li a1,0x4
beq a0,a1,0x000187d0
_addiu v0,a0,-0x1
li a1,0xb
sltiu a0,v0,0xc
bne a0,zero,0x000187dc
_sh a1,0x3c(s7)
sw zero,0x60(s7)
li a1,0x1
b 0x00018388
_or a0,zero,zero
lw a0,0x20(s8)
lw t9,0x44(sp)
addiu a1,s8,0x30
jalr t9
_or a2,s7,zero
lw gp,0x10(sp)
b 0x00018390
_sh v0,0x3c(s7)
b 0x00018518
_lw v0,0x34(sp)
lw v0,0x30(s8)
li v1,0x200
andi a0,v0,0x204
beq a0,v1,0x00018ae0
_nop
li a0,-0x64
andi a2,v0,0x10
beq a2,zero,0x000186a4
_lw a1,0x18(s2)
andi v1,v0,0x1
bne v1,zero,0x00018958
_lui a2,0x2
lui v1,0x4
lw t9,-0x7ed8(gp)
sll v0,v0,0x7
and v0,v0,v1
or v0,v0,a2
lui a2,0x9
addiu a2,a2,0x880
bal 0x0001dba0
_or a2,v0,a2
lw gp,0x10(sp)
bltz v0,0x00018a28
_sw v0,0x48(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x48(sp)
beq v0,zero,0x000189fc
_lw gp,0x10(sp)
lhu a0,0x3c(s2)
li v1,0xb
beq a0,v1,0x00018c30
_sw v0,0xc(s2)
lw a0,0x30(s8)
andi v0,a0,0x100
bne v0,zero,0x00018b6c
_lw t9,-0x7fcc(gp)
lw v0,0x2c(s8)
beq v0,zero,0x00018b5c
_li v0,-0x1
sw v0,0x2c(sp)
lw v0,0x54(sp)
li v1,0x2
beq v0,v1,0x000189a4
_nop
lw v0,0x30(s8)
li a0,0x18
andi v0,v0,0x38
beq v0,a0,0x0001896c
_nop
li s0,0x1
lw v0,0x30(s8)
andi v0,v0,0x200
bne v0,zero,0x00018be0
_lw t9,-0x7fcc(gp)
or a3,zero,zero
lw a2,0x48(sp)
or a1,s2,zero
addiu t9,t9,0x7c2c
bal 0x00017c2c
_or a0,s8,zero
beq v0,zero,0x00018c98
_lw gp,0x10(sp)
beq s0,zero,0x00018784
_lw v1,0x54(sp)
li v0,0x3
beq v1,v0,0x00018cf8
_lw t9,-0x7da8(gp)
lhu v0,0x3e(s2)
lw t9,-0x7e24(gp)
lw a0,0xc(s2)
ori v0,v0,0x1
jalr t9
_sh v0,0x3e(s2)
lw a0,0x30(s8)
lw gp,0x10(sp)
andi v0,a0,0x200
beq v0,zero,0x000187bc
_sw zero,0xc(s2)
lw v0,0x48(sp)
bgez v0,0x00018cc4
_lw t9,-0x7e20(gp)
sw zero,0xc(s2)
b 0x000181a0
_sw zero,0x5c(sp)
b 0x000181f0
_sw zero,0x30(sp)
li a0,0xb
b 0x00018368
_sh a0,0x3c(s7)
lw v1,0x3c(sp)
sll v0,v0,0x2
li a1,0x1
or a0,zero,zero
addiu a2,v1,0x13a0
addu v0,v0,a2
lw v0,0x0(v0)
b 0x00018388
_sw v0,0x60(s7)
lw v0,0x2c(sp)
addiu s0,s0,0x1
sltu v0,s0,v0
bne v0,zero,0x000183bc
_sw zero,0x4c(sp)
lw s2,0x20(sp)
lw v0,0x34(sp)
bne v0,zero,0x000183e0
_nop
lw v0,0x30(s8)
andi v0,v0,0x4
beq v0,zero,0x0001885c
_lw v0,0x50(sp)
lw v0,0x24(s8)
beq v0,s1,0x00018848
_lw v0,0x30(sp)
bne s0,zero,0x00018854
_nop
addiu v0,v0,-0x1
sw v0,0x30(sp)
lw v0,0x30(sp)
sb zero,0x0(v0)
lw v0,0x50(sp)
beq v0,zero,0x00018a70
_lw v0,0x5c(sp)
beq s0,zero,0x00018c08
_lw v1,0x54(sp)
lw v0,0x4c(sp)
bne v0,zero,0x00018ae8
_lw v0,-0x7fcc(gp)
lw v0,0x2c(s8)
beq v0,zero,0x00018924
_li v0,0x1
beq s0,v0,0x00018928
_lw ra,0x84(sp)
lw t9,-0x7fcc(gp)
or a2,s0,zero
lw a1,0x1c(sp)
or a0,s8,zero
lw s8,0x80(sp)
addiu t9,t9,0x7184
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
b 0x00017184
_addiu sp,sp,0x88
lw t9,-0x7cfc(gp)
or a0,s7,zero
lw s2,0x20(sp)
jalr t9
_lw s0,0x0(s3)
lw gp,0x10(sp)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x737c
bal 0x0001737c
_lw a0,0x1c(sp)
lw gp,0x10(sp)
lw t9,-0x7e24(gp)
jalr t9
_lw a0,0xc(s2)
li v1,0x7
lw v0,0x30(s8)
sw zero,0x1c(sp)
sw zero,0xc(s2)
ori v0,v0,0x4000
sh v1,0x3c(s2)
sw v0,0x30(s8)
sw s0,0x0(s3)
lw ra,0x84(sp)
lw v0,0x1c(sp)
lw s8,0x80(sp)
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x88
lw a2,0x30(s2)
beq a2,zero,0x000186a8
_lui v1,0x4
b 0x000186a8
_lui a2,0x2
lw v0,0x64(s2)
bne v0,v1,0x00018740
_li s0,0x1
lw t9,-0x7fcc(gp)
or a0,s2,zero
addiu t9,t9,0x7604
bal 0x00017604
_lw a1,0x48(sp)
beq v0,zero,0x0001873c
_lw gp,0x10(sp)
lw v1,0x54(sp)
li v0,0x3
beq v1,v0,0x00018740
_or s0,zero,zero
lw a0,0x30(s8)
b 0x000181a0
_sw zero,0x5c(sp)
lw v0,0x0(s3)
beq v0,zero,0x000189d0
_lw s2,0x20(sp)
sw v0,0x20(s2)
lw v0,0x50(sp)
beq v0,zero,0x00018d10
_li v0,0x7
sh v0,0x3c(s2)
lw a0,0xc(s2)
beq a0,zero,0x00018818
_lw t9,-0x7e24(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00018818
_sw zero,0xc(s2)
lw v1,0x4(v0)
b 0x00018420
_or v0,v1,zero
lw t9,-0x7da8(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s0,v0,zero
lw s1,0x0(v0)
lw t9,-0x7e20(gp)
jalr t9
_lw a0,0x48(sp)
lw gp,0x10(sp)
sw s1,0x0(s0)
lw v1,0x54(sp)
li v0,0x3
beq v1,v0,0x00018c78
_sw zero,0xc(s2)
sw zero,0x1c(sp)
lw ra,0x84(sp)
lw v0,0x1c(sp)
lw s8,0x80(sp)
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x88
beq v0,zero,0x00018864
_lw v1,0x54(sp)
li v0,0x1
beq v1,v0,0x00018a8c
_nop
bne s0,zero,0x00018870
_lw v0,0x4c(sp)
lw v0,0x30(s2)
beq v0,zero,0x00018ce0
_lw t9,-0x7fcc(gp)
lw a3,-0x7fc8(gp)
li a2,-0x1
lw t9,-0x7fcc(gp)
or a0,s8,zero
lw a1,0x4(s2)
addiu t9,t9,0x7c2c
bal 0x00017c2c
_addiu a3,a3,0x1390
lw gp,0x10(sp)
sltu v0,zero,v0
beq v0,zero,0x00018864
_li v1,0x7
lw v0,0x30(s8)
lw a0,0x1c(sp)
sh v1,0x3c(s2)
ori v0,v0,0x4000
b 0x00018c18
_sw v0,0x30(s8)
b 0x0001868c
_lw a0,0x20(s8)
or a2,s0,zero
lw t9,-0x7fcc(gp)
or a0,s8,zero
lw a1,0x1c(sp)
addiu v0,v0,0x7120
addiu t9,t9,0x7184
bal 0x00017184
_sw v0,0x2c(s8)
lw ra,0x84(sp)
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
sw v0,0x1c(sp)
sw zero,0x2c(s8)
lw v0,0x1c(sp)
lw s8,0x80(sp)
jr ra
_addiu sp,sp,0x88
li v0,0x1
sw v0,0x5c(sp)
lui v0,0x1
ori v0,v0,0x86a0
b 0x000181a0
_sw v0,0x2c(sp)
lui v0,0x1
ori v0,v0,0x86a0
b 0x00018718
_sw v0,0x2c(sp)
addiu s0,s8,0x38
or a2,s2,zero
addiu t9,t9,0x7fe4
bal 0x00017fe4
_or a1,s0,zero
or a3,zero,zero
lw gp,0x10(sp)
addiu a1,s8,0x30
lw a0,0x20(s8)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x7820
bal 0x00017820
_or a2,s2,zero
or a2,s2,zero
lw gp,0x10(sp)
or a1,s0,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x7eb0
bal 0x00017eb0
_lw a0,0x30(s8)
bne v0,zero,0x00018708
_lw gp,0x10(sp)
lw t9,-0x7da8(gp)
jalr t9
_nop
li v1,0xc
sw zero,0x1c(sp)
b 0x00018924
_sw v1,0x0(v0)
lw t9,-0x7ec8(gp)
li a2,0x3
lw a0,0x48(sp)
bal 0x0001e380
_li a1,0x406
lw gp,0x10(sp)
bltz v0,0x00018770
_sw v0,0x48(sp)
b 0x00018750
_lw t9,-0x7fcc(gp)
li v0,0x3
beq v1,v0,0x00018ca8
_li v1,0x4
lw a0,0x1c(sp)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x737c
bal 0x0001737c
_nop
b 0x00018a3c
_sw zero,0x1c(sp)
lw t9,-0x7fcc(gp)
or a3,zero,zero
lw a0,0x20(s8)
addiu a1,s8,0x30
addiu t9,t9,0x7820
bal 0x00017820
_or a2,s2,zero
lw gp,0x10(sp)
b 0x00018708
_sh v0,0x3c(s2)
lw t9,-0x7e24(gp)
jalr t9
_lw a0,0xc(s2)
li v0,0x3
lw v1,0x54(sp)
lw gp,0x10(sp)
bne v1,v0,0x00018a38
_sw zero,0xc(s2)
lw t9,-0x7da8(gp)
li v0,0x4
jalr t9
_sh v0,0x3c(s2)
lw v0,0x0(v0)
sw zero,0x1c(sp)
b 0x00018924
_sw v0,0x20(s2)
li v0,0x1
lw a0,0x30(s8)
b 0x000181a0
_sw v0,0x5c(sp)
lhu v0,0x3c(s2)
beq v0,v1,0x00018c14
_li v1,0x7
beq v0,v1,0x00018c14
_li v0,0x6
b 0x00018c14
_sh v0,0x3c(s2)
jalr t9
_or a0,v0,zero
lw gp,0x10(sp)
lw a0,0x30(s8)
sw zero,0x5c(sp)
b 0x000181a0
_sw zero,0xc(s2)
addiu t9,t9,0x7788
bal 0x00017788
_or a0,s8,zero
lw gp,0x10(sp)
b 0x00018ac0
_sltu v0,zero,v0
jalr t9
_nop
lw v0,0x0(v0)
lw gp,0x10(sp)
b 0x00018784
_sw v0,0x20(s2)
li v1,0x4
b 0x000189cc
_movz v0,v1,s0
(translation_unit "int FUN_00018118(int *param_1,int param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  code *pcVar5;\n  code *pcVar6;\n  code *pcVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int iVar11;\n  undefined2 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int local_6c;\n  uint local_5c;\n  undefined1 *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  iVar20 = *param_1;\n  iVar13 = *(int *)(iVar20 + 0xc);\n  if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }\n  uVar14 = param_1[0xc];\n  if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);\n  uVar19 = uVar18;\n  local_50 = uVar18 - 1;\n  if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }\n  if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar24 = *(int *)(iVar20 + 0x30);\n  iVar23 = 0;\n  iVar17 = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = 0;\n  pcVar5 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar6 = (code *)(PTR_00032104 + 0x746c);\n  pcVar7 = (code *)(PTR_00032104 + 0x7820);\n  uVar14 = param_1[9] - uVar19;\n  iVar21 = *(int *)(iVar20 + 0xc);\n  while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }\n  if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }\n  if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }\n  if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }\n  if (param_1[0xb] == 0) {\n    return local_6c;\n  }\n  if (iVar17 == 1) {\n    return local_6c;\n  }\n  iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n  return iVar13;\n}\n\n" (function_definition "int FUN_00018118(int *param_1,int param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  code *pcVar5;\n  code *pcVar6;\n  code *pcVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int iVar11;\n  undefined2 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int local_6c;\n  uint local_5c;\n  undefined1 *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  iVar20 = *param_1;\n  iVar13 = *(int *)(iVar20 + 0xc);\n  if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }\n  uVar14 = param_1[0xc];\n  if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);\n  uVar19 = uVar18;\n  local_50 = uVar18 - 1;\n  if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }\n  if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar24 = *(int *)(iVar20 + 0x30);\n  iVar23 = 0;\n  iVar17 = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = 0;\n  pcVar5 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar6 = (code *)(PTR_00032104 + 0x746c);\n  pcVar7 = (code *)(PTR_00032104 + 0x7820);\n  uVar14 = param_1[9] - uVar19;\n  iVar21 = *(int *)(iVar20 + 0xc);\n  while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }\n  if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }\n  if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }\n  if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }\n  if (param_1[0xb] == 0) {\n    return local_6c;\n  }\n  if (iVar17 == 1) {\n    return local_6c;\n  }\n  iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n  return iVar13;\n}" primitive_type (function_declarator "FUN_00018118(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  code *pcVar5;\n  code *pcVar6;\n  code *pcVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int iVar11;\n  undefined2 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int local_6c;\n  uint local_5c;\n  undefined1 *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  iVar20 = *param_1;\n  iVar13 = *(int *)(iVar20 + 0xc);\n  if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }\n  uVar14 = param_1[0xc];\n  if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);\n  uVar19 = uVar18;\n  local_50 = uVar18 - 1;\n  if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }\n  if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar24 = *(int *)(iVar20 + 0x30);\n  iVar23 = 0;\n  iVar17 = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = 0;\n  pcVar5 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar6 = (code *)(PTR_00032104 + 0x746c);\n  pcVar7 = (code *)(PTR_00032104 + 0x7820);\n  uVar14 = param_1[9] - uVar19;\n  iVar21 = *(int *)(iVar20 + 0xc);\n  while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }\n  if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }\n  if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }\n  if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }\n  if (param_1[0xb] == 0) {\n    return local_6c;\n  }\n  if (iVar17 == 1) {\n    return local_6c;\n  }\n  iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n  return iVar13;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined2 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined1 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (expression_statement "iVar20 = *param_1;" (assignment_expression "iVar20 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar13 = *(int *)(iVar20 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar20 + 0xc)" identifier = (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }" { (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (if_statement "if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }" if (parenthesized_expression "((uVar14 & 0x204) == 0x200)" ( (binary_expression "(uVar14 & 0x204) == 0x200" (parenthesized_expression "(uVar14 & 0x204)" ( (binary_expression "uVar14 & 0x204" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar17 = param_1[8];\n    }" { (expression_statement "iVar17 = param_1[8];" (assignment_expression "iVar17 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      iVar17 = -100;\n    }" else (compound_statement "{\n      iVar17 = -100;\n    }" { (expression_statement "iVar17 = -100;" (assignment_expression "iVar17 = -100" identifier = number_literal) ;) }))) (expression_statement "uVar19 = uVar14 & 0x10;" (assignment_expression "uVar19 = uVar14 & 0x10" identifier = (binary_expression "uVar14 & 0x10" identifier & number_literal)) ;) (if_statement "if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }" if (parenthesized_expression "(((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0))" ( (binary_expression "((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)" (parenthesized_expression "((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0))" ( (binary_expression "(uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)" (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar19 = 0x20000, (uVar14 & 1) != 0)" ( (comma_expression "uVar19 = 0x20000, (uVar14 & 1) != 0" (assignment_expression "uVar19 = 0x20000" identifier = number_literal) , (binary_expression "(uVar14 & 1) != 0" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)" ( (comma_expression "uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0" (assignment_expression "uVar19 = *(uint *)(iVar20 + 0x30)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x30)" * (cast_expression "(uint *)(iVar20 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) ))))) , (binary_expression "uVar19 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      uVar19 = 0x20000;\n    }" { (expression_statement "uVar19 = 0x20000;" (assignment_expression "uVar19 = 0x20000" identifier = number_literal) ;) })) (expression_statement "local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);" (assignment_expression "local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880)" identifier = (call_expression "openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880)" identifier (argument_list "(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880)" ( identifier , (pointer_expression "*(undefined4 *)(iVar20 + 0x18)" * (cast_expression "(undefined4 *)(iVar20 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x18)" ( (binary_expression "iVar20 + 0x18" identifier + number_literal) )))) , (binary_expression "(uVar14 & 0x800) << 7 | uVar19 | 0x90880" (binary_expression "(uVar14 & 0x800) << 7 | uVar19" (binary_expression "(uVar14 & 0x800) << 7" (parenthesized_expression "(uVar14 & 0x800)" ( (binary_expression "uVar14 & 0x800" identifier & number_literal) )) << number_literal) | identifier) | number_literal) )))) ;) (if_statement "if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }" if (parenthesized_expression "(-1 < local_40)" ( (binary_expression "-1 < local_40" number_literal < identifier) )) (compound_statement "{\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }" { (expression_statement "iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);" (assignment_expression "iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40)" identifier = (call_expression "(*(code *)PTR_fdopendir_000322f4)(local_40)" (parenthesized_expression "(*(code *)PTR_fdopendir_000322f4)" ( (pointer_expression "*(code *)PTR_fdopendir_000322f4" * (cast_expression "(code *)PTR_fdopendir_000322f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (if_statement "if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }" { (expression_statement "*(int *)(iVar20 + 0xc) = iVar17;" (assignment_expression "*(int *)(iVar20 + 0xc) = iVar17" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" if (parenthesized_expression "(*(short *)(iVar20 + 0x3c) == 0xb)" ( (binary_expression "*(short *)(iVar20 + 0x3c) == 0xb" (pointer_expression "*(short *)(iVar20 + 0x3c)" * (cast_expression "(short *)(iVar20 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }" { (expression_statement "uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);" (assignment_expression "uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0)" identifier = (call_expression "FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0)" identifier (argument_list "(param_1[8],param_1 + 0xc,iVar20,0)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = uVar12;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = uVar12" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" else (if_statement "if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" if (parenthesized_expression "((param_1[0xc] & 0x100U) != 0)" ( (binary_expression "(param_1[0xc] & 0x100U) != 0" (parenthesized_expression "(param_1[0xc] & 0x100U)" ( (binary_expression "param_1[0xc] & 0x100U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" { (expression_statement "FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);" (call_expression "FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20)" identifier (argument_list "(param_1[0xc],param_1 + 0xe,iVar20)" ( (subscript_expression "param_1[0xc]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xe" identifier + number_literal) , identifier ))) ;) (expression_statement "FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);" (call_expression "FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0)" identifier (argument_list "(param_1[8],param_1 + 0xc,iVar20,0)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);" (assignment_expression "iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20)" identifier = (call_expression "FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20)" identifier (argument_list "(param_1[0xc],param_1 + 0xe,iVar20)" ( (subscript_expression "param_1[0xc]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xe" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }" { (expression_statement "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar9 = 0xc;" (assignment_expression "*puVar9 = 0xc" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) })))) (if_statement "if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }" if (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          local_5c = 100000;\n        }" { (expression_statement "local_5c = 100000;" (assignment_expression "local_5c = 100000" identifier = number_literal) ;) }) (else_clause "else {\n          local_5c = 0xffffffff;\n        }" else (compound_statement "{\n          local_5c = 0xffffffff;\n        }" { (expression_statement "local_5c = 0xffffffff;" (assignment_expression "local_5c = 0xffffffff" identifier = number_literal) ;) }))) (if_statement "if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }" if (parenthesized_expression "(param_2 == 2)" ( (binary_expression "param_2 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }" { (labeled_statement "LAB_000189a4:\n          uVar14 = param_1[0xc];" statement_identifier : (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (goto_statement "goto LAB_000181a0;" goto statement_identifier ;) })) (if_statement "if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }" if (parenthesized_expression "((param_1[0xc] & 0x38U) == 0x18)" ( (binary_expression "(param_1[0xc] & 0x38U) == 0x18" (parenthesized_expression "(param_1[0xc] & 0x38U)" ( (binary_expression "param_1[0xc] & 0x38U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }" if (parenthesized_expression "(*(int *)(iVar20 + 100) == 2)" ( (binary_expression "*(int *)(iVar20 + 100) == 2" (pointer_expression "*(int *)(iVar20 + 100)" * (cast_expression "(int *)(iVar20 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 100)" ( (binary_expression "iVar20 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }" { (expression_statement "iVar17 = FUN_00017604(iVar20,local_40);" (assignment_expression "iVar17 = FUN_00017604(iVar20,local_40)" identifier = (call_expression "FUN_00017604(iVar20,local_40)" identifier (argument_list "(iVar20,local_40)" ( identifier , identifier )))) ;) (if_statement "if (iVar17 == 0) goto LAB_0001873c;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001873c;" goto statement_identifier ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (param_2 != 3) goto LAB_000189a4;" if (parenthesized_expression "(param_2 != 3)" ( (binary_expression "param_2 != 3" identifier != number_literal) )) (goto_statement "goto LAB_000189a4;" goto statement_identifier ;)) })) }) (else_clause "else {\nLAB_0001873c:\n          bVar1 = true;\n        }" else (compound_statement "{\nLAB_0001873c:\n          bVar1 = true;\n        }" { (labeled_statement "LAB_0001873c:\n          bVar1 = true;" statement_identifier : (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;)) }))) (if_statement "if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }" if (parenthesized_expression "((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0))" ( (binary_expression "(((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)" (parenthesized_expression "(((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40))" ( (binary_expression "((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)" (parenthesized_expression "((param_1[0xc] & 0x200U) == 0)" ( (binary_expression "(param_1[0xc] & 0x200U) == 0" (parenthesized_expression "(param_1[0xc] & 0x200U)" ( (binary_expression "param_1[0xc] & 0x200U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)" ( (comma_expression "local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40" (assignment_expression "local_40 = rpl_fcntl(local_40,0x406,3)" identifier = (call_expression "rpl_fcntl(local_40,0x406,3)" identifier (argument_list "(local_40,0x406,3)" ( identifier , number_literal , number_literal )))) , (binary_expression "-1 < local_40" number_literal < identifier)) ))) )) && (parenthesized_expression "(iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)" ( (comma_expression "iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0" (assignment_expression "iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0)" identifier = (call_expression "FUN_00017c2c(param_1,iVar20,local_40,0)" identifier (argument_list "(param_1,iVar20,local_40,0)" ( identifier , identifier , identifier , number_literal )))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }" { (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }" else (compound_statement "{\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }" { (if_statement "if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }" if (parenthesized_expression "((bVar1) && (param_2 == 3))" ( (binary_expression "(bVar1) && (param_2 == 3)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(param_2 == 3)" ( (binary_expression "param_2 == 3" identifier == number_literal) ))) )) (compound_statement "{\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }" { (expression_statement "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(iVar20 + 0x20) = *puVar9;" (assignment_expression "*(undefined4 *)(iVar20 + 0x20) = *puVar9" (pointer_expression "*(undefined4 *)(iVar20 + 0x20)" * (cast_expression "(undefined4 *)(iVar20 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) })) (expression_statement "puVar3 = PTR_closedir_000322ac;" (assignment_expression "puVar3 = PTR_closedir_000322ac" identifier = identifier) ;) (expression_statement "*(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;" (assignment_expression "*(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar20 + 0x3e)" * (cast_expression "(ushort *)(iVar20 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3e)" ( (binary_expression "iVar20 + 0x3e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar20 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar20 + 0x3e)" * (cast_expression "(ushort *)(iVar20 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3e)" ( (binary_expression "iVar20 + 0x3e" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "(*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }" if (parenthesized_expression "(((uVar14 & 0x200) == 0) || (local_40 < 0))" ( (binary_expression "((uVar14 & 0x200) == 0) || (local_40 < 0)" (parenthesized_expression "((uVar14 & 0x200) == 0)" ( (binary_expression "(uVar14 & 0x200) == 0" (parenthesized_expression "(uVar14 & 0x200)" ( (binary_expression "uVar14 & 0x200" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_40 < 0)" ( (binary_expression "local_40 < 0" identifier < number_literal) ))) )) (compound_statement "{\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }" { (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }" else (compound_statement "{\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }" { (expression_statement "(*(code *)PTR_close_000322b0)(local_40);" (call_expression "(*(code *)PTR_close_000322b0)(local_40)" (parenthesized_expression "(*(code *)PTR_close_000322b0)" ( (pointer_expression "*(code *)PTR_close_000322b0" * (cast_expression "(code *)PTR_close_000322b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier ))) ;) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) }))) }))) (goto_statement "goto LAB_000181a0;" goto statement_identifier ;) })) (expression_statement "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar15 = *puVar9;" (assignment_expression "uVar15 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "(*(code *)PTR_close_000322b0)(local_40);" (call_expression "(*(code *)PTR_close_000322b0)(local_40)" (parenthesized_expression "(*(code *)PTR_close_000322b0)" ( (pointer_expression "*(code *)PTR_close_000322b0" * (cast_expression "(code *)PTR_close_000322b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier ))) ;) (expression_statement "*puVar9 = uVar15;" (assignment_expression "*puVar9 = uVar15" (pointer_expression "*puVar9" * identifier) = identifier) ;) })) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "joined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;" statement_identifier : (expression_statement "puVar3 = PTR___errno_location_00032328;" (assignment_expression "puVar3 = PTR___errno_location_00032328" identifier = identifier) ;)) (if_statement "if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }" if (parenthesized_expression "(param_2 == 3)" ( (binary_expression "param_2 == 3" identifier == number_literal) )) (compound_statement "{\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }" { (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 4;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 4" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar9 = (undefined4 *)(*(code *)puVar3)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)puVar3)()" identifier = (cast_expression "(undefined4 *)(*(code *)puVar3)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar3)()" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(iVar20 + 0x20) = *puVar9;" (assignment_expression "*(undefined4 *)(iVar20 + 0x20) = *puVar9" (pointer_expression "*(undefined4 *)(iVar20 + 0x20)" * (cast_expression "(undefined4 *)(iVar20 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_40 = (*(code *)PTR_dirfd_000323dc)();" (assignment_expression "local_40 = (*(code *)PTR_dirfd_000323dc)()" identifier = (call_expression "(*(code *)PTR_dirfd_000323dc)()" (parenthesized_expression "(*(code *)PTR_dirfd_000323dc)" ( (pointer_expression "*(code *)PTR_dirfd_000323dc" * (cast_expression "(code *)PTR_dirfd_000323dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }" if (parenthesized_expression "(local_40 < 0)" ( (binary_expression "local_40 < 0" identifier < number_literal) )) (compound_statement "{\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }" { (expression_statement "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto joined_r0x00018a30;" goto statement_identifier ;) })) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (if_statement "if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" if (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    bVar1 = true;\n    local_5c = 100000;\n  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "local_5c = 100000;" (assignment_expression "local_5c = 100000" identifier = number_literal) ;) }) (else_clause "else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" else (compound_statement "{\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" { (expression_statement "local_5c = 0xffffffff;" (assignment_expression "local_5c = 0xffffffff" identifier = number_literal) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) (labeled_statement "LAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);" statement_identifier : (expression_statement "uVar18 = *(uint *)(iVar20 + 0x28);" (assignment_expression "uVar18 = *(uint *)(iVar20 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x28)" * (cast_expression "(uint *)(iVar20 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x28)" ( (binary_expression "iVar20 + 0x28" identifier + number_literal) ))))) ;)) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" identifier = identifier) ;) (expression_statement "local_50 = uVar18 - 1;" (assignment_expression "local_50 = uVar18 - 1" identifier = (binary_expression "uVar18 - 1" identifier - number_literal)) ;) (if_statement "if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/')" ( (binary_expression "*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/'" (pointer_expression "*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1))" * (cast_expression "(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar20 + 0x1c) + (uVar18 - 1))" ( (binary_expression "*(int *)(iVar20 + 0x1c) + (uVar18 - 1)" (pointer_expression "*(int *)(iVar20 + 0x1c)" * (cast_expression "(int *)(iVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) + (parenthesized_expression "(uVar18 - 1)" ( (binary_expression "uVar18 - 1" identifier - number_literal) ))) )))) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }" { (expression_statement "uVar19 = uVar18 + 1;" (assignment_expression "uVar19 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = uVar18;" (assignment_expression "local_50 = uVar18" identifier = identifier) ;) })) (if_statement "if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }" if (parenthesized_expression "((uVar14 & 4) == 0)" ( (binary_expression "(uVar14 & 4) == 0" (parenthesized_expression "(uVar14 & 4)" ( (binary_expression "uVar14 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_58 = (undefined1 *)0x0;\n  }" { (expression_statement "local_58 = (undefined1 *)0x0;" (assignment_expression "local_58 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }" else (compound_statement "{\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }" { (expression_statement "local_58 = (undefined1 *)(param_1[6] + local_50) + 1;" (assignment_expression "local_58 = (undefined1 *)(param_1[6] + local_50) + 1" identifier = (binary_expression "(undefined1 *)(param_1[6] + local_50) + 1" (cast_expression "(undefined1 *)(param_1[6] + local_50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + local_50)" ( (binary_expression "param_1[6] + local_50" (subscript_expression "param_1[6]" identifier [ number_literal ]) + identifier) ))) + number_literal)) ;) (expression_statement "*(undefined1 *)(param_1[6] + local_50) = 0x2f;" (assignment_expression "*(undefined1 *)(param_1[6] + local_50) = 0x2f" (pointer_expression "*(undefined1 *)(param_1[6] + local_50)" * (cast_expression "(undefined1 *)(param_1[6] + local_50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + local_50)" ( (binary_expression "param_1[6] + local_50" (subscript_expression "param_1[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) }))) (expression_statement "puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;" (assignment_expression "puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(iVar20 + 0x30);" (assignment_expression "iVar24 = *(int *)(iVar20 + 0x30)" identifier = (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = (code *)(PTR_00032104 + 0x72c0);" (assignment_expression "pcVar5 = (code *)(PTR_00032104 + 0x72c0)" identifier = (cast_expression "(code *)(PTR_00032104 + 0x72c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_00032104 + 0x72c0)" ( (binary_expression "PTR_00032104 + 0x72c0" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)(PTR_00032104 + 0x746c);" (assignment_expression "pcVar6 = (code *)(PTR_00032104 + 0x746c)" identifier = (cast_expression "(code *)(PTR_00032104 + 0x746c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_00032104 + 0x746c)" ( (binary_expression "PTR_00032104 + 0x746c" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = (code *)(PTR_00032104 + 0x7820);" (assignment_expression "pcVar7 = (code *)(PTR_00032104 + 0x7820)" identifier = (cast_expression "(code *)(PTR_00032104 + 0x7820)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_00032104 + 0x7820)" ( (binary_expression "PTR_00032104 + 0x7820" identifier + number_literal) )))) ;) (expression_statement "uVar14 = param_1[9] - uVar19;" (assignment_expression "uVar14 = param_1[9] - uVar19" identifier = (binary_expression "param_1[9] - uVar19" (subscript_expression "param_1[9]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "iVar21 = *(int *)(iVar20 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar20 + 0xc)" identifier = (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }" while (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }" { (expression_statement "piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "piVar8 = (int *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar4 = PTR_readdir64_000322e0;" (assignment_expression "puVar4 = PTR_readdir64_000322e0" identifier = identifier) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);" (assignment_expression "puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21)" identifier = (cast_expression "(undefined4 *)(*(code *)puVar4)(iVar21)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar4)(iVar21)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar21)" ( identifier ))))) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }" { (if_statement "if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }" if (parenthesized_expression "(*piVar8 != 0)" ( (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }" { (expression_statement "*(int *)(iVar20 + 0x20) = *piVar8;" (assignment_expression "*(int *)(iVar20 + 0x20) = *piVar8" (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "uVar12 = 7;" (assignment_expression "uVar12 = 7" identifier = number_literal) ;) (if_statement "if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }" if (parenthesized_expression "((iVar13 == 0) && (iVar17 == 0))" ( (binary_expression "(iVar13 == 0) && (iVar17 == 0)" (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          uVar12 = 4;\n        }" { (expression_statement "uVar12 = 4;" (assignment_expression "uVar12 = 4" identifier = number_literal) ;) })) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = uVar12;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = uVar12" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }" if (parenthesized_expression "(*(int *)(iVar20 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar20 + 0xc) != 0" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }" { (expression_statement "(*(code *)PTR_closedir_000322ac)();" (call_expression "(*(code *)PTR_closedir_000322ac)()" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) })) (break_statement "break;" break ;) })) (if_statement "if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }" if (parenthesized_expression "((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000))))" ( (binary_expression "(((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))" (parenthesized_expression "(((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.'))" ( (binary_expression "((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')" (parenthesized_expression "((param_1[0xc] & 0x20U) != 0)" ( (binary_expression "(param_1[0xc] & 0x20U) != 0" (parenthesized_expression "(param_1[0xc] & 0x20U)" ( (binary_expression "param_1[0xc] & 0x20U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*(char *)((int)puVar9 + 0x13) != '.')" ( (binary_expression "*(char *)((int)puVar9 + 0x13) != '.'" (pointer_expression "*(char *)((int)puVar9 + 0x13)" * (cast_expression "(char *)((int)puVar9 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x13)" ( (binary_expression "(int)puVar9 + 0x13" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) ))) )) || (parenthesized_expression "((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))" ( (parenthesized_expression "(*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000))" ( (binary_expression "*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)" (binary_expression "*(char *)(puVar9 + 5) != '\0'" (pointer_expression "*(char *)(puVar9 + 5)" * (cast_expression "(char *)(puVar9 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 5)" ( (binary_expression "puVar9 + 5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "((puVar9[5] & 0xffff0000) != 0x2e000000)" ( (binary_expression "(puVar9[5] & 0xffff0000) != 0x2e000000" (parenthesized_expression "(puVar9[5] & 0xffff0000)" ( (binary_expression "puVar9[5] & 0xffff0000" (subscript_expression "puVar9[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }" { (expression_statement "uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);" (assignment_expression "uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13)" identifier = (call_expression "(*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13)" (parenthesized_expression "(*(code *)PTR_strlen_00032344)" ( (pointer_expression "*(code *)PTR_strlen_00032344" * (cast_expression "(code *)PTR_strlen_00032344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)puVar9 + 0x13)" ( (binary_expression "(int)puVar9 + 0x13" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);" (assignment_expression "iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18)" identifier = (call_expression "(*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(param_1,(int)puVar9 + 0x13,uVar18)" ( identifier , (binary_expression "(int)puVar9 + 0x13" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier )))) ;) (if_statement "if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }" { (labeled_statement "LAB_000188cc:\n        iVar13 = *piVar8;" statement_identifier : (expression_statement "iVar13 = *piVar8;" (assignment_expression "iVar13 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;)) (expression_statement "(*(code *)PTR_free_000323d4)(iVar21);" (call_expression "(*(code *)PTR_free_000323d4)(iVar21)" (parenthesized_expression "(*(code *)PTR_free_000323d4)" ( (pointer_expression "*(code *)PTR_free_000323d4" * (cast_expression "(code *)PTR_free_000323d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar21)" ( identifier ))) ;) (expression_statement "FUN_0001737c(local_6c);" (call_expression "FUN_0001737c(local_6c)" identifier (argument_list "(local_6c)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xc] = uVar14 | 0x4000;" (assignment_expression "param_1[0xc] = uVar14 | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar14 | 0x4000" identifier | number_literal)) ;) (expression_statement "*piVar8 = iVar13;" (assignment_expression "*piVar8 = iVar13" (pointer_expression "*piVar8" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }" if (parenthesized_expression "(uVar14 <= uVar18)" ( (binary_expression "uVar14 <= uVar18" identifier <= identifier) )) (compound_statement "{\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }" { (expression_statement "iVar22 = param_1[6];" (assignment_expression "iVar22 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);" (assignment_expression "iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18)" identifier = (call_expression "FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18)" identifier (argument_list "(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18)" ( (binary_expression "param_1 + 6" identifier + number_literal) , (binary_expression "param_1 + 9" identifier + number_literal) , (binary_expression "local_50 + 2 + uVar18" (binary_expression "local_50 + 2" identifier + number_literal) + identifier) )))) ;) (if_statement "if (iVar11 == 0) goto LAB_000188cc;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000188cc;" goto statement_identifier ;)) (if_statement "if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }" if (parenthesized_expression "((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0))" ( (binary_expression "(param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)" (parenthesized_expression "(param_1[6] != iVar22)" ( (binary_expression "param_1[6] != iVar22" (subscript_expression "param_1[6]" identifier [ number_literal ]) != identifier) )) && (parenthesized_expression "(local_54 = iVar11, (param_1[0xc] & 4U) != 0)" ( (comma_expression "local_54 = iVar11, (param_1[0xc] & 4U) != 0" (assignment_expression "local_54 = iVar11" identifier = identifier) , (binary_expression "(param_1[0xc] & 4U) != 0" (parenthesized_expression "(param_1[0xc] & 4U)" ( (binary_expression "param_1[0xc] & 4U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }" { (expression_statement "local_58 = (undefined1 *)(param_1[6] + uVar19);" (assignment_expression "local_58 = (undefined1 *)(param_1[6] + uVar19)" identifier = (cast_expression "(undefined1 *)(param_1[6] + uVar19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + uVar19)" ( (binary_expression "param_1[6] + uVar19" (subscript_expression "param_1[6]" identifier [ number_literal ]) + identifier) )))) ;) })) (expression_statement "uVar14 = param_1[9] - uVar19;" (assignment_expression "uVar14 = param_1[9] - uVar19" identifier = (binary_expression "param_1[9] - uVar19" (subscript_expression "param_1[9]" identifier [ number_literal ]) - identifier)) ;) })) (if_statement "if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }" if (parenthesized_expression "(uVar18 + uVar19 < uVar19)" ( (binary_expression "uVar18 + uVar19 < uVar19" (binary_expression "uVar18 + uVar19" identifier + identifier) < identifier) )) (compound_statement "{\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }" { (expression_statement "(*(code *)PTR_free_000323d4)(iVar21);" (call_expression "(*(code *)PTR_free_000323d4)(iVar21)" (parenthesized_expression "(*(code *)PTR_free_000323d4)" ( (pointer_expression "*(code *)PTR_free_000323d4" * (cast_expression "(code *)PTR_free_000323d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar21)" ( identifier ))) ;) (expression_statement "FUN_0001737c(local_6c);" (call_expression "FUN_0001737c(local_6c)" identifier (argument_list "(local_6c)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xc] = uVar14 | 0x4000;" (assignment_expression "param_1[0xc] = uVar14 | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar14 | 0x4000" identifier | number_literal)) ;) (expression_statement "*piVar8 = 0x4e;" (assignment_expression "*piVar8 = 0x4e" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar10 = param_1[0xc];" (assignment_expression "uVar10 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = puVar9[1];" (assignment_expression "uVar16 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = *puVar9;" (assignment_expression "uVar15 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "*(int *)(iVar21 + 4) = *param_1;" (assignment_expression "*(int *)(iVar21 + 4) = *param_1" (pointer_expression "*(int *)(iVar21 + 4)" * (cast_expression "(int *)(iVar21 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 4)" ( (binary_expression "iVar21 + 4" identifier + number_literal) )))) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*(uint *)(iVar21 + 0x28) = uVar18 + uVar19;" (assignment_expression "*(uint *)(iVar21 + 0x28) = uVar18 + uVar19" (pointer_expression "*(uint *)(iVar21 + 0x28)" * (cast_expression "(uint *)(iVar21 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x28)" ( (binary_expression "iVar21 + 0x28" identifier + number_literal) )))) = (binary_expression "uVar18 + uVar19" identifier + identifier)) ;) (expression_statement "*(int *)(iVar21 + 0x30) = iVar24 + 1;" (assignment_expression "*(int *)(iVar21 + 0x30) = iVar24 + 1" (pointer_expression "*(int *)(iVar21 + 0x30)" * (cast_expression "(int *)(iVar21 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x30)" ( (binary_expression "iVar21 + 0x30" identifier + number_literal) )))) = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar21 + 0x5c) = uVar16;" (assignment_expression "*(undefined4 *)(iVar21 + 0x5c) = uVar16" (pointer_expression "*(undefined4 *)(iVar21 + 0x5c)" * (cast_expression "(undefined4 *)(iVar21 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x5c)" ( (binary_expression "iVar21 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar21 + 0x58) = uVar15;" (assignment_expression "*(undefined4 *)(iVar21 + 0x58) = uVar15" (pointer_expression "*(undefined4 *)(iVar21 + 0x58)" * (cast_expression "(undefined4 *)(iVar21 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x58)" ( (binary_expression "iVar21 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = PTR_memmove_000323d8;" (assignment_expression "puVar4 = PTR_memmove_000323d8" identifier = identifier) ;) (if_statement "if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }" if (parenthesized_expression "((uVar10 & 4) == 0)" ( (binary_expression "(uVar10 & 4) == 0" (parenthesized_expression "(uVar10 & 4)" ( (binary_expression "uVar10 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }" { (expression_statement "*(int *)(iVar21 + 0x18) = iVar21 + 0xe8;" (assignment_expression "*(int *)(iVar21 + 0x18) = iVar21 + 0xe8" (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) )))) = (binary_expression "iVar21 + 0xe8" identifier + number_literal)) ;) }) (else_clause "else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }" else (compound_statement "{\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }" { (expression_statement "*(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);" (assignment_expression "*(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c)" (pointer_expression "*(undefined4 *)(iVar21 + 0x18)" * (cast_expression "(undefined4 *)(iVar21 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar21 + 0x1c)" * (cast_expression "(undefined4 *)(iVar21 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);" (call_expression "(*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1)" ( identifier , (binary_expression "iVar21 + 0xe8" identifier + number_literal) , (binary_expression "*(int *)(iVar21 + 0x34) + 1" (pointer_expression "*(int *)(iVar21 + 0x34)" * (cast_expression "(int *)(iVar21 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x34)" ( (binary_expression "iVar21 + 0x34" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar10 = param_1[0xc];" (assignment_expression "uVar10 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) }))) (if_statement "if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }" if (parenthesized_expression "((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0))" ( (binary_expression "(param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)" (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((uVar10 & 0x400) != 0)" ( (binary_expression "(uVar10 & 0x400) != 0" (parenthesized_expression "(uVar10 & 0x400)" ( (binary_expression "uVar10 & 0x400" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }" { (expression_statement "uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);" (assignment_expression "uVar18 = (uint)*(byte *)((int)puVar9 + 0x12)" identifier = (binary_expression "(uint)*(byte *)((int)puVar9 + 0x12)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar9 + 0x12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x12)" ( (binary_expression "(int)puVar9 + 0x12" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }" if (parenthesized_expression "((uVar10 & 0x18) == 0x18)" ( (binary_expression "(uVar10 & 0x18) == 0x18" (parenthesized_expression "(uVar10 & 0x18)" ( (binary_expression "uVar10 & 0x18" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }" { (if_statement "if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }" { (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" * (cast_expression "(undefined2 *)(iVar21 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00018464;" goto statement_identifier ;) })) (if_statement "if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }" if (parenthesized_expression "(uVar18 == 4)" ( (binary_expression "uVar18 == 4" identifier == number_literal) )) (compound_statement "{\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }" { (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" * (cast_expression "(undefined2 *)(iVar21 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00018368;" goto statement_identifier ;) })) (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" * (cast_expression "(undefined2 *)(iVar21 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }" if (parenthesized_expression "(uVar18 - 1 < 0xc)" ( (binary_expression "uVar18 - 1 < 0xc" (binary_expression "uVar18 - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }" { (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" * (cast_expression "(undefined4 *)(iVar21 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x60)" ( (binary_expression "iVar21 + 0x60" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" * (cast_expression "(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" ( (binary_expression "puVar3 + (uVar18 - 1) * 4 + 0x13a0" (binary_expression "puVar3 + (uVar18 - 1) * 4" identifier + (binary_expression "(uVar18 - 1) * 4" (parenthesized_expression "(uVar18 - 1)" ( (binary_expression "uVar18 - 1" identifier - number_literal) )) * number_literal)) + number_literal) ))))) ;) }) (else_clause "else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }" else (compound_statement "{\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }" { (expression_statement "*(undefined4 *)(iVar21 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" * (cast_expression "(undefined4 *)(iVar21 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x60)" ( (binary_expression "iVar21 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }" else (compound_statement "{\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }" { (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" * (cast_expression "(undefined2 *)(iVar21 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }" if (parenthesized_expression "(uVar18 - 1 < 0xc)" ( (binary_expression "uVar18 - 1 < 0xc" (binary_expression "uVar18 - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }" { (labeled_statement "LAB_00018368:\n            uVar15 = 2;" statement_identifier : (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;)) (expression_statement "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" * (cast_expression "(undefined4 *)(iVar21 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x60)" ( (binary_expression "iVar21 + 0x60" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" * (cast_expression "(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" ( (binary_expression "puVar3 + (uVar18 - 1) * 4 + 0x13a0" (binary_expression "puVar3 + (uVar18 - 1) * 4" identifier + (binary_expression "(uVar18 - 1) * 4" (parenthesized_expression "(uVar18 - 1)" ( (binary_expression "uVar18 - 1" identifier - number_literal) )) * number_literal)) + number_literal) ))))) ;) }) (else_clause "else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }" else (compound_statement "{\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }" { (labeled_statement "LAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar21 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" * (cast_expression "(undefined4 *)(iVar21 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x60)" ( (binary_expression "iVar21 + 0x60" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) }))) }))) (expression_statement "*(undefined4 *)(iVar21 + 0x84) = uVar15;" (assignment_expression "*(undefined4 *)(iVar21 + 0x84) = uVar15" (pointer_expression "*(undefined4 *)(iVar21 + 0x84)" * (cast_expression "(undefined4 *)(iVar21 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x84)" ( (binary_expression "iVar21 + 0x84" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar21 + 0x80) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x80) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x80)" * (cast_expression "(undefined4 *)(iVar21 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x80)" ( (binary_expression "iVar21 + 0x80" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }" else (compound_statement "{\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }" { (expression_statement "uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);" (assignment_expression "uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0)" identifier = (call_expression "(*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(param_1[8],param_1 + 0xc,iVar21,0)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = uVar12;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = uVar12" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" * (cast_expression "(undefined2 *)(iVar21 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(undefined4 *)(iVar21 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 8)" * (cast_expression "(undefined4 *)(iVar21 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 8)" ( (binary_expression "iVar21 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = iVar21;" (assignment_expression "iVar11 = iVar21" identifier = identifier) ;) (if_statement "if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }" if (parenthesized_expression "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) )) (compound_statement "{\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }" { (expression_statement "*(int *)(iVar23 + 8) = iVar21;" (assignment_expression "*(int *)(iVar23 + 8) = iVar21" (pointer_expression "*(int *)(iVar23 + 8)" * (cast_expression "(int *)(iVar23 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 8)" ( (binary_expression "iVar23 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar11 = local_6c;" (assignment_expression "iVar11 = local_6c" identifier = identifier) ;) })) (expression_statement "local_6c = iVar11;" (assignment_expression "local_6c = iVar11" identifier = identifier) ;) (expression_statement "iVar23 = iVar21;" (assignment_expression "iVar23 = iVar21" identifier = identifier) ;) (if_statement "if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }" if (parenthesized_expression "(iVar17 == 10000)" ( (binary_expression "iVar17 == 10000" identifier == number_literal) )) (compound_statement "{\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }" { (if_statement "if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }" if (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }" { (expression_statement "iVar21 = (*pcVar6)(iVar20,local_40);" (assignment_expression "iVar21 = (*pcVar6)(iVar20,local_40)" identifier = (call_expression "(*pcVar6)(iVar20,local_40)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(iVar20,local_40)" ( identifier , identifier )))) ;) (if_statement "if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }" if (parenthesized_expression "(((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be))" ( (binary_expression "((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)" (parenthesized_expression "((iVar21 == 0x6969) || (iVar21 == 0x1021994))" ( (binary_expression "(iVar21 == 0x6969) || (iVar21 == 0x1021994)" (parenthesized_expression "(iVar21 == 0x6969)" ( (binary_expression "iVar21 == 0x6969" identifier == number_literal) )) || (parenthesized_expression "(iVar21 == 0x1021994)" ( (binary_expression "iVar21 == 0x1021994" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar21 == -0xacb2be)" ( (binary_expression "iVar21 == -0xacb2be" identifier == number_literal) ))) )) (compound_statement "{\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (local_5c < 0x2712) goto LAB_00018814;" if (parenthesized_expression "(local_5c < 0x2712)" ( (binary_expression "local_5c < 0x2712" identifier < number_literal) )) (goto_statement "goto LAB_00018814;" goto statement_identifier ;)) (goto_statement "goto LAB_000183bc;" goto statement_identifier ;) })) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) (expression_statement "iVar17 = 0x2711;" (assignment_expression "iVar17 = 0x2711" identifier = number_literal) ;) }) (else_clause "else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }" else (compound_statement "{\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }" { (if_statement "if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }" if (parenthesized_expression "(local_5c <= iVar17 + 1U)" ( (binary_expression "local_5c <= iVar17 + 1U" identifier <= (binary_expression "iVar17 + 1U" identifier + number_literal)) )) (compound_statement "{\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }" { (labeled_statement "LAB_00018814:\n          iVar17 = iVar17 + 1;" statement_identifier : (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_000183bc:\n        iVar17 = iVar17 + 1;" statement_identifier : (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;)) }))) })) (expression_statement "iVar21 = *(int *)(iVar20 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar20 + 0xc)" identifier = (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) ))))) ;) })) (if_statement "if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }" if (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }" { (expression_statement "iVar21 = param_1[6];" (assignment_expression "iVar21 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (for_statement "for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }" for ( (assignment_expression "iVar23 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ; (comma_expression "iVar24 = local_6c, iVar23 != 0" (assignment_expression "iVar24 = local_6c" identifier = identifier) , (binary_expression "iVar23 != 0" identifier != number_literal)) ; (assignment_expression "iVar23 = *(int *)(iVar23 + 8)" identifier = (pointer_expression "*(int *)(iVar23 + 8)" * (cast_expression "(int *)(iVar23 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 8)" ( (binary_expression "iVar23 + 8" identifier + number_literal) ))))) ) (compound_statement "{\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }" { (if_statement "if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" if (parenthesized_expression "(*(int *)(iVar23 + 0x18) != iVar23 + 0xe8)" ( (binary_expression "*(int *)(iVar23 + 0x18) != iVar23 + 0xe8" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) != (binary_expression "iVar23 + 0xe8" identifier + number_literal)) )) (compound_statement "{\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" { (expression_statement "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));" (assignment_expression "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) = (binary_expression "iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" identifier + (parenthesized_expression "(*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" ( (binary_expression "*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c)" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) ))))) )))) ;) })) (expression_statement "*(int *)(iVar23 + 0x1c) = iVar21;" (assignment_expression "*(int *)(iVar23 + 0x1c) = iVar21" (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) )))) = identifier) ;) })) (while_statement "while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }" while (parenthesized_expression "(iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30))" ( (comma_expression "iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)" (assignment_expression "iVar23 = iVar24" identifier = identifier) , (binary_expression "-1 < *(int *)(iVar23 + 0x30)" number_literal < (pointer_expression "*(int *)(iVar23 + 0x30)" * (cast_expression "(int *)(iVar23 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x30)" ( (binary_expression "iVar23 + 0x30" identifier + number_literal) )))))) )) (compound_statement "{\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }" { (if_statement "if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" if (parenthesized_expression "(*(int *)(iVar23 + 0x18) != iVar23 + 0xe8)" ( (binary_expression "*(int *)(iVar23 + 0x18) != iVar23 + 0xe8" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) != (binary_expression "iVar23 + 0xe8" identifier + number_literal)) )) (compound_statement "{\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" { (expression_statement "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));" (assignment_expression "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) = (binary_expression "iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" identifier + (parenthesized_expression "(*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" ( (binary_expression "*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c)" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) ))))) )))) ;) })) (expression_statement "*(int *)(iVar23 + 0x1c) = iVar21;" (assignment_expression "*(int *)(iVar23 + 0x1c) = iVar21" (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar24 = *(int *)(iVar23 + 8);" (assignment_expression "iVar24 = *(int *)(iVar23 + 8)" identifier = (pointer_expression "*(int *)(iVar23 + 8)" * (cast_expression "(int *)(iVar23 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 8)" ( (binary_expression "iVar23 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }" if (parenthesized_expression "(*(int *)(iVar23 + 8) == 0)" ( (binary_expression "*(int *)(iVar23 + 8) == 0" (pointer_expression "*(int *)(iVar23 + 8)" * (cast_expression "(int *)(iVar23 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 8)" ( (binary_expression "iVar23 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar24 = *(int *)(iVar23 + 4);\n      }" { (expression_statement "iVar24 = *(int *)(iVar23 + 4);" (assignment_expression "iVar24 = *(int *)(iVar23 + 4)" identifier = (pointer_expression "*(int *)(iVar23 + 4)" * (cast_expression "(int *)(iVar23 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 4)" ( (binary_expression "iVar23 + 4" identifier + number_literal) ))))) ;) })) })) })) (if_statement "if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }" if (parenthesized_expression "((param_1[0xc] & 4U) != 0)" ( (binary_expression "(param_1[0xc] & 4U) != 0" (parenthesized_expression "(param_1[0xc] & 4U)" ( (binary_expression "param_1[0xc] & 4U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }" { (if_statement "if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }" if (parenthesized_expression "((param_1[9] == uVar19) || (iVar17 == 0))" ( (binary_expression "(param_1[9] == uVar19) || (iVar17 == 0)" (parenthesized_expression "(param_1[9] == uVar19)" ( (binary_expression "param_1[9] == uVar19" (subscript_expression "param_1[9]" identifier [ number_literal ]) == identifier) )) || (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      local_58 = local_58 + -1;\n    }" { (expression_statement "local_58 = local_58 + -1;" (assignment_expression "local_58 = local_58 + -1" identifier = (binary_expression "local_58 + -1" identifier + number_literal)) ;) })) (expression_statement "*local_58 = 0;" (assignment_expression "*local_58 = 0" (pointer_expression "*local_58" * identifier) = number_literal) ;) })) (if_statement "if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }" if (parenthesized_expression "((iVar13 == 0) && (bVar1))" ( (binary_expression "(iVar13 == 0) && (bVar1)" (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar1)" ( identifier ))) )) (compound_statement "{\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }" { (if_statement "if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;" if (parenthesized_expression "((param_2 != 1) && (iVar17 != 0))" ( (binary_expression "(param_2 != 1) && (iVar17 != 0)" (parenthesized_expression "(param_2 != 1)" ( (binary_expression "param_2 != 1" identifier != number_literal) )) && (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00018870;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" if (parenthesized_expression "(*(int *)(iVar20 + 0x30) == 0)" ( (binary_expression "*(int *)(iVar20 + 0x30) == 0" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar13 = FUN_00017788(param_1);\n    }" { (expression_statement "iVar13 = FUN_00017788(param_1);" (assignment_expression "iVar13 = FUN_00017788(param_1)" identifier = (call_expression "FUN_00017788(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) (else_clause "else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" else (compound_statement "{\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" { (expression_statement "iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);" (assignment_expression "iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" identifier = (call_expression "FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" identifier (argument_list "(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" ( identifier , (pointer_expression "*(undefined4 *)(iVar20 + 4)" * (cast_expression "(undefined4 *)(iVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) , number_literal , (binary_expression "PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390" identifier + number_literal) )))) ;) }))) (if_statement "if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }" { (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xc] = uVar14 | 0x4000;" (assignment_expression "param_1[0xc] = uVar14 | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar14 | 0x4000" identifier | number_literal)) ;) (goto_statement "goto LAB_00018c18;" goto statement_identifier ;) })) })) (if_statement "if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }" { (if_statement "if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }" if (parenthesized_expression "(((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7))" ( (binary_expression "((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)" (parenthesized_expression "((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4))" ( (binary_expression "(param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)" (parenthesized_expression "(param_2 == 3)" ( (binary_expression "param_2 == 3" identifier == number_literal) )) && (parenthesized_expression "(*(short *)(iVar20 + 0x3c) != 4)" ( (binary_expression "*(short *)(iVar20 + 0x3c) != 4" (pointer_expression "*(short *)(iVar20 + 0x3c)" * (cast_expression "(short *)(iVar20 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(short *)(iVar20 + 0x3c) != 7)" ( (binary_expression "*(short *)(iVar20 + 0x3c) != 7" (pointer_expression "*(short *)(iVar20 + 0x3c)" * (cast_expression "(short *)(iVar20 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }" { (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 6;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 6" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_00018c18:\n    FUN_0001737c(local_6c);" statement_identifier : (expression_statement "FUN_0001737c(local_6c);" (call_expression "FUN_0001737c(local_6c)" identifier (argument_list "(local_6c)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }" statement_identifier : (if_statement "if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }" { (expression_statement "param_1[0xb] = (int)(PTR_00032104 + 0x7120);" (assignment_expression "param_1[0xb] = (int)(PTR_00032104 + 0x7120)" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(int)(PTR_00032104 + 0x7120)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(PTR_00032104 + 0x7120)" ( (binary_expression "PTR_00032104 + 0x7120" identifier + number_literal) )))) ;) (expression_statement "iVar13 = FUN_00017184(param_1,local_6c,iVar17);" (assignment_expression "iVar13 = FUN_00017184(param_1,local_6c,iVar17)" identifier = (call_expression "FUN_00017184(param_1,local_6c,iVar17)" identifier (argument_list "(param_1,local_6c,iVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return iVar13;" return identifier ;) }))) (if_statement "if (param_1[0xb] == 0) {\n    return local_6c;\n  }" if (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    return local_6c;\n  }" { (return_statement "return local_6c;" return identifier ;) })) (if_statement "if (iVar17 == 1) {\n    return local_6c;\n  }" if (parenthesized_expression "(iVar17 == 1)" ( (binary_expression "iVar17 == 1" identifier == number_literal) )) (compound_statement "{\n    return local_6c;\n  }" { (return_statement "return local_6c;" return identifier ;) })) (expression_statement "iVar13 = FUN_00017184(param_1,local_6c,iVar17);" (assignment_expression "iVar13 = FUN_00017184(param_1,local_6c,iVar17)" identifier = (call_expression "FUN_00017184(param_1,local_6c,iVar17)" identifier (argument_list "(param_1,local_6c,iVar17)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar13;" return identifier ;) })))
(translation_unit "FTSENT * fts_build(FTS *sp,int type)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  _ftsent *p_Var5;\n  FTSENT *pFVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  FTSENT *pFVar12;\n  uint uVar13;\n  _ftsent *p_Var14;\n  int iVar15;\n  _Bool _Var18;\n  ushort uVar17;\n  leaf_optimization lVar16;\n  DIR *pDVar19;\n  uint uVar20;\n  char *pcVar21;\n  undefined4 uVar22;\n  undefined4 uVar23;\n  size_t nitems;\n  uint uVar24;\n  uint uVar25;\n  FTSENT *pFVar26;\n  DIR *pDVar27;\n  FTSENT *pFVar28;\n  int iVar29;\n  FTSENT *local_6c;\n  uint local_5c;\n  char *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  pFVar26 = sp->fts_cur;\n  pDVar19 = pFVar26->fts_dirp;\n  if (pDVar19 == (DIR *)0x0) {\n    uVar20 = sp->fts_options;\n    if ((uVar20 & 0x204) == 0x200) {\n      iVar29 = sp->fts_cwd_fd;\n    }\n    else {\n      iVar29 = -100;\n    }\n    uVar25 = uVar20 & 0x10;\n    if (((uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0)) &&\n       (uVar25 = pFVar26->fts_level, uVar25 != 0)) {\n      uVar25 = 0x20000;\n    }\n    local_40 = openat_safer(iVar29,pFVar26->fts_accpath,(uVar20 & 0x800) << 7 | uVar25 | 0x90880);\n    if (-1 < local_40) {\n      pDVar27 = (DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (pDVar27 != (DIR *)0x0) {\n        pFVar26->fts_dirp = pDVar27;\n        if (pFVar26->fts_info == 0xb) {\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }\n        else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (type == 2) {\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((sp->fts_options & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar22 = *puVar11;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar11 = uVar22;\n    }\n    pFVar26->fts_dirp = (DIR *)0x0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (type == 3) {\n      pFVar26->fts_info = 4;\n      piVar10 = (int *)(*(code *)puVar3)();\n      pFVar26->fts_errno = *piVar10;\n      return (FTSENT *)0x0;\n    }\n    return (FTSENT *)0x0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n    pFVar26->fts_dirp = (DIR *)0x0;\n    goto joined_r0x00018a30;\n  }\n  uVar20 = sp->fts_options;\n  if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar24 = pFVar26->fts_pathlen;\n  uVar25 = uVar24;\n  local_50 = uVar24 - 1;\n  if (pFVar26->fts_path[uVar24 - 1] != '/') {\n    uVar25 = uVar24 + 1;\n    local_50 = uVar24;\n  }\n  if ((uVar20 & 4) == 0) {\n    local_58 = (char *)0x0;\n  }\n  else {\n    local_58 = sp->fts_path + local_50 + 1;\n    sp->fts_path[local_50] = '/';\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar29 = pFVar26->fts_level;\n  pFVar28 = (FTSENT *)0x0;\n  nitems = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = (FTSENT *)0x0;\n  pcVar7 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar8 = (code *)(PTR_00032104 + 0x746c);\n  pcVar9 = (code *)(PTR_00032104 + 0x7820);\n  uVar20 = sp->fts_pathlen - uVar25;\n  pDVar27 = pFVar26->fts_dirp;\n  while (pDVar27 != (DIR *)0x0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar10 = 0;\n    puVar11 = (undefined4 *)(*(code *)puVar4)(pDVar27);\n    if (puVar11 == (undefined4 *)0x0) {\n      if (*piVar10 != 0) {\n        pFVar26->fts_errno = *piVar10;\n        uVar17 = 7;\n        if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {\n          uVar17 = 4;\n        }\n        pFVar26->fts_info = uVar17;\n      }\n      if (pFVar26->fts_dirp != (DIR *)0x0) {\n        (*(code *)PTR_closedir_000322ac)();\n        pFVar26->fts_dirp = (DIR *)0x0;\n      }\n      break;\n    }\n    if ((((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.')) ||\n       ((*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar24 = (*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13);\n      pFVar12 = (FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24);\n      if (pFVar12 == (FTSENT *)0x0) {\nLAB_000188cc:\n        iVar29 = *piVar10;\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = iVar29;\n        return (FTSENT *)0x0;\n      }\n      if (uVar20 <= uVar24) {\n        pcVar21 = sp->fts_path;\n        _Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24));\n        iVar15 = CONCAT31(extraout_var,_Var18);\n        if (iVar15 == 0) goto LAB_000188cc;\n        if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {\n          local_58 = sp->fts_path + uVar25;\n        }\n        uVar20 = sp->fts_pathlen - uVar25;\n      }\n      if (uVar24 + uVar25 < uVar25) {\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = 0x4e;\n        return (FTSENT *)0x0;\n      }\n      uVar13 = sp->fts_options;\n      uVar23 = puVar11[1];\n      uVar22 = *puVar11;\n      pFVar12->fts_parent = sp->fts_cur;\n      pFVar12->fts_pathlen = uVar24 + uVar25;\n      pFVar12->fts_level = iVar29 + 1;\n      *(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4) = uVar23;\n      *(undefined4 *)&pFVar12->fts_statp[0].st_ino = uVar22;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar13 & 4) == 0) {\n        pFVar12->fts_accpath = (char *)(pFVar12 + 1);\n      }\n      else {\n        pFVar12->fts_accpath = pFVar12->fts_path;\n        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);\n        uVar13 = sp->fts_options;\n      }\n      if ((sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||\n         ((uVar13 & 0x400) != 0)) {\n        uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);\n        if ((uVar13 & 0x18) == 0x18) {\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }\n        else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }\n        *(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;\n        *(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;\n      }\n      else {\n        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);\n        pFVar12->fts_info = uVar17;\n      }\n      pFVar12->fts_link = (_ftsent *)0x0;\n      pFVar6 = pFVar12;\n      if (local_6c != (FTSENT *)0x0) {\n        pFVar28->fts_link = pFVar12;\n        pFVar6 = local_6c;\n      }\n      local_6c = pFVar6;\n      pFVar28 = pFVar12;\n      if (nitems == 10000) {\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        nitems = 0x2711;\n      }\n      else {\n        if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }\nLAB_000183bc:\n        nitems = nitems + 1;\n      }\n    }\n    pDVar27 = pFVar26->fts_dirp;\n  }\n  if (local_54 != 0) {\n    pcVar21 = sp->fts_path;\n    for (p_Var14 = sp->fts_child; p_Var5 = local_6c, p_Var14 != (_ftsent *)0x0;\n        p_Var14 = p_Var14->fts_link) {\n      if ((_ftsent *)p_Var14->fts_accpath != p_Var14 + 1) {\n        p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);\n      }\n      p_Var14->fts_path = pcVar21;\n    }\n    while (pFVar28 = p_Var5, -1 < pFVar28->fts_level) {\n      if ((FTSENT *)pFVar28->fts_accpath != pFVar28 + 1) {\n        pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);\n      }\n      pFVar28->fts_path = pcVar21;\n      p_Var5 = pFVar28->fts_link;\n      if (pFVar28->fts_link == (_ftsent *)0x0) {\n        p_Var5 = pFVar28->fts_parent;\n      }\n    }\n  }\n  if ((sp->fts_options & 4U) != 0) {\n    if ((sp->fts_pathlen == uVar25) || (nitems == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = '\0';\n  }\n  if ((pDVar19 == (DIR *)0x0) && (bVar1)) {\n    if ((type != 1) && (nitems != 0)) goto LAB_00018870;\n    if (pFVar26->fts_level == 0) {\n      iVar29 = restore_initial_cwd(sp);\n    }\n    else {\n      iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar29 != 0) {\n      uVar20 = sp->fts_options;\n      pFVar26->fts_info = 7;\n      sp->fts_options = uVar20 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (nitems == 0) {\n    if (((type == 3) && (pFVar26->fts_info != 4)) && (pFVar26->fts_info != 7)) {\n      pFVar26->fts_info = 6;\n    }\nLAB_00018c18:\n    fts_lfree(local_6c);\n    return (FTSENT *)0x0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)(PTR_00032104 + 0x7120);\n    pFVar26 = fts_sort(sp,local_6c,nitems);\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0;\n    return pFVar26;\n  }\n  if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n    return local_6c;\n  }\n  if (nitems == 1) {\n    return local_6c;\n  }\n  pFVar26 = fts_sort(sp,local_6c,nitems);\n  return pFVar26;\n}\n\n" (function_definition "FTSENT * fts_build(FTS *sp,int type)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  _ftsent *p_Var5;\n  FTSENT *pFVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  FTSENT *pFVar12;\n  uint uVar13;\n  _ftsent *p_Var14;\n  int iVar15;\n  _Bool _Var18;\n  ushort uVar17;\n  leaf_optimization lVar16;\n  DIR *pDVar19;\n  uint uVar20;\n  char *pcVar21;\n  undefined4 uVar22;\n  undefined4 uVar23;\n  size_t nitems;\n  uint uVar24;\n  uint uVar25;\n  FTSENT *pFVar26;\n  DIR *pDVar27;\n  FTSENT *pFVar28;\n  int iVar29;\n  FTSENT *local_6c;\n  uint local_5c;\n  char *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  pFVar26 = sp->fts_cur;\n  pDVar19 = pFVar26->fts_dirp;\n  if (pDVar19 == (DIR *)0x0) {\n    uVar20 = sp->fts_options;\n    if ((uVar20 & 0x204) == 0x200) {\n      iVar29 = sp->fts_cwd_fd;\n    }\n    else {\n      iVar29 = -100;\n    }\n    uVar25 = uVar20 & 0x10;\n    if (((uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0)) &&\n       (uVar25 = pFVar26->fts_level, uVar25 != 0)) {\n      uVar25 = 0x20000;\n    }\n    local_40 = openat_safer(iVar29,pFVar26->fts_accpath,(uVar20 & 0x800) << 7 | uVar25 | 0x90880);\n    if (-1 < local_40) {\n      pDVar27 = (DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (pDVar27 != (DIR *)0x0) {\n        pFVar26->fts_dirp = pDVar27;\n        if (pFVar26->fts_info == 0xb) {\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }\n        else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (type == 2) {\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((sp->fts_options & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar22 = *puVar11;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar11 = uVar22;\n    }\n    pFVar26->fts_dirp = (DIR *)0x0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (type == 3) {\n      pFVar26->fts_info = 4;\n      piVar10 = (int *)(*(code *)puVar3)();\n      pFVar26->fts_errno = *piVar10;\n      return (FTSENT *)0x0;\n    }\n    return (FTSENT *)0x0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n    pFVar26->fts_dirp = (DIR *)0x0;\n    goto joined_r0x00018a30;\n  }\n  uVar20 = sp->fts_options;\n  if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar24 = pFVar26->fts_pathlen;\n  uVar25 = uVar24;\n  local_50 = uVar24 - 1;\n  if (pFVar26->fts_path[uVar24 - 1] != '/') {\n    uVar25 = uVar24 + 1;\n    local_50 = uVar24;\n  }\n  if ((uVar20 & 4) == 0) {\n    local_58 = (char *)0x0;\n  }\n  else {\n    local_58 = sp->fts_path + local_50 + 1;\n    sp->fts_path[local_50] = '/';\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar29 = pFVar26->fts_level;\n  pFVar28 = (FTSENT *)0x0;\n  nitems = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = (FTSENT *)0x0;\n  pcVar7 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar8 = (code *)(PTR_00032104 + 0x746c);\n  pcVar9 = (code *)(PTR_00032104 + 0x7820);\n  uVar20 = sp->fts_pathlen - uVar25;\n  pDVar27 = pFVar26->fts_dirp;\n  while (pDVar27 != (DIR *)0x0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar10 = 0;\n    puVar11 = (undefined4 *)(*(code *)puVar4)(pDVar27);\n    if (puVar11 == (undefined4 *)0x0) {\n      if (*piVar10 != 0) {\n        pFVar26->fts_errno = *piVar10;\n        uVar17 = 7;\n        if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {\n          uVar17 = 4;\n        }\n        pFVar26->fts_info = uVar17;\n      }\n      if (pFVar26->fts_dirp != (DIR *)0x0) {\n        (*(code *)PTR_closedir_000322ac)();\n        pFVar26->fts_dirp = (DIR *)0x0;\n      }\n      break;\n    }\n    if ((((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.')) ||\n       ((*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar24 = (*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13);\n      pFVar12 = (FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24);\n      if (pFVar12 == (FTSENT *)0x0) {\nLAB_000188cc:\n        iVar29 = *piVar10;\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = iVar29;\n        return (FTSENT *)0x0;\n      }\n      if (uVar20 <= uVar24) {\n        pcVar21 = sp->fts_path;\n        _Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24));\n        iVar15 = CONCAT31(extraout_var,_Var18);\n        if (iVar15 == 0) goto LAB_000188cc;\n        if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {\n          local_58 = sp->fts_path + uVar25;\n        }\n        uVar20 = sp->fts_pathlen - uVar25;\n      }\n      if (uVar24 + uVar25 < uVar25) {\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = 0x4e;\n        return (FTSENT *)0x0;\n      }\n      uVar13 = sp->fts_options;\n      uVar23 = puVar11[1];\n      uVar22 = *puVar11;\n      pFVar12->fts_parent = sp->fts_cur;\n      pFVar12->fts_pathlen = uVar24 + uVar25;\n      pFVar12->fts_level = iVar29 + 1;\n      *(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4) = uVar23;\n      *(undefined4 *)&pFVar12->fts_statp[0].st_ino = uVar22;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar13 & 4) == 0) {\n        pFVar12->fts_accpath = (char *)(pFVar12 + 1);\n      }\n      else {\n        pFVar12->fts_accpath = pFVar12->fts_path;\n        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);\n        uVar13 = sp->fts_options;\n      }\n      if ((sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||\n         ((uVar13 & 0x400) != 0)) {\n        uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);\n        if ((uVar13 & 0x18) == 0x18) {\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }\n        else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }\n        *(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;\n        *(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;\n      }\n      else {\n        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);\n        pFVar12->fts_info = uVar17;\n      }\n      pFVar12->fts_link = (_ftsent *)0x0;\n      pFVar6 = pFVar12;\n      if (local_6c != (FTSENT *)0x0) {\n        pFVar28->fts_link = pFVar12;\n        pFVar6 = local_6c;\n      }\n      local_6c = pFVar6;\n      pFVar28 = pFVar12;\n      if (nitems == 10000) {\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        nitems = 0x2711;\n      }\n      else {\n        if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }\nLAB_000183bc:\n        nitems = nitems + 1;\n      }\n    }\n    pDVar27 = pFVar26->fts_dirp;\n  }\n  if (local_54 != 0) {\n    pcVar21 = sp->fts_path;\n    for (p_Var14 = sp->fts_child; p_Var5 = local_6c, p_Var14 != (_ftsent *)0x0;\n        p_Var14 = p_Var14->fts_link) {\n      if ((_ftsent *)p_Var14->fts_accpath != p_Var14 + 1) {\n        p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);\n      }\n      p_Var14->fts_path = pcVar21;\n    }\n    while (pFVar28 = p_Var5, -1 < pFVar28->fts_level) {\n      if ((FTSENT *)pFVar28->fts_accpath != pFVar28 + 1) {\n        pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);\n      }\n      pFVar28->fts_path = pcVar21;\n      p_Var5 = pFVar28->fts_link;\n      if (pFVar28->fts_link == (_ftsent *)0x0) {\n        p_Var5 = pFVar28->fts_parent;\n      }\n    }\n  }\n  if ((sp->fts_options & 4U) != 0) {\n    if ((sp->fts_pathlen == uVar25) || (nitems == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = '\0';\n  }\n  if ((pDVar19 == (DIR *)0x0) && (bVar1)) {\n    if ((type != 1) && (nitems != 0)) goto LAB_00018870;\n    if (pFVar26->fts_level == 0) {\n      iVar29 = restore_initial_cwd(sp);\n    }\n    else {\n      iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar29 != 0) {\n      uVar20 = sp->fts_options;\n      pFVar26->fts_info = 7;\n      sp->fts_options = uVar20 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (nitems == 0) {\n    if (((type == 3) && (pFVar26->fts_info != 4)) && (pFVar26->fts_info != 7)) {\n      pFVar26->fts_info = 6;\n    }\nLAB_00018c18:\n    fts_lfree(local_6c);\n    return (FTSENT *)0x0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)(PTR_00032104 + 0x7120);\n    pFVar26 = fts_sort(sp,local_6c,nitems);\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0;\n    return pFVar26;\n  }\n  if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n    return local_6c;\n  }\n  if (nitems == 1) {\n    return local_6c;\n  }\n  pFVar26 = fts_sort(sp,local_6c,nitems);\n  return pFVar26;\n}" type_identifier (pointer_declarator "* fts_build(FTS *sp,int type)" * (function_declarator "fts_build(FTS *sp,int type)" identifier (parameter_list "(FTS *sp,int type)" ( (parameter_declaration "FTS *sp" type_identifier (pointer_declarator "*sp" * identifier)) , (parameter_declaration "int type" primitive_type identifier) )))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  _ftsent *p_Var5;\n  FTSENT *pFVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  FTSENT *pFVar12;\n  uint uVar13;\n  _ftsent *p_Var14;\n  int iVar15;\n  _Bool _Var18;\n  ushort uVar17;\n  leaf_optimization lVar16;\n  DIR *pDVar19;\n  uint uVar20;\n  char *pcVar21;\n  undefined4 uVar22;\n  undefined4 uVar23;\n  size_t nitems;\n  uint uVar24;\n  uint uVar25;\n  FTSENT *pFVar26;\n  DIR *pDVar27;\n  FTSENT *pFVar28;\n  int iVar29;\n  FTSENT *local_6c;\n  uint local_5c;\n  char *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  pFVar26 = sp->fts_cur;\n  pDVar19 = pFVar26->fts_dirp;\n  if (pDVar19 == (DIR *)0x0) {\n    uVar20 = sp->fts_options;\n    if ((uVar20 & 0x204) == 0x200) {\n      iVar29 = sp->fts_cwd_fd;\n    }\n    else {\n      iVar29 = -100;\n    }\n    uVar25 = uVar20 & 0x10;\n    if (((uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0)) &&\n       (uVar25 = pFVar26->fts_level, uVar25 != 0)) {\n      uVar25 = 0x20000;\n    }\n    local_40 = openat_safer(iVar29,pFVar26->fts_accpath,(uVar20 & 0x800) << 7 | uVar25 | 0x90880);\n    if (-1 < local_40) {\n      pDVar27 = (DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (pDVar27 != (DIR *)0x0) {\n        pFVar26->fts_dirp = pDVar27;\n        if (pFVar26->fts_info == 0xb) {\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }\n        else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (type == 2) {\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((sp->fts_options & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar22 = *puVar11;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar11 = uVar22;\n    }\n    pFVar26->fts_dirp = (DIR *)0x0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (type == 3) {\n      pFVar26->fts_info = 4;\n      piVar10 = (int *)(*(code *)puVar3)();\n      pFVar26->fts_errno = *piVar10;\n      return (FTSENT *)0x0;\n    }\n    return (FTSENT *)0x0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n    pFVar26->fts_dirp = (DIR *)0x0;\n    goto joined_r0x00018a30;\n  }\n  uVar20 = sp->fts_options;\n  if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar24 = pFVar26->fts_pathlen;\n  uVar25 = uVar24;\n  local_50 = uVar24 - 1;\n  if (pFVar26->fts_path[uVar24 - 1] != '/') {\n    uVar25 = uVar24 + 1;\n    local_50 = uVar24;\n  }\n  if ((uVar20 & 4) == 0) {\n    local_58 = (char *)0x0;\n  }\n  else {\n    local_58 = sp->fts_path + local_50 + 1;\n    sp->fts_path[local_50] = '/';\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar29 = pFVar26->fts_level;\n  pFVar28 = (FTSENT *)0x0;\n  nitems = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = (FTSENT *)0x0;\n  pcVar7 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar8 = (code *)(PTR_00032104 + 0x746c);\n  pcVar9 = (code *)(PTR_00032104 + 0x7820);\n  uVar20 = sp->fts_pathlen - uVar25;\n  pDVar27 = pFVar26->fts_dirp;\n  while (pDVar27 != (DIR *)0x0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar10 = 0;\n    puVar11 = (undefined4 *)(*(code *)puVar4)(pDVar27);\n    if (puVar11 == (undefined4 *)0x0) {\n      if (*piVar10 != 0) {\n        pFVar26->fts_errno = *piVar10;\n        uVar17 = 7;\n        if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {\n          uVar17 = 4;\n        }\n        pFVar26->fts_info = uVar17;\n      }\n      if (pFVar26->fts_dirp != (DIR *)0x0) {\n        (*(code *)PTR_closedir_000322ac)();\n        pFVar26->fts_dirp = (DIR *)0x0;\n      }\n      break;\n    }\n    if ((((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.')) ||\n       ((*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar24 = (*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13);\n      pFVar12 = (FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24);\n      if (pFVar12 == (FTSENT *)0x0) {\nLAB_000188cc:\n        iVar29 = *piVar10;\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = iVar29;\n        return (FTSENT *)0x0;\n      }\n      if (uVar20 <= uVar24) {\n        pcVar21 = sp->fts_path;\n        _Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24));\n        iVar15 = CONCAT31(extraout_var,_Var18);\n        if (iVar15 == 0) goto LAB_000188cc;\n        if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {\n          local_58 = sp->fts_path + uVar25;\n        }\n        uVar20 = sp->fts_pathlen - uVar25;\n      }\n      if (uVar24 + uVar25 < uVar25) {\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = 0x4e;\n        return (FTSENT *)0x0;\n      }\n      uVar13 = sp->fts_options;\n      uVar23 = puVar11[1];\n      uVar22 = *puVar11;\n      pFVar12->fts_parent = sp->fts_cur;\n      pFVar12->fts_pathlen = uVar24 + uVar25;\n      pFVar12->fts_level = iVar29 + 1;\n      *(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4) = uVar23;\n      *(undefined4 *)&pFVar12->fts_statp[0].st_ino = uVar22;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar13 & 4) == 0) {\n        pFVar12->fts_accpath = (char *)(pFVar12 + 1);\n      }\n      else {\n        pFVar12->fts_accpath = pFVar12->fts_path;\n        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);\n        uVar13 = sp->fts_options;\n      }\n      if ((sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||\n         ((uVar13 & 0x400) != 0)) {\n        uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);\n        if ((uVar13 & 0x18) == 0x18) {\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }\n        else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }\n        *(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;\n        *(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;\n      }\n      else {\n        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);\n        pFVar12->fts_info = uVar17;\n      }\n      pFVar12->fts_link = (_ftsent *)0x0;\n      pFVar6 = pFVar12;\n      if (local_6c != (FTSENT *)0x0) {\n        pFVar28->fts_link = pFVar12;\n        pFVar6 = local_6c;\n      }\n      local_6c = pFVar6;\n      pFVar28 = pFVar12;\n      if (nitems == 10000) {\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        nitems = 0x2711;\n      }\n      else {\n        if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }\nLAB_000183bc:\n        nitems = nitems + 1;\n      }\n    }\n    pDVar27 = pFVar26->fts_dirp;\n  }\n  if (local_54 != 0) {\n    pcVar21 = sp->fts_path;\n    for (p_Var14 = sp->fts_child; p_Var5 = local_6c, p_Var14 != (_ftsent *)0x0;\n        p_Var14 = p_Var14->fts_link) {\n      if ((_ftsent *)p_Var14->fts_accpath != p_Var14 + 1) {\n        p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);\n      }\n      p_Var14->fts_path = pcVar21;\n    }\n    while (pFVar28 = p_Var5, -1 < pFVar28->fts_level) {\n      if ((FTSENT *)pFVar28->fts_accpath != pFVar28 + 1) {\n        pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);\n      }\n      pFVar28->fts_path = pcVar21;\n      p_Var5 = pFVar28->fts_link;\n      if (pFVar28->fts_link == (_ftsent *)0x0) {\n        p_Var5 = pFVar28->fts_parent;\n      }\n    }\n  }\n  if ((sp->fts_options & 4U) != 0) {\n    if ((sp->fts_pathlen == uVar25) || (nitems == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = '\0';\n  }\n  if ((pDVar19 == (DIR *)0x0) && (bVar1)) {\n    if ((type != 1) && (nitems != 0)) goto LAB_00018870;\n    if (pFVar26->fts_level == 0) {\n      iVar29 = restore_initial_cwd(sp);\n    }\n    else {\n      iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar29 != 0) {\n      uVar20 = sp->fts_options;\n      pFVar26->fts_info = 7;\n      sp->fts_options = uVar20 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (nitems == 0) {\n    if (((type == 3) && (pFVar26->fts_info != 4)) && (pFVar26->fts_info != 7)) {\n      pFVar26->fts_info = 6;\n    }\nLAB_00018c18:\n    fts_lfree(local_6c);\n    return (FTSENT *)0x0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)(PTR_00032104 + 0x7120);\n    pFVar26 = fts_sort(sp,local_6c,nitems);\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0;\n    return pFVar26;\n  }\n  if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n    return local_6c;\n  }\n  if (nitems == 1) {\n    return local_6c;\n  }\n  pFVar26 = fts_sort(sp,local_6c,nitems);\n  return pFVar26;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "_ftsent *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "FTSENT *pFVar6;" type_identifier (pointer_declarator "*pFVar6" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "FTSENT *pFVar12;" type_identifier (pointer_declarator "*pFVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "_ftsent *p_Var14;" type_identifier (pointer_declarator "*p_Var14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "_Bool _Var18;" type_identifier identifier ;) (declaration "ushort uVar17;" type_identifier identifier ;) (declaration "leaf_optimization lVar16;" type_identifier identifier ;) (declaration "DIR *pDVar19;" type_identifier (pointer_declarator "*pDVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "size_t nitems;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "FTSENT *pFVar26;" type_identifier (pointer_declarator "*pFVar26" * identifier) ;) (declaration "DIR *pDVar27;" type_identifier (pointer_declarator "*pDVar27" * identifier) ;) (declaration "FTSENT *pFVar28;" type_identifier (pointer_declarator "*pFVar28" * identifier) ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "FTSENT *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "char *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (expression_statement "pFVar26 = sp->fts_cur;" (assignment_expression "pFVar26 = sp->fts_cur" identifier = (field_expression "sp->fts_cur" identifier -> field_identifier)) ;) (expression_statement "pDVar19 = pFVar26->fts_dirp;" (assignment_expression "pDVar19 = pFVar26->fts_dirp" identifier = (field_expression "pFVar26->fts_dirp" identifier -> field_identifier)) ;) (if_statement "if (pDVar19 == (DIR *)0x0) {\n    uVar20 = sp->fts_options;\n    if ((uVar20 & 0x204) == 0x200) {\n      iVar29 = sp->fts_cwd_fd;\n    }\n    else {\n      iVar29 = -100;\n    }\n    uVar25 = uVar20 & 0x10;\n    if (((uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0)) &&\n       (uVar25 = pFVar26->fts_level, uVar25 != 0)) {\n      uVar25 = 0x20000;\n    }\n    local_40 = openat_safer(iVar29,pFVar26->fts_accpath,(uVar20 & 0x800) << 7 | uVar25 | 0x90880);\n    if (-1 < local_40) {\n      pDVar27 = (DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (pDVar27 != (DIR *)0x0) {\n        pFVar26->fts_dirp = pDVar27;\n        if (pFVar26->fts_info == 0xb) {\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }\n        else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (type == 2) {\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((sp->fts_options & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar22 = *puVar11;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar11 = uVar22;\n    }\n    pFVar26->fts_dirp = (DIR *)0x0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (type == 3) {\n      pFVar26->fts_info = 4;\n      piVar10 = (int *)(*(code *)puVar3)();\n      pFVar26->fts_errno = *piVar10;\n      return (FTSENT *)0x0;\n    }\n    return (FTSENT *)0x0;\n  }" if (parenthesized_expression "(pDVar19 == (DIR *)0x0)" ( (binary_expression "pDVar19 == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar20 = sp->fts_options;\n    if ((uVar20 & 0x204) == 0x200) {\n      iVar29 = sp->fts_cwd_fd;\n    }\n    else {\n      iVar29 = -100;\n    }\n    uVar25 = uVar20 & 0x10;\n    if (((uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0)) &&\n       (uVar25 = pFVar26->fts_level, uVar25 != 0)) {\n      uVar25 = 0x20000;\n    }\n    local_40 = openat_safer(iVar29,pFVar26->fts_accpath,(uVar20 & 0x800) << 7 | uVar25 | 0x90880);\n    if (-1 < local_40) {\n      pDVar27 = (DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (pDVar27 != (DIR *)0x0) {\n        pFVar26->fts_dirp = pDVar27;\n        if (pFVar26->fts_info == 0xb) {\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }\n        else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (type == 2) {\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((sp->fts_options & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar22 = *puVar11;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar11 = uVar22;\n    }\n    pFVar26->fts_dirp = (DIR *)0x0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (type == 3) {\n      pFVar26->fts_info = 4;\n      piVar10 = (int *)(*(code *)puVar3)();\n      pFVar26->fts_errno = *piVar10;\n      return (FTSENT *)0x0;\n    }\n    return (FTSENT *)0x0;\n  }" { (expression_statement "uVar20 = sp->fts_options;" (assignment_expression "uVar20 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (if_statement "if ((uVar20 & 0x204) == 0x200) {\n      iVar29 = sp->fts_cwd_fd;\n    }\n    else {\n      iVar29 = -100;\n    }" if (parenthesized_expression "((uVar20 & 0x204) == 0x200)" ( (binary_expression "(uVar20 & 0x204) == 0x200" (parenthesized_expression "(uVar20 & 0x204)" ( (binary_expression "uVar20 & 0x204" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar29 = sp->fts_cwd_fd;\n    }" { (expression_statement "iVar29 = sp->fts_cwd_fd;" (assignment_expression "iVar29 = sp->fts_cwd_fd" identifier = (field_expression "sp->fts_cwd_fd" identifier -> field_identifier)) ;) }) (else_clause "else {\n      iVar29 = -100;\n    }" else (compound_statement "{\n      iVar29 = -100;\n    }" { (expression_statement "iVar29 = -100;" (assignment_expression "iVar29 = -100" identifier = number_literal) ;) }))) (expression_statement "uVar25 = uVar20 & 0x10;" (assignment_expression "uVar25 = uVar20 & 0x10" identifier = (binary_expression "uVar20 & 0x10" identifier & number_literal)) ;) (if_statement "if (((uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0)) &&\n       (uVar25 = pFVar26->fts_level, uVar25 != 0)) {\n      uVar25 = 0x20000;\n    }" if (parenthesized_expression "(((uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0)) &&\n       (uVar25 = pFVar26->fts_level, uVar25 != 0))" ( (binary_expression "((uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0)) &&\n       (uVar25 = pFVar26->fts_level, uVar25 != 0)" (parenthesized_expression "((uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0))" ( (binary_expression "(uVar25 != 0) && (uVar25 = 0x20000, (uVar20 & 1) != 0)" (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar25 = 0x20000, (uVar20 & 1) != 0)" ( (comma_expression "uVar25 = 0x20000, (uVar20 & 1) != 0" (assignment_expression "uVar25 = 0x20000" identifier = number_literal) , (binary_expression "(uVar20 & 1) != 0" (parenthesized_expression "(uVar20 & 1)" ( (binary_expression "uVar20 & 1" identifier & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(uVar25 = pFVar26->fts_level, uVar25 != 0)" ( (comma_expression "uVar25 = pFVar26->fts_level, uVar25 != 0" (assignment_expression "uVar25 = pFVar26->fts_level" identifier = (field_expression "pFVar26->fts_level" identifier -> field_identifier)) , (binary_expression "uVar25 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      uVar25 = 0x20000;\n    }" { (expression_statement "uVar25 = 0x20000;" (assignment_expression "uVar25 = 0x20000" identifier = number_literal) ;) })) (expression_statement "local_40 = openat_safer(iVar29,pFVar26->fts_accpath,(uVar20 & 0x800) << 7 | uVar25 | 0x90880);" (assignment_expression "local_40 = openat_safer(iVar29,pFVar26->fts_accpath,(uVar20 & 0x800) << 7 | uVar25 | 0x90880)" identifier = (call_expression "openat_safer(iVar29,pFVar26->fts_accpath,(uVar20 & 0x800) << 7 | uVar25 | 0x90880)" identifier (argument_list "(iVar29,pFVar26->fts_accpath,(uVar20 & 0x800) << 7 | uVar25 | 0x90880)" ( identifier , (field_expression "pFVar26->fts_accpath" identifier -> field_identifier) , (binary_expression "(uVar20 & 0x800) << 7 | uVar25 | 0x90880" (binary_expression "(uVar20 & 0x800) << 7 | uVar25" (binary_expression "(uVar20 & 0x800) << 7" (parenthesized_expression "(uVar20 & 0x800)" ( (binary_expression "uVar20 & 0x800" identifier & number_literal) )) << number_literal) | identifier) | number_literal) )))) ;) (if_statement "if (-1 < local_40) {\n      pDVar27 = (DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (pDVar27 != (DIR *)0x0) {\n        pFVar26->fts_dirp = pDVar27;\n        if (pFVar26->fts_info == 0xb) {\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }\n        else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (type == 2) {\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((sp->fts_options & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar22 = *puVar11;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar11 = uVar22;\n    }" if (parenthesized_expression "(-1 < local_40)" ( (binary_expression "-1 < local_40" number_literal < identifier) )) (compound_statement "{\n      pDVar27 = (DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (pDVar27 != (DIR *)0x0) {\n        pFVar26->fts_dirp = pDVar27;\n        if (pFVar26->fts_info == 0xb) {\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }\n        else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (type == 2) {\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((sp->fts_options & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar22 = *puVar11;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar11 = uVar22;\n    }" { (expression_statement "pDVar27 = (DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40);" (assignment_expression "pDVar27 = (DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40)" identifier = (cast_expression "(DIR *)(*(code *)PTR_fdopendir_000322f4)(local_40)" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fdopendir_000322f4)(local_40)" (parenthesized_expression "(*(code *)PTR_fdopendir_000322f4)" ( (pointer_expression "*(code *)PTR_fdopendir_000322f4" * (cast_expression "(code *)PTR_fdopendir_000322f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier ))))) ;) (if_statement "if (pDVar27 != (DIR *)0x0) {\n        pFVar26->fts_dirp = pDVar27;\n        if (pFVar26->fts_info == 0xb) {\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }\n        else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (type == 2) {\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((sp->fts_options & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }\n        goto LAB_000181a0;\n      }" if (parenthesized_expression "(pDVar27 != (DIR *)0x0)" ( (binary_expression "pDVar27 != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pFVar26->fts_dirp = pDVar27;\n        if (pFVar26->fts_info == 0xb) {\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }\n        else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (type == 2) {\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((sp->fts_options & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }\n        goto LAB_000181a0;\n      }" { (expression_statement "pFVar26->fts_dirp = pDVar27;" (assignment_expression "pFVar26->fts_dirp = pDVar27" (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) = identifier) ;) (if_statement "if (pFVar26->fts_info == 0xb) {\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }\n        else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }" if (parenthesized_expression "(pFVar26->fts_info == 0xb)" ( (binary_expression "pFVar26->fts_info == 0xb" (field_expression "pFVar26->fts_info" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);\n          pFVar26->fts_info = uVar17;\n        }" { (expression_statement "uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0);" (assignment_expression "uVar17 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0)" identifier = (call_expression "fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0)" identifier (argument_list "((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),\n                            (FTS *)0x0)" ( (cast_expression "(FTS *)sp->fts_cwd_fd" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_cwd_fd" identifier -> field_identifier)) , (cast_expression "(FTSENT *)&sp->fts_options" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sp->fts_options" & (field_expression "sp->fts_options" identifier -> field_identifier))) , (call_expression "SUB41(pFVar26,0)" identifier (argument_list "(pFVar26,0)" ( identifier , number_literal ))) , (cast_expression "(FTS *)0x0" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "pFVar26->fts_info = uVar17;" (assignment_expression "pFVar26->fts_info = uVar17" (field_expression "pFVar26->fts_info" identifier -> field_identifier) = identifier) ;) }) (else_clause "else if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }" else (if_statement "if (((uint)sp->fts_options & 0x100) != 0) {\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }" if (parenthesized_expression "(((uint)sp->fts_options & 0x100) != 0)" ( (binary_expression "((uint)sp->fts_options & 0x100) != 0" (parenthesized_expression "((uint)sp->fts_options & 0x100)" ( (binary_expression "(uint)sp->fts_options & 0x100" (cast_expression "(uint)sp->fts_options" ( (type_descriptor "uint" type_identifier) ) (field_expression "sp->fts_options" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n          leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);\n          _Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);\n          if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }\n        }" { (expression_statement "leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);" (call_expression "leave_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26)" identifier (argument_list "((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26)" ( (cast_expression "(FTS *)sp->fts_options" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_options" identifier -> field_identifier)) , (cast_expression "(FTSENT *)&sp->fts_cycle" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sp->fts_cycle" & (field_expression "sp->fts_cycle" identifier -> field_identifier))) , (cast_expression "(FTS *)pFVar26" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0);" (call_expression "fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0)" identifier (argument_list "((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar26,0),(FTS *)0x0)" ( (cast_expression "(FTS *)sp->fts_cwd_fd" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_cwd_fd" identifier -> field_identifier)) , (cast_expression "(FTSENT *)&sp->fts_options" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sp->fts_options" & (field_expression "sp->fts_options" identifier -> field_identifier))) , (call_expression "SUB41(pFVar26,0)" identifier (argument_list "(pFVar26,0)" ( identifier , number_literal ))) , (cast_expression "(FTS *)0x0" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "_Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26);" (assignment_expression "_Var18 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26)" identifier = (call_expression "enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26)" identifier (argument_list "((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar26)" ( (cast_expression "(FTS *)sp->fts_options" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_options" identifier -> field_identifier)) , (cast_expression "(FTSENT *)&sp->fts_cycle" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sp->fts_cycle" & (field_expression "sp->fts_cycle" identifier -> field_identifier))) , (cast_expression "(FTS *)pFVar26" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (CONCAT31(extraout_var_00,_Var18) == 0) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }" if (parenthesized_expression "(CONCAT31(extraout_var_00,_Var18) == 0)" ( (binary_expression "CONCAT31(extraout_var_00,_Var18) == 0" (call_expression "CONCAT31(extraout_var_00,_Var18)" identifier (argument_list "(extraout_var_00,_Var18)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar11 = 0xc;\n            return (FTSENT *)0x0;\n          }" { (expression_statement "puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar11 = 0xc;" (assignment_expression "*puVar11 = 0xc" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) })))) (if_statement "if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }" if (parenthesized_expression "(sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0)" ( (binary_expression "sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" (field_expression "sp->fts_compar" identifier -> field_identifier) == (cast_expression "(_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" ( (type_descriptor "_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_5c = 100000;\n        }" { (expression_statement "local_5c = 100000;" (assignment_expression "local_5c = 100000" identifier = number_literal) ;) }) (else_clause "else {\n          local_5c = 0xffffffff;\n        }" else (compound_statement "{\n          local_5c = 0xffffffff;\n        }" { (expression_statement "local_5c = 0xffffffff;" (assignment_expression "local_5c = 0xffffffff" identifier = number_literal) ;) }))) (if_statement "if (type == 2) {\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }" if (parenthesized_expression "(type == 2)" ( (binary_expression "type == 2" identifier == number_literal) )) (compound_statement "{\nLAB_000189a4:\n          uVar20 = sp->fts_options;\n          bVar1 = false;\n          goto LAB_000181a0;\n        }" { (labeled_statement "LAB_000189a4:\n          uVar20 = sp->fts_options;" statement_identifier : (expression_statement "uVar20 = sp->fts_options;" (assignment_expression "uVar20 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (goto_statement "goto LAB_000181a0;" goto statement_identifier ;) })) (if_statement "if ((sp->fts_options & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }" if (parenthesized_expression "((sp->fts_options & 0x38U) == 0x18)" ( (binary_expression "(sp->fts_options & 0x38U) == 0x18" (parenthesized_expression "(sp->fts_options & 0x38U)" ( (binary_expression "sp->fts_options & 0x38U" (field_expression "sp->fts_options" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          bVar1 = true;\n          if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (pFVar26->fts_statp[0].st_nlink == 2) {\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }" if (parenthesized_expression "(pFVar26->fts_statp[0].st_nlink == 2)" ( (binary_expression "pFVar26->fts_statp[0].st_nlink == 2" (field_expression "pFVar26->fts_statp[0].st_nlink" (subscript_expression "pFVar26->fts_statp[0]" (field_expression "pFVar26->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier) == number_literal) )) (compound_statement "{\n            lVar16 = leaf_optimization(pFVar26,local_40);\n            if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;\n            bVar1 = false;\n            if (type != 3) goto LAB_000189a4;\n          }" { (expression_statement "lVar16 = leaf_optimization(pFVar26,local_40);" (assignment_expression "lVar16 = leaf_optimization(pFVar26,local_40)" identifier = (call_expression "leaf_optimization(pFVar26,local_40)" identifier (argument_list "(pFVar26,local_40)" ( identifier , identifier )))) ;) (if_statement "if (lVar16 == NO_LEAF_OPTIMIZATION) goto LAB_0001873c;" if (parenthesized_expression "(lVar16 == NO_LEAF_OPTIMIZATION)" ( (binary_expression "lVar16 == NO_LEAF_OPTIMIZATION" identifier == identifier) )) (goto_statement "goto LAB_0001873c;" goto statement_identifier ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (type != 3) goto LAB_000189a4;" if (parenthesized_expression "(type != 3)" ( (binary_expression "type != 3" identifier != number_literal) )) (goto_statement "goto LAB_000189a4;" goto statement_identifier ;)) })) }) (else_clause "else {\nLAB_0001873c:\n          bVar1 = true;\n        }" else (compound_statement "{\nLAB_0001873c:\n          bVar1 = true;\n        }" { (labeled_statement "LAB_0001873c:\n          bVar1 = true;" statement_identifier : (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;)) }))) (if_statement "if ((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)) {\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }" if (parenthesized_expression "((((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0))" ( (binary_expression "(((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)" (parenthesized_expression "(((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40))" ( (binary_expression "((sp->fts_options & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)" (parenthesized_expression "((sp->fts_options & 0x200U) == 0)" ( (binary_expression "(sp->fts_options & 0x200U) == 0" (parenthesized_expression "(sp->fts_options & 0x200U)" ( (binary_expression "sp->fts_options & 0x200U" (field_expression "sp->fts_options" identifier -> field_identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)" ( (comma_expression "local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40" (assignment_expression "local_40 = rpl_fcntl(local_40,0x406,3)" identifier = (call_expression "rpl_fcntl(local_40,0x406,3)" identifier (argument_list "(local_40,0x406,3)" ( identifier , number_literal , number_literal )))) , (binary_expression "-1 < local_40" number_literal < identifier)) ))) )) && (parenthesized_expression "(iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0)" ( (comma_expression "iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0), iVar29 == 0" (assignment_expression "iVar29 = fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0)" identifier = (call_expression "fts_safe_changedir(sp,pFVar26,local_40,(char *)0x0)" identifier (argument_list "(sp,pFVar26,local_40,(char *)0x0)" ( identifier , identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) , (binary_expression "iVar29 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar20 = sp->fts_options;\n          bVar1 = true;\n        }" { (expression_statement "uVar20 = sp->fts_options;" (assignment_expression "uVar20 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }" else (compound_statement "{\n          if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          pFVar26->fts_flags = pFVar26->fts_flags | 1;\n          (*(code *)puVar3)(pFVar26->fts_dirp);\n          uVar20 = sp->fts_options;\n          pFVar26->fts_dirp = (DIR *)0x0;\n          if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }\n        }" { (if_statement "if ((bVar1) && (type == 3)) {\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }" if (parenthesized_expression "((bVar1) && (type == 3))" ( (binary_expression "(bVar1) && (type == 3)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(type == 3)" ( (binary_expression "type == 3" identifier == number_literal) ))) )) (compound_statement "{\n            piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n            pFVar26->fts_errno = *piVar10;\n          }" { (expression_statement "piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "piVar10 = (int *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pFVar26->fts_errno = *piVar10;" (assignment_expression "pFVar26->fts_errno = *piVar10" (field_expression "pFVar26->fts_errno" identifier -> field_identifier) = (pointer_expression "*piVar10" * identifier)) ;) })) (expression_statement "puVar3 = PTR_closedir_000322ac;" (assignment_expression "puVar3 = PTR_closedir_000322ac" identifier = identifier) ;) (expression_statement "pFVar26->fts_flags = pFVar26->fts_flags | 1;" (assignment_expression "pFVar26->fts_flags = pFVar26->fts_flags | 1" (field_expression "pFVar26->fts_flags" identifier -> field_identifier) = (binary_expression "pFVar26->fts_flags | 1" (field_expression "pFVar26->fts_flags" identifier -> field_identifier) | number_literal)) ;) (expression_statement "(*(code *)puVar3)(pFVar26->fts_dirp);" (call_expression "(*(code *)puVar3)(pFVar26->fts_dirp)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar26->fts_dirp)" ( (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) ))) ;) (expression_statement "uVar20 = sp->fts_options;" (assignment_expression "uVar20 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (expression_statement "pFVar26->fts_dirp = (DIR *)0x0;" (assignment_expression "pFVar26->fts_dirp = (DIR *)0x0" (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (((uVar20 & 0x200) == 0) || (local_40 < 0)) {\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }" if (parenthesized_expression "(((uVar20 & 0x200) == 0) || (local_40 < 0))" ( (binary_expression "((uVar20 & 0x200) == 0) || (local_40 < 0)" (parenthesized_expression "((uVar20 & 0x200) == 0)" ( (binary_expression "(uVar20 & 0x200) == 0" (parenthesized_expression "(uVar20 & 0x200)" ( (binary_expression "uVar20 & 0x200" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_40 < 0)" ( (binary_expression "local_40 < 0" identifier < number_literal) ))) )) (compound_statement "{\n            pFVar26->fts_dirp = (DIR *)0x0;\n            bVar1 = false;\n          }" { (expression_statement "pFVar26->fts_dirp = (DIR *)0x0;" (assignment_expression "pFVar26->fts_dirp = (DIR *)0x0" (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }" else (compound_statement "{\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar20 = sp->fts_options;\n            bVar1 = false;\n            pFVar26->fts_dirp = (DIR *)0x0;\n          }" { (expression_statement "(*(code *)PTR_close_000322b0)(local_40);" (call_expression "(*(code *)PTR_close_000322b0)(local_40)" (parenthesized_expression "(*(code *)PTR_close_000322b0)" ( (pointer_expression "*(code *)PTR_close_000322b0" * (cast_expression "(code *)PTR_close_000322b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier ))) ;) (expression_statement "uVar20 = sp->fts_options;" (assignment_expression "uVar20 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "pFVar26->fts_dirp = (DIR *)0x0;" (assignment_expression "pFVar26->fts_dirp = (DIR *)0x0" (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (goto_statement "goto LAB_000181a0;" goto statement_identifier ;) })) (expression_statement "puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar11 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar22 = *puVar11;" (assignment_expression "uVar22 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "(*(code *)PTR_close_000322b0)(local_40);" (call_expression "(*(code *)PTR_close_000322b0)(local_40)" (parenthesized_expression "(*(code *)PTR_close_000322b0)" ( (pointer_expression "*(code *)PTR_close_000322b0" * (cast_expression "(code *)PTR_close_000322b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier ))) ;) (expression_statement "*puVar11 = uVar22;" (assignment_expression "*puVar11 = uVar22" (pointer_expression "*puVar11" * identifier) = identifier) ;) })) (expression_statement "pFVar26->fts_dirp = (DIR *)0x0;" (assignment_expression "pFVar26->fts_dirp = (DIR *)0x0" (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "joined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;" statement_identifier : (expression_statement "puVar3 = PTR___errno_location_00032328;" (assignment_expression "puVar3 = PTR___errno_location_00032328" identifier = identifier) ;)) (if_statement "if (type == 3) {\n      pFVar26->fts_info = 4;\n      piVar10 = (int *)(*(code *)puVar3)();\n      pFVar26->fts_errno = *piVar10;\n      return (FTSENT *)0x0;\n    }" if (parenthesized_expression "(type == 3)" ( (binary_expression "type == 3" identifier == number_literal) )) (compound_statement "{\n      pFVar26->fts_info = 4;\n      piVar10 = (int *)(*(code *)puVar3)();\n      pFVar26->fts_errno = *piVar10;\n      return (FTSENT *)0x0;\n    }" { (expression_statement "pFVar26->fts_info = 4;" (assignment_expression "pFVar26->fts_info = 4" (field_expression "pFVar26->fts_info" identifier -> field_identifier) = number_literal) ;) (expression_statement "piVar10 = (int *)(*(code *)puVar3)();" (assignment_expression "piVar10 = (int *)(*(code *)puVar3)()" identifier = (cast_expression "(int *)(*(code *)puVar3)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar3)()" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pFVar26->fts_errno = *piVar10;" (assignment_expression "pFVar26->fts_errno = *piVar10" (field_expression "pFVar26->fts_errno" identifier -> field_identifier) = (pointer_expression "*piVar10" * identifier)) ;) (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "local_40 = (*(code *)PTR_dirfd_000323dc)();" (assignment_expression "local_40 = (*(code *)PTR_dirfd_000323dc)()" identifier = (call_expression "(*(code *)PTR_dirfd_000323dc)()" (parenthesized_expression "(*(code *)PTR_dirfd_000323dc)" ( (pointer_expression "*(code *)PTR_dirfd_000323dc" * (cast_expression "(code *)PTR_dirfd_000323dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n    pFVar26->fts_dirp = (DIR *)0x0;\n    goto joined_r0x00018a30;\n  }" if (parenthesized_expression "(local_40 < 0)" ( (binary_expression "local_40 < 0" identifier < number_literal) )) (compound_statement "{\n    (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n    pFVar26->fts_dirp = (DIR *)0x0;\n    goto joined_r0x00018a30;\n  }" { (expression_statement "(*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);" (call_expression "(*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp)" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar26->fts_dirp)" ( (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) ))) ;) (expression_statement "pFVar26->fts_dirp = (DIR *)0x0;" (assignment_expression "pFVar26->fts_dirp = (DIR *)0x0" (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto joined_r0x00018a30;" goto statement_identifier ;) })) (expression_statement "uVar20 = sp->fts_options;" (assignment_expression "uVar20 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (if_statement "if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" if (parenthesized_expression "(sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0)" ( (binary_expression "sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" (field_expression "sp->fts_compar" identifier -> field_identifier) == (cast_expression "(_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" ( (type_descriptor "_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar1 = true;\n    local_5c = 100000;\n  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "local_5c = 100000;" (assignment_expression "local_5c = 100000" identifier = number_literal) ;) }) (else_clause "else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" else (compound_statement "{\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" { (expression_statement "local_5c = 0xffffffff;" (assignment_expression "local_5c = 0xffffffff" identifier = number_literal) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) (labeled_statement "LAB_000181a0:\n  uVar24 = pFVar26->fts_pathlen;" statement_identifier : (expression_statement "uVar24 = pFVar26->fts_pathlen;" (assignment_expression "uVar24 = pFVar26->fts_pathlen" identifier = (field_expression "pFVar26->fts_pathlen" identifier -> field_identifier)) ;)) (expression_statement "uVar25 = uVar24;" (assignment_expression "uVar25 = uVar24" identifier = identifier) ;) (expression_statement "local_50 = uVar24 - 1;" (assignment_expression "local_50 = uVar24 - 1" identifier = (binary_expression "uVar24 - 1" identifier - number_literal)) ;) (if_statement "if (pFVar26->fts_path[uVar24 - 1] != '/') {\n    uVar25 = uVar24 + 1;\n    local_50 = uVar24;\n  }" if (parenthesized_expression "(pFVar26->fts_path[uVar24 - 1] != '/')" ( (binary_expression "pFVar26->fts_path[uVar24 - 1] != '/'" (subscript_expression "pFVar26->fts_path[uVar24 - 1]" (field_expression "pFVar26->fts_path" identifier -> field_identifier) [ (binary_expression "uVar24 - 1" identifier - number_literal) ]) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n    uVar25 = uVar24 + 1;\n    local_50 = uVar24;\n  }" { (expression_statement "uVar25 = uVar24 + 1;" (assignment_expression "uVar25 = uVar24 + 1" identifier = (binary_expression "uVar24 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = uVar24;" (assignment_expression "local_50 = uVar24" identifier = identifier) ;) })) (if_statement "if ((uVar20 & 4) == 0) {\n    local_58 = (char *)0x0;\n  }\n  else {\n    local_58 = sp->fts_path + local_50 + 1;\n    sp->fts_path[local_50] = '/';\n  }" if (parenthesized_expression "((uVar20 & 4) == 0)" ( (binary_expression "(uVar20 & 4) == 0" (parenthesized_expression "(uVar20 & 4)" ( (binary_expression "uVar20 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_58 = (char *)0x0;\n  }" { (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    local_58 = sp->fts_path + local_50 + 1;\n    sp->fts_path[local_50] = '/';\n  }" else (compound_statement "{\n    local_58 = sp->fts_path + local_50 + 1;\n    sp->fts_path[local_50] = '/';\n  }" { (expression_statement "local_58 = sp->fts_path + local_50 + 1;" (assignment_expression "local_58 = sp->fts_path + local_50 + 1" identifier = (binary_expression "sp->fts_path + local_50 + 1" (binary_expression "sp->fts_path + local_50" (field_expression "sp->fts_path" identifier -> field_identifier) + identifier) + number_literal)) ;) (expression_statement "sp->fts_path[local_50] = '/';" (assignment_expression "sp->fts_path[local_50] = '/'" (subscript_expression "sp->fts_path[local_50]" (field_expression "sp->fts_path" identifier -> field_identifier) [ identifier ]) = (char_literal "'/'" ' character ')) ;) }))) (expression_statement "puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;" (assignment_expression "puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108" identifier = identifier) ;) (expression_statement "iVar29 = pFVar26->fts_level;" (assignment_expression "iVar29 = pFVar26->fts_level" identifier = (field_expression "pFVar26->fts_level" identifier -> field_identifier)) ;) (expression_statement "pFVar28 = (FTSENT *)0x0;" (assignment_expression "pFVar28 = (FTSENT *)0x0" identifier = (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "nitems = 0;" (assignment_expression "nitems = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_6c = (FTSENT *)0x0;" (assignment_expression "local_6c = (FTSENT *)0x0" identifier = (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar7 = (code *)(PTR_00032104 + 0x72c0);" (assignment_expression "pcVar7 = (code *)(PTR_00032104 + 0x72c0)" identifier = (cast_expression "(code *)(PTR_00032104 + 0x72c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_00032104 + 0x72c0)" ( (binary_expression "PTR_00032104 + 0x72c0" identifier + number_literal) )))) ;) (expression_statement "pcVar8 = (code *)(PTR_00032104 + 0x746c);" (assignment_expression "pcVar8 = (code *)(PTR_00032104 + 0x746c)" identifier = (cast_expression "(code *)(PTR_00032104 + 0x746c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_00032104 + 0x746c)" ( (binary_expression "PTR_00032104 + 0x746c" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_00032104 + 0x7820);" (assignment_expression "pcVar9 = (code *)(PTR_00032104 + 0x7820)" identifier = (cast_expression "(code *)(PTR_00032104 + 0x7820)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_00032104 + 0x7820)" ( (binary_expression "PTR_00032104 + 0x7820" identifier + number_literal) )))) ;) (expression_statement "uVar20 = sp->fts_pathlen - uVar25;" (assignment_expression "uVar20 = sp->fts_pathlen - uVar25" identifier = (binary_expression "sp->fts_pathlen - uVar25" (field_expression "sp->fts_pathlen" identifier -> field_identifier) - identifier)) ;) (expression_statement "pDVar27 = pFVar26->fts_dirp;" (assignment_expression "pDVar27 = pFVar26->fts_dirp" identifier = (field_expression "pFVar26->fts_dirp" identifier -> field_identifier)) ;) (while_statement "while (pDVar27 != (DIR *)0x0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar10 = 0;\n    puVar11 = (undefined4 *)(*(code *)puVar4)(pDVar27);\n    if (puVar11 == (undefined4 *)0x0) {\n      if (*piVar10 != 0) {\n        pFVar26->fts_errno = *piVar10;\n        uVar17 = 7;\n        if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {\n          uVar17 = 4;\n        }\n        pFVar26->fts_info = uVar17;\n      }\n      if (pFVar26->fts_dirp != (DIR *)0x0) {\n        (*(code *)PTR_closedir_000322ac)();\n        pFVar26->fts_dirp = (DIR *)0x0;\n      }\n      break;\n    }\n    if ((((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.')) ||\n       ((*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar24 = (*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13);\n      pFVar12 = (FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24);\n      if (pFVar12 == (FTSENT *)0x0) {\nLAB_000188cc:\n        iVar29 = *piVar10;\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = iVar29;\n        return (FTSENT *)0x0;\n      }\n      if (uVar20 <= uVar24) {\n        pcVar21 = sp->fts_path;\n        _Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24));\n        iVar15 = CONCAT31(extraout_var,_Var18);\n        if (iVar15 == 0) goto LAB_000188cc;\n        if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {\n          local_58 = sp->fts_path + uVar25;\n        }\n        uVar20 = sp->fts_pathlen - uVar25;\n      }\n      if (uVar24 + uVar25 < uVar25) {\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = 0x4e;\n        return (FTSENT *)0x0;\n      }\n      uVar13 = sp->fts_options;\n      uVar23 = puVar11[1];\n      uVar22 = *puVar11;\n      pFVar12->fts_parent = sp->fts_cur;\n      pFVar12->fts_pathlen = uVar24 + uVar25;\n      pFVar12->fts_level = iVar29 + 1;\n      *(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4) = uVar23;\n      *(undefined4 *)&pFVar12->fts_statp[0].st_ino = uVar22;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar13 & 4) == 0) {\n        pFVar12->fts_accpath = (char *)(pFVar12 + 1);\n      }\n      else {\n        pFVar12->fts_accpath = pFVar12->fts_path;\n        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);\n        uVar13 = sp->fts_options;\n      }\n      if ((sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||\n         ((uVar13 & 0x400) != 0)) {\n        uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);\n        if ((uVar13 & 0x18) == 0x18) {\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }\n        else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }\n        *(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;\n        *(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;\n      }\n      else {\n        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);\n        pFVar12->fts_info = uVar17;\n      }\n      pFVar12->fts_link = (_ftsent *)0x0;\n      pFVar6 = pFVar12;\n      if (local_6c != (FTSENT *)0x0) {\n        pFVar28->fts_link = pFVar12;\n        pFVar6 = local_6c;\n      }\n      local_6c = pFVar6;\n      pFVar28 = pFVar12;\n      if (nitems == 10000) {\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        nitems = 0x2711;\n      }\n      else {\n        if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }\nLAB_000183bc:\n        nitems = nitems + 1;\n      }\n    }\n    pDVar27 = pFVar26->fts_dirp;\n  }" while (parenthesized_expression "(pDVar27 != (DIR *)0x0)" ( (binary_expression "pDVar27 != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar10 = 0;\n    puVar11 = (undefined4 *)(*(code *)puVar4)(pDVar27);\n    if (puVar11 == (undefined4 *)0x0) {\n      if (*piVar10 != 0) {\n        pFVar26->fts_errno = *piVar10;\n        uVar17 = 7;\n        if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {\n          uVar17 = 4;\n        }\n        pFVar26->fts_info = uVar17;\n      }\n      if (pFVar26->fts_dirp != (DIR *)0x0) {\n        (*(code *)PTR_closedir_000322ac)();\n        pFVar26->fts_dirp = (DIR *)0x0;\n      }\n      break;\n    }\n    if ((((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.')) ||\n       ((*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar24 = (*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13);\n      pFVar12 = (FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24);\n      if (pFVar12 == (FTSENT *)0x0) {\nLAB_000188cc:\n        iVar29 = *piVar10;\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = iVar29;\n        return (FTSENT *)0x0;\n      }\n      if (uVar20 <= uVar24) {\n        pcVar21 = sp->fts_path;\n        _Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24));\n        iVar15 = CONCAT31(extraout_var,_Var18);\n        if (iVar15 == 0) goto LAB_000188cc;\n        if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {\n          local_58 = sp->fts_path + uVar25;\n        }\n        uVar20 = sp->fts_pathlen - uVar25;\n      }\n      if (uVar24 + uVar25 < uVar25) {\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = 0x4e;\n        return (FTSENT *)0x0;\n      }\n      uVar13 = sp->fts_options;\n      uVar23 = puVar11[1];\n      uVar22 = *puVar11;\n      pFVar12->fts_parent = sp->fts_cur;\n      pFVar12->fts_pathlen = uVar24 + uVar25;\n      pFVar12->fts_level = iVar29 + 1;\n      *(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4) = uVar23;\n      *(undefined4 *)&pFVar12->fts_statp[0].st_ino = uVar22;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar13 & 4) == 0) {\n        pFVar12->fts_accpath = (char *)(pFVar12 + 1);\n      }\n      else {\n        pFVar12->fts_accpath = pFVar12->fts_path;\n        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);\n        uVar13 = sp->fts_options;\n      }\n      if ((sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||\n         ((uVar13 & 0x400) != 0)) {\n        uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);\n        if ((uVar13 & 0x18) == 0x18) {\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }\n        else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }\n        *(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;\n        *(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;\n      }\n      else {\n        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);\n        pFVar12->fts_info = uVar17;\n      }\n      pFVar12->fts_link = (_ftsent *)0x0;\n      pFVar6 = pFVar12;\n      if (local_6c != (FTSENT *)0x0) {\n        pFVar28->fts_link = pFVar12;\n        pFVar6 = local_6c;\n      }\n      local_6c = pFVar6;\n      pFVar28 = pFVar12;\n      if (nitems == 10000) {\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        nitems = 0x2711;\n      }\n      else {\n        if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }\nLAB_000183bc:\n        nitems = nitems + 1;\n      }\n    }\n    pDVar27 = pFVar26->fts_dirp;\n  }" { (expression_statement "piVar10 = (int *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "piVar10 = (int *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar4 = PTR_readdir64_000322e0;" (assignment_expression "puVar4 = PTR_readdir64_000322e0" identifier = identifier) ;) (expression_statement "*piVar10 = 0;" (assignment_expression "*piVar10 = 0" (pointer_expression "*piVar10" * identifier) = number_literal) ;) (expression_statement "puVar11 = (undefined4 *)(*(code *)puVar4)(pDVar27);" (assignment_expression "puVar11 = (undefined4 *)(*(code *)puVar4)(pDVar27)" identifier = (cast_expression "(undefined4 *)(*(code *)puVar4)(pDVar27)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar4)(pDVar27)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pDVar27)" ( identifier ))))) ;) (if_statement "if (puVar11 == (undefined4 *)0x0) {\n      if (*piVar10 != 0) {\n        pFVar26->fts_errno = *piVar10;\n        uVar17 = 7;\n        if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {\n          uVar17 = 4;\n        }\n        pFVar26->fts_info = uVar17;\n      }\n      if (pFVar26->fts_dirp != (DIR *)0x0) {\n        (*(code *)PTR_closedir_000322ac)();\n        pFVar26->fts_dirp = (DIR *)0x0;\n      }\n      break;\n    }" if (parenthesized_expression "(puVar11 == (undefined4 *)0x0)" ( (binary_expression "puVar11 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*piVar10 != 0) {\n        pFVar26->fts_errno = *piVar10;\n        uVar17 = 7;\n        if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {\n          uVar17 = 4;\n        }\n        pFVar26->fts_info = uVar17;\n      }\n      if (pFVar26->fts_dirp != (DIR *)0x0) {\n        (*(code *)PTR_closedir_000322ac)();\n        pFVar26->fts_dirp = (DIR *)0x0;\n      }\n      break;\n    }" { (if_statement "if (*piVar10 != 0) {\n        pFVar26->fts_errno = *piVar10;\n        uVar17 = 7;\n        if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {\n          uVar17 = 4;\n        }\n        pFVar26->fts_info = uVar17;\n      }" if (parenthesized_expression "(*piVar10 != 0)" ( (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" * identifier) != number_literal) )) (compound_statement "{\n        pFVar26->fts_errno = *piVar10;\n        uVar17 = 7;\n        if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {\n          uVar17 = 4;\n        }\n        pFVar26->fts_info = uVar17;\n      }" { (expression_statement "pFVar26->fts_errno = *piVar10;" (assignment_expression "pFVar26->fts_errno = *piVar10" (field_expression "pFVar26->fts_errno" identifier -> field_identifier) = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "uVar17 = 7;" (assignment_expression "uVar17 = 7" identifier = number_literal) ;) (if_statement "if ((pDVar19 == (DIR *)0x0) && (nitems == 0)) {\n          uVar17 = 4;\n        }" if (parenthesized_expression "((pDVar19 == (DIR *)0x0) && (nitems == 0))" ( (binary_expression "(pDVar19 == (DIR *)0x0) && (nitems == 0)" (parenthesized_expression "(pDVar19 == (DIR *)0x0)" ( (binary_expression "pDVar19 == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(nitems == 0)" ( (binary_expression "nitems == 0" identifier == number_literal) ))) )) (compound_statement "{\n          uVar17 = 4;\n        }" { (expression_statement "uVar17 = 4;" (assignment_expression "uVar17 = 4" identifier = number_literal) ;) })) (expression_statement "pFVar26->fts_info = uVar17;" (assignment_expression "pFVar26->fts_info = uVar17" (field_expression "pFVar26->fts_info" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (pFVar26->fts_dirp != (DIR *)0x0) {\n        (*(code *)PTR_closedir_000322ac)();\n        pFVar26->fts_dirp = (DIR *)0x0;\n      }" if (parenthesized_expression "(pFVar26->fts_dirp != (DIR *)0x0)" ( (binary_expression "pFVar26->fts_dirp != (DIR *)0x0" (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_closedir_000322ac)();\n        pFVar26->fts_dirp = (DIR *)0x0;\n      }" { (expression_statement "(*(code *)PTR_closedir_000322ac)();" (call_expression "(*(code *)PTR_closedir_000322ac)()" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pFVar26->fts_dirp = (DIR *)0x0;" (assignment_expression "pFVar26->fts_dirp = (DIR *)0x0" (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (break_statement "break;" break ;) })) (if_statement "if ((((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.')) ||\n       ((*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar24 = (*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13);\n      pFVar12 = (FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24);\n      if (pFVar12 == (FTSENT *)0x0) {\nLAB_000188cc:\n        iVar29 = *piVar10;\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = iVar29;\n        return (FTSENT *)0x0;\n      }\n      if (uVar20 <= uVar24) {\n        pcVar21 = sp->fts_path;\n        _Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24));\n        iVar15 = CONCAT31(extraout_var,_Var18);\n        if (iVar15 == 0) goto LAB_000188cc;\n        if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {\n          local_58 = sp->fts_path + uVar25;\n        }\n        uVar20 = sp->fts_pathlen - uVar25;\n      }\n      if (uVar24 + uVar25 < uVar25) {\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = 0x4e;\n        return (FTSENT *)0x0;\n      }\n      uVar13 = sp->fts_options;\n      uVar23 = puVar11[1];\n      uVar22 = *puVar11;\n      pFVar12->fts_parent = sp->fts_cur;\n      pFVar12->fts_pathlen = uVar24 + uVar25;\n      pFVar12->fts_level = iVar29 + 1;\n      *(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4) = uVar23;\n      *(undefined4 *)&pFVar12->fts_statp[0].st_ino = uVar22;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar13 & 4) == 0) {\n        pFVar12->fts_accpath = (char *)(pFVar12 + 1);\n      }\n      else {\n        pFVar12->fts_accpath = pFVar12->fts_path;\n        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);\n        uVar13 = sp->fts_options;\n      }\n      if ((sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||\n         ((uVar13 & 0x400) != 0)) {\n        uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);\n        if ((uVar13 & 0x18) == 0x18) {\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }\n        else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }\n        *(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;\n        *(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;\n      }\n      else {\n        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);\n        pFVar12->fts_info = uVar17;\n      }\n      pFVar12->fts_link = (_ftsent *)0x0;\n      pFVar6 = pFVar12;\n      if (local_6c != (FTSENT *)0x0) {\n        pFVar28->fts_link = pFVar12;\n        pFVar6 = local_6c;\n      }\n      local_6c = pFVar6;\n      pFVar28 = pFVar12;\n      if (nitems == 10000) {\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        nitems = 0x2711;\n      }\n      else {\n        if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }\nLAB_000183bc:\n        nitems = nitems + 1;\n      }\n    }" if (parenthesized_expression "((((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.')) ||\n       ((*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000))))" ( (binary_expression "(((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.')) ||\n       ((*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000)))" (parenthesized_expression "(((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.'))" ( (binary_expression "((sp->fts_options & 0x20U) != 0) || (*(char *)((int)puVar11 + 0x13) != '.')" (parenthesized_expression "((sp->fts_options & 0x20U) != 0)" ( (binary_expression "(sp->fts_options & 0x20U) != 0" (parenthesized_expression "(sp->fts_options & 0x20U)" ( (binary_expression "sp->fts_options & 0x20U" (field_expression "sp->fts_options" identifier -> field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*(char *)((int)puVar11 + 0x13) != '.')" ( (binary_expression "*(char *)((int)puVar11 + 0x13) != '.'" (pointer_expression "*(char *)((int)puVar11 + 0x13)" * (cast_expression "(char *)((int)puVar11 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x13)" ( (binary_expression "(int)puVar11 + 0x13" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) ))) )) || (parenthesized_expression "((*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000)))" ( (parenthesized_expression "(*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000))" ( (binary_expression "*(char *)(puVar11 + 5) != '\0' && ((puVar11[5] & 0xffff0000) != 0x2e000000)" (binary_expression "*(char *)(puVar11 + 5) != '\0'" (pointer_expression "*(char *)(puVar11 + 5)" * (cast_expression "(char *)(puVar11 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 5)" ( (binary_expression "puVar11 + 5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "((puVar11[5] & 0xffff0000) != 0x2e000000)" ( (binary_expression "(puVar11[5] & 0xffff0000) != 0x2e000000" (parenthesized_expression "(puVar11[5] & 0xffff0000)" ( (binary_expression "puVar11[5] & 0xffff0000" (subscript_expression "puVar11[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n      uVar24 = (*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13);\n      pFVar12 = (FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24);\n      if (pFVar12 == (FTSENT *)0x0) {\nLAB_000188cc:\n        iVar29 = *piVar10;\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = iVar29;\n        return (FTSENT *)0x0;\n      }\n      if (uVar20 <= uVar24) {\n        pcVar21 = sp->fts_path;\n        _Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24));\n        iVar15 = CONCAT31(extraout_var,_Var18);\n        if (iVar15 == 0) goto LAB_000188cc;\n        if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {\n          local_58 = sp->fts_path + uVar25;\n        }\n        uVar20 = sp->fts_pathlen - uVar25;\n      }\n      if (uVar24 + uVar25 < uVar25) {\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = 0x4e;\n        return (FTSENT *)0x0;\n      }\n      uVar13 = sp->fts_options;\n      uVar23 = puVar11[1];\n      uVar22 = *puVar11;\n      pFVar12->fts_parent = sp->fts_cur;\n      pFVar12->fts_pathlen = uVar24 + uVar25;\n      pFVar12->fts_level = iVar29 + 1;\n      *(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4) = uVar23;\n      *(undefined4 *)&pFVar12->fts_statp[0].st_ino = uVar22;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar13 & 4) == 0) {\n        pFVar12->fts_accpath = (char *)(pFVar12 + 1);\n      }\n      else {\n        pFVar12->fts_accpath = pFVar12->fts_path;\n        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);\n        uVar13 = sp->fts_options;\n      }\n      if ((sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||\n         ((uVar13 & 0x400) != 0)) {\n        uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);\n        if ((uVar13 & 0x18) == 0x18) {\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }\n        else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }\n        *(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;\n        *(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;\n      }\n      else {\n        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);\n        pFVar12->fts_info = uVar17;\n      }\n      pFVar12->fts_link = (_ftsent *)0x0;\n      pFVar6 = pFVar12;\n      if (local_6c != (FTSENT *)0x0) {\n        pFVar28->fts_link = pFVar12;\n        pFVar6 = local_6c;\n      }\n      local_6c = pFVar6;\n      pFVar28 = pFVar12;\n      if (nitems == 10000) {\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        nitems = 0x2711;\n      }\n      else {\n        if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }\nLAB_000183bc:\n        nitems = nitems + 1;\n      }\n    }" { (expression_statement "uVar24 = (*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13);" (assignment_expression "uVar24 = (*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13)" identifier = (call_expression "(*(code *)PTR_strlen_00032344)((int)puVar11 + 0x13)" (parenthesized_expression "(*(code *)PTR_strlen_00032344)" ( (pointer_expression "*(code *)PTR_strlen_00032344" * (cast_expression "(code *)PTR_strlen_00032344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)puVar11 + 0x13)" ( (binary_expression "(int)puVar11 + 0x13" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pFVar12 = (FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24);" (assignment_expression "pFVar12 = (FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24)" identifier = (cast_expression "(FTSENT *)(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24)" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar7)(sp,(int)puVar11 + 0x13,uVar24)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(sp,(int)puVar11 + 0x13,uVar24)" ( identifier , (binary_expression "(int)puVar11 + 0x13" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier ))))) ;) (if_statement "if (pFVar12 == (FTSENT *)0x0) {\nLAB_000188cc:\n        iVar29 = *piVar10;\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = iVar29;\n        return (FTSENT *)0x0;\n      }" if (parenthesized_expression "(pFVar12 == (FTSENT *)0x0)" ( (binary_expression "pFVar12 == (FTSENT *)0x0" identifier == (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000188cc:\n        iVar29 = *piVar10;\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = iVar29;\n        return (FTSENT *)0x0;\n      }" { (labeled_statement "LAB_000188cc:\n        iVar29 = *piVar10;" statement_identifier : (expression_statement "iVar29 = *piVar10;" (assignment_expression "iVar29 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;)) (expression_statement "(*(code *)PTR_free_000323d4)(pFVar12);" (call_expression "(*(code *)PTR_free_000323d4)(pFVar12)" (parenthesized_expression "(*(code *)PTR_free_000323d4)" ( (pointer_expression "*(code *)PTR_free_000323d4" * (cast_expression "(code *)PTR_free_000323d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar12)" ( identifier ))) ;) (expression_statement "fts_lfree(local_6c);" (call_expression "fts_lfree(local_6c)" identifier (argument_list "(local_6c)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);" (call_expression "(*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp)" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar26->fts_dirp)" ( (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) ))) ;) (expression_statement "uVar20 = sp->fts_options;" (assignment_expression "uVar20 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (expression_statement "pFVar26->fts_dirp = (DIR *)0x0;" (assignment_expression "pFVar26->fts_dirp = (DIR *)0x0" (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar26->fts_info = 7;" (assignment_expression "pFVar26->fts_info = 7" (field_expression "pFVar26->fts_info" identifier -> field_identifier) = number_literal) ;) (expression_statement "sp->fts_options = uVar20 | 0x4000;" (assignment_expression "sp->fts_options = uVar20 | 0x4000" (field_expression "sp->fts_options" identifier -> field_identifier) = (binary_expression "uVar20 | 0x4000" identifier | number_literal)) ;) (expression_statement "*piVar10 = iVar29;" (assignment_expression "*piVar10 = iVar29" (pointer_expression "*piVar10" * identifier) = identifier) ;) (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (uVar20 <= uVar24) {\n        pcVar21 = sp->fts_path;\n        _Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24));\n        iVar15 = CONCAT31(extraout_var,_Var18);\n        if (iVar15 == 0) goto LAB_000188cc;\n        if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {\n          local_58 = sp->fts_path + uVar25;\n        }\n        uVar20 = sp->fts_pathlen - uVar25;\n      }" if (parenthesized_expression "(uVar20 <= uVar24)" ( (binary_expression "uVar20 <= uVar24" identifier <= identifier) )) (compound_statement "{\n        pcVar21 = sp->fts_path;\n        _Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24));\n        iVar15 = CONCAT31(extraout_var,_Var18);\n        if (iVar15 == 0) goto LAB_000188cc;\n        if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {\n          local_58 = sp->fts_path + uVar25;\n        }\n        uVar20 = sp->fts_pathlen - uVar25;\n      }" { (expression_statement "pcVar21 = sp->fts_path;" (assignment_expression "pcVar21 = sp->fts_path" identifier = (field_expression "sp->fts_path" identifier -> field_identifier)) ;) (expression_statement "_Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24));" (assignment_expression "_Var18 = fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24))" identifier = (call_expression "fts_palloc((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24))" identifier (argument_list "((FTS *)&sp->fts_path,(size_t)&sp->fts_pathlen,\n                            (FTS *)(local_50 + 2 + uVar24))" ( (cast_expression "(FTS *)&sp->fts_path" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sp->fts_path" & (field_expression "sp->fts_path" identifier -> field_identifier))) , (cast_expression "(size_t)&sp->fts_pathlen" ( (type_descriptor "size_t" primitive_type) ) (pointer_expression "&sp->fts_pathlen" & (field_expression "sp->fts_pathlen" identifier -> field_identifier))) , (cast_expression "(FTS *)(local_50 + 2 + uVar24)" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 2 + uVar24)" ( (binary_expression "local_50 + 2 + uVar24" (binary_expression "local_50 + 2" identifier + number_literal) + identifier) ))) )))) ;) (expression_statement "iVar15 = CONCAT31(extraout_var,_Var18);" (assignment_expression "iVar15 = CONCAT31(extraout_var,_Var18)" identifier = (call_expression "CONCAT31(extraout_var,_Var18)" identifier (argument_list "(extraout_var,_Var18)" ( identifier , identifier )))) ;) (if_statement "if (iVar15 == 0) goto LAB_000188cc;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000188cc;" goto statement_identifier ;)) (if_statement "if ((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)) {\n          local_58 = sp->fts_path + uVar25;\n        }" if (parenthesized_expression "((sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0))" ( (binary_expression "(sp->fts_path != pcVar21) && (local_54 = iVar15, (sp->fts_options & 4U) != 0)" (parenthesized_expression "(sp->fts_path != pcVar21)" ( (binary_expression "sp->fts_path != pcVar21" (field_expression "sp->fts_path" identifier -> field_identifier) != identifier) )) && (parenthesized_expression "(local_54 = iVar15, (sp->fts_options & 4U) != 0)" ( (comma_expression "local_54 = iVar15, (sp->fts_options & 4U) != 0" (assignment_expression "local_54 = iVar15" identifier = identifier) , (binary_expression "(sp->fts_options & 4U) != 0" (parenthesized_expression "(sp->fts_options & 4U)" ( (binary_expression "sp->fts_options & 4U" (field_expression "sp->fts_options" identifier -> field_identifier) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          local_58 = sp->fts_path + uVar25;\n        }" { (expression_statement "local_58 = sp->fts_path + uVar25;" (assignment_expression "local_58 = sp->fts_path + uVar25" identifier = (binary_expression "sp->fts_path + uVar25" (field_expression "sp->fts_path" identifier -> field_identifier) + identifier)) ;) })) (expression_statement "uVar20 = sp->fts_pathlen - uVar25;" (assignment_expression "uVar20 = sp->fts_pathlen - uVar25" identifier = (binary_expression "sp->fts_pathlen - uVar25" (field_expression "sp->fts_pathlen" identifier -> field_identifier) - identifier)) ;) })) (if_statement "if (uVar24 + uVar25 < uVar25) {\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = 0x4e;\n        return (FTSENT *)0x0;\n      }" if (parenthesized_expression "(uVar24 + uVar25 < uVar25)" ( (binary_expression "uVar24 + uVar25 < uVar25" (binary_expression "uVar24 + uVar25" identifier + identifier) < identifier) )) (compound_statement "{\n        (*(code *)PTR_free_000323d4)(pFVar12);\n        fts_lfree(local_6c);\n        (*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);\n        uVar20 = sp->fts_options;\n        pFVar26->fts_dirp = (DIR *)0x0;\n        pFVar26->fts_info = 7;\n        sp->fts_options = uVar20 | 0x4000;\n        *piVar10 = 0x4e;\n        return (FTSENT *)0x0;\n      }" { (expression_statement "(*(code *)PTR_free_000323d4)(pFVar12);" (call_expression "(*(code *)PTR_free_000323d4)(pFVar12)" (parenthesized_expression "(*(code *)PTR_free_000323d4)" ( (pointer_expression "*(code *)PTR_free_000323d4" * (cast_expression "(code *)PTR_free_000323d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar12)" ( identifier ))) ;) (expression_statement "fts_lfree(local_6c);" (call_expression "fts_lfree(local_6c)" identifier (argument_list "(local_6c)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp);" (call_expression "(*(code *)PTR_closedir_000322ac)(pFVar26->fts_dirp)" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar26->fts_dirp)" ( (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) ))) ;) (expression_statement "uVar20 = sp->fts_options;" (assignment_expression "uVar20 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (expression_statement "pFVar26->fts_dirp = (DIR *)0x0;" (assignment_expression "pFVar26->fts_dirp = (DIR *)0x0" (field_expression "pFVar26->fts_dirp" identifier -> field_identifier) = (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar26->fts_info = 7;" (assignment_expression "pFVar26->fts_info = 7" (field_expression "pFVar26->fts_info" identifier -> field_identifier) = number_literal) ;) (expression_statement "sp->fts_options = uVar20 | 0x4000;" (assignment_expression "sp->fts_options = uVar20 | 0x4000" (field_expression "sp->fts_options" identifier -> field_identifier) = (binary_expression "uVar20 | 0x4000" identifier | number_literal)) ;) (expression_statement "*piVar10 = 0x4e;" (assignment_expression "*piVar10 = 0x4e" (pointer_expression "*piVar10" * identifier) = number_literal) ;) (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uVar13 = sp->fts_options;" (assignment_expression "uVar13 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (expression_statement "uVar23 = puVar11[1];" (assignment_expression "uVar23 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = *puVar11;" (assignment_expression "uVar22 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "pFVar12->fts_parent = sp->fts_cur;" (assignment_expression "pFVar12->fts_parent = sp->fts_cur" (field_expression "pFVar12->fts_parent" identifier -> field_identifier) = (field_expression "sp->fts_cur" identifier -> field_identifier)) ;) (expression_statement "pFVar12->fts_pathlen = uVar24 + uVar25;" (assignment_expression "pFVar12->fts_pathlen = uVar24 + uVar25" (field_expression "pFVar12->fts_pathlen" identifier -> field_identifier) = (binary_expression "uVar24 + uVar25" identifier + identifier)) ;) (expression_statement "pFVar12->fts_level = iVar29 + 1;" (assignment_expression "pFVar12->fts_level = iVar29 + 1" (field_expression "pFVar12->fts_level" identifier -> field_identifier) = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4) = uVar23;" (assignment_expression "*(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4) = uVar23" (pointer_expression "*(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4)" * (cast_expression "(undefined4 *)((int)&pFVar12->fts_statp[0].st_ino + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar12->fts_statp[0].st_ino + 4)" ( (binary_expression "(int)&pFVar12->fts_statp[0].st_ino + 4" (cast_expression "(int)&pFVar12->fts_statp[0].st_ino" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar12->fts_statp[0].st_ino" & (field_expression "pFVar12->fts_statp[0].st_ino" (subscript_expression "pFVar12->fts_statp[0]" (field_expression "pFVar12->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&pFVar12->fts_statp[0].st_ino = uVar22;" (assignment_expression "*(undefined4 *)&pFVar12->fts_statp[0].st_ino = uVar22" (pointer_expression "*(undefined4 *)&pFVar12->fts_statp[0].st_ino" * (cast_expression "(undefined4 *)&pFVar12->fts_statp[0].st_ino" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar12->fts_statp[0].st_ino" & (field_expression "pFVar12->fts_statp[0].st_ino" (subscript_expression "pFVar12->fts_statp[0]" (field_expression "pFVar12->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) = identifier) ;) (expression_statement "puVar4 = PTR_memmove_000323d8;" (assignment_expression "puVar4 = PTR_memmove_000323d8" identifier = identifier) ;) (if_statement "if ((uVar13 & 4) == 0) {\n        pFVar12->fts_accpath = (char *)(pFVar12 + 1);\n      }\n      else {\n        pFVar12->fts_accpath = pFVar12->fts_path;\n        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);\n        uVar13 = sp->fts_options;\n      }" if (parenthesized_expression "((uVar13 & 4) == 0)" ( (binary_expression "(uVar13 & 4) == 0" (parenthesized_expression "(uVar13 & 4)" ( (binary_expression "uVar13 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pFVar12->fts_accpath = (char *)(pFVar12 + 1);\n      }" { (expression_statement "pFVar12->fts_accpath = (char *)(pFVar12 + 1);" (assignment_expression "pFVar12->fts_accpath = (char *)(pFVar12 + 1)" (field_expression "pFVar12->fts_accpath" identifier -> field_identifier) = (cast_expression "(char *)(pFVar12 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pFVar12 + 1)" ( (binary_expression "pFVar12 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n        pFVar12->fts_accpath = pFVar12->fts_path;\n        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);\n        uVar13 = sp->fts_options;\n      }" else (compound_statement "{\n        pFVar12->fts_accpath = pFVar12->fts_path;\n        (*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);\n        uVar13 = sp->fts_options;\n      }" { (expression_statement "pFVar12->fts_accpath = pFVar12->fts_path;" (assignment_expression "pFVar12->fts_accpath = pFVar12->fts_path" (field_expression "pFVar12->fts_accpath" identifier -> field_identifier) = (field_expression "pFVar12->fts_path" identifier -> field_identifier)) ;) (expression_statement "(*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1);" (call_expression "(*(code *)puVar4)(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58,pFVar12 + 1,pFVar12->fts_namelen + 1)" ( identifier , (binary_expression "pFVar12 + 1" identifier + number_literal) , (binary_expression "pFVar12->fts_namelen + 1" (field_expression "pFVar12->fts_namelen" identifier -> field_identifier) + number_literal) ))) ;) (expression_statement "uVar13 = sp->fts_options;" (assignment_expression "uVar13 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) }))) (if_statement "if ((sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||\n         ((uVar13 & 0x400) != 0)) {\n        uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);\n        if ((uVar13 & 0x18) == 0x18) {\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }\n        else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }\n        *(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;\n        *(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;\n      }\n      else {\n        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);\n        pFVar12->fts_info = uVar17;\n      }" if (parenthesized_expression "((sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||\n         ((uVar13 & 0x400) != 0))" ( (binary_expression "(sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) ||\n         ((uVar13 & 0x400) != 0)" (parenthesized_expression "(sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0)" ( (binary_expression "sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" (field_expression "sp->fts_compar" identifier -> field_identifier) == (cast_expression "(_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" ( (type_descriptor "_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((uVar13 & 0x400) != 0)" ( (binary_expression "(uVar13 & 0x400) != 0" (parenthesized_expression "(uVar13 & 0x400)" ( (binary_expression "uVar13 & 0x400" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);\n        if ((uVar13 & 0x18) == 0x18) {\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }\n        else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }\n        *(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;\n        *(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;\n      }" { (expression_statement "uVar24 = (uint)*(byte *)((int)puVar11 + 0x12);" (assignment_expression "uVar24 = (uint)*(byte *)((int)puVar11 + 0x12)" identifier = (binary_expression "(uint)*(byte *)((int)puVar11 + 0x12)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar11 + 0x12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x12)" ( (binary_expression "(int)puVar11 + 0x12" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((uVar13 & 0x18) == 0x18) {\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }\n        else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }" if (parenthesized_expression "((uVar13 & 0x18) == 0x18)" ( (binary_expression "(uVar13 & 0x18) == 0x18" (parenthesized_expression "(uVar13 & 0x18)" ( (binary_expression "uVar13 & 0x18" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }\n        }" { (if_statement "if (uVar24 == 0) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }" if (parenthesized_expression "(uVar24 == 0)" ( (binary_expression "uVar24 == 0" identifier == number_literal) )) (compound_statement "{\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018464;\n          }" { (expression_statement "pFVar12->fts_info = 0xb;" (assignment_expression "pFVar12->fts_info = 0xb" (field_expression "pFVar12->fts_info" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_00018464;" goto statement_identifier ;) })) (if_statement "if (uVar24 == 4) {\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }" if (parenthesized_expression "(uVar24 == 4)" ( (binary_expression "uVar24 == 4" identifier == number_literal) )) (compound_statement "{\n            pFVar12->fts_info = 0xb;\n            goto LAB_00018368;\n          }" { (expression_statement "pFVar12->fts_info = 0xb;" (assignment_expression "pFVar12->fts_info = 0xb" (field_expression "pFVar12->fts_info" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_00018368;" goto statement_identifier ;) })) (expression_statement "pFVar12->fts_info = 0xb;" (assignment_expression "pFVar12->fts_info = 0xb" (field_expression "pFVar12->fts_info" identifier -> field_identifier) = number_literal) ;) (if_statement "if (uVar24 - 1 < 0xc) {\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }" if (parenthesized_expression "(uVar24 - 1 < 0xc)" ( (binary_expression "uVar24 - 1 < 0xc" (binary_expression "uVar24 - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\n            uVar22 = 1;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }" { (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;) (expression_statement "pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);" (assignment_expression "pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0)" (field_expression "pFVar12->fts_statp[0].st_mode" (subscript_expression "pFVar12->fts_statp[0]" (field_expression "pFVar12->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier) = (pointer_expression "*(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0)" * (cast_expression "(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0)" ( (type_descriptor "__mode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (uVar24 - 1) * 4 + 0x13a0)" ( (binary_expression "puVar3 + (uVar24 - 1) * 4 + 0x13a0" (binary_expression "puVar3 + (uVar24 - 1) * 4" identifier + (binary_expression "(uVar24 - 1) * 4" (parenthesized_expression "(uVar24 - 1)" ( (binary_expression "uVar24 - 1" identifier - number_literal) )) * number_literal)) + number_literal) ))))) ;) }) (else_clause "else {\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }" else (compound_statement "{\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 1;\n          }" { (expression_statement "pFVar12->fts_statp[0].st_mode = 0;" (assignment_expression "pFVar12->fts_statp[0].st_mode = 0" (field_expression "pFVar12->fts_statp[0].st_mode" (subscript_expression "pFVar12->fts_statp[0]" (field_expression "pFVar12->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }" else (compound_statement "{\n          pFVar12->fts_info = 0xb;\n          if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }\n        }" { (expression_statement "pFVar12->fts_info = 0xb;" (assignment_expression "pFVar12->fts_info = 0xb" (field_expression "pFVar12->fts_info" identifier -> field_identifier) = number_literal) ;) (if_statement "if (uVar24 - 1 < 0xc) {\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }" if (parenthesized_expression "(uVar24 - 1 < 0xc)" ( (binary_expression "uVar24 - 1 < 0xc" (binary_expression "uVar24 - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\nLAB_00018368:\n            uVar22 = 2;\n            pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);\n          }" { (labeled_statement "LAB_00018368:\n            uVar22 = 2;" statement_identifier : (expression_statement "uVar22 = 2;" (assignment_expression "uVar22 = 2" identifier = number_literal) ;)) (expression_statement "pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0);" (assignment_expression "pFVar12->fts_statp[0].st_mode = *(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0)" (field_expression "pFVar12->fts_statp[0].st_mode" (subscript_expression "pFVar12->fts_statp[0]" (field_expression "pFVar12->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier) = (pointer_expression "*(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0)" * (cast_expression "(__mode_t *)(puVar3 + (uVar24 - 1) * 4 + 0x13a0)" ( (type_descriptor "__mode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (uVar24 - 1) * 4 + 0x13a0)" ( (binary_expression "puVar3 + (uVar24 - 1) * 4 + 0x13a0" (binary_expression "puVar3 + (uVar24 - 1) * 4" identifier + (binary_expression "(uVar24 - 1) * 4" (parenthesized_expression "(uVar24 - 1)" ( (binary_expression "uVar24 - 1" identifier - number_literal) )) * number_literal)) + number_literal) ))))) ;) }) (else_clause "else {\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }" else (compound_statement "{\nLAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;\n            uVar22 = 2;\n          }" { (labeled_statement "LAB_00018464:\n            pFVar12->fts_statp[0].st_mode = 0;" statement_identifier : (expression_statement "pFVar12->fts_statp[0].st_mode = 0;" (assignment_expression "pFVar12->fts_statp[0].st_mode = 0" (field_expression "pFVar12->fts_statp[0].st_mode" (subscript_expression "pFVar12->fts_statp[0]" (field_expression "pFVar12->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier) = number_literal) ;)) (expression_statement "uVar22 = 2;" (assignment_expression "uVar22 = 2" identifier = number_literal) ;) }))) }))) (expression_statement "*(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22;" (assignment_expression "*(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4) = uVar22" (pointer_expression "*(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4)" * (cast_expression "(undefined4 *)((int)&pFVar12->fts_statp[0].st_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar12->fts_statp[0].st_size + 4)" ( (binary_expression "(int)&pFVar12->fts_statp[0].st_size + 4" (cast_expression "(int)&pFVar12->fts_statp[0].st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar12->fts_statp[0].st_size" & (field_expression "pFVar12->fts_statp[0].st_size" (subscript_expression "pFVar12->fts_statp[0]" (field_expression "pFVar12->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&pFVar12->fts_statp[0].st_size = 0;" (assignment_expression "*(undefined4 *)&pFVar12->fts_statp[0].st_size = 0" (pointer_expression "*(undefined4 *)&pFVar12->fts_statp[0].st_size" * (cast_expression "(undefined4 *)&pFVar12->fts_statp[0].st_size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar12->fts_statp[0].st_size" & (field_expression "pFVar12->fts_statp[0].st_size" (subscript_expression "pFVar12->fts_statp[0]" (field_expression "pFVar12->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) = number_literal) ;) }) (else_clause "else {\n        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);\n        pFVar12->fts_info = uVar17;\n      }" else (compound_statement "{\n        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);\n        pFVar12->fts_info = uVar17;\n      }" { (expression_statement "uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0);" (assignment_expression "uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0)" identifier = (call_expression "(*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(sp->fts_cwd_fd,&sp->fts_options,pFVar12,0)" ( (field_expression "sp->fts_cwd_fd" identifier -> field_identifier) , (pointer_expression "&sp->fts_options" & (field_expression "sp->fts_options" identifier -> field_identifier)) , identifier , number_literal )))) ;) (expression_statement "pFVar12->fts_info = uVar17;" (assignment_expression "pFVar12->fts_info = uVar17" (field_expression "pFVar12->fts_info" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pFVar12->fts_link = (_ftsent *)0x0;" (assignment_expression "pFVar12->fts_link = (_ftsent *)0x0" (field_expression "pFVar12->fts_link" identifier -> field_identifier) = (cast_expression "(_ftsent *)0x0" ( (type_descriptor "_ftsent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar6 = pFVar12;" (assignment_expression "pFVar6 = pFVar12" identifier = identifier) ;) (if_statement "if (local_6c != (FTSENT *)0x0) {\n        pFVar28->fts_link = pFVar12;\n        pFVar6 = local_6c;\n      }" if (parenthesized_expression "(local_6c != (FTSENT *)0x0)" ( (binary_expression "local_6c != (FTSENT *)0x0" identifier != (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pFVar28->fts_link = pFVar12;\n        pFVar6 = local_6c;\n      }" { (expression_statement "pFVar28->fts_link = pFVar12;" (assignment_expression "pFVar28->fts_link = pFVar12" (field_expression "pFVar28->fts_link" identifier -> field_identifier) = identifier) ;) (expression_statement "pFVar6 = local_6c;" (assignment_expression "pFVar6 = local_6c" identifier = identifier) ;) })) (expression_statement "local_6c = pFVar6;" (assignment_expression "local_6c = pFVar6" identifier = identifier) ;) (expression_statement "pFVar28 = pFVar12;" (assignment_expression "pFVar28 = pFVar12" identifier = identifier) ;) (if_statement "if (nitems == 10000) {\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        nitems = 0x2711;\n      }\n      else {\n        if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }\nLAB_000183bc:\n        nitems = nitems + 1;\n      }" if (parenthesized_expression "(nitems == 10000)" ( (binary_expression "nitems == 10000" identifier == number_literal) )) (compound_statement "{\n        if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        nitems = 0x2711;\n      }" { (if_statement "if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }" if (parenthesized_expression "(sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0)" ( (binary_expression "sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" (field_expression "sp->fts_compar" identifier -> field_identifier) == (cast_expression "(_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" ( (type_descriptor "_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar15 = (*pcVar8)(pFVar26,local_40);\n          if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }" { (expression_statement "iVar15 = (*pcVar8)(pFVar26,local_40);" (assignment_expression "iVar15 = (*pcVar8)(pFVar26,local_40)" identifier = (call_expression "(*pcVar8)(pFVar26,local_40)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(pFVar26,local_40)" ( identifier , identifier )))) ;) (if_statement "if (((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }" if (parenthesized_expression "(((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be))" ( (binary_expression "((iVar15 == 0x6969) || (iVar15 == 0x1021994)) || (iVar15 == -0xacb2be)" (parenthesized_expression "((iVar15 == 0x6969) || (iVar15 == 0x1021994))" ( (binary_expression "(iVar15 == 0x6969) || (iVar15 == 0x1021994)" (parenthesized_expression "(iVar15 == 0x6969)" ( (binary_expression "iVar15 == 0x6969" identifier == number_literal) )) || (parenthesized_expression "(iVar15 == 0x1021994)" ( (binary_expression "iVar15 == 0x1021994" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar15 == -0xacb2be)" ( (binary_expression "iVar15 == -0xacb2be" identifier == number_literal) ))) )) (compound_statement "{\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (local_5c < 0x2712) goto LAB_00018814;" if (parenthesized_expression "(local_5c < 0x2712)" ( (binary_expression "local_5c < 0x2712" identifier < number_literal) )) (goto_statement "goto LAB_00018814;" goto statement_identifier ;)) (goto_statement "goto LAB_000183bc;" goto statement_identifier ;) })) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) (expression_statement "nitems = 0x2711;" (assignment_expression "nitems = 0x2711" identifier = number_literal) ;) }) (else_clause "else {\n        if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }\nLAB_000183bc:\n        nitems = nitems + 1;\n      }" else (compound_statement "{\n        if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }\nLAB_000183bc:\n        nitems = nitems + 1;\n      }" { (if_statement "if (local_5c <= nitems + 1) {\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }" if (parenthesized_expression "(local_5c <= nitems + 1)" ( (binary_expression "local_5c <= nitems + 1" identifier <= (binary_expression "nitems + 1" identifier + number_literal)) )) (compound_statement "{\nLAB_00018814:\n          nitems = nitems + 1;\n          break;\n        }" { (labeled_statement "LAB_00018814:\n          nitems = nitems + 1;" statement_identifier : (expression_statement "nitems = nitems + 1;" (assignment_expression "nitems = nitems + 1" identifier = (binary_expression "nitems + 1" identifier + number_literal)) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_000183bc:\n        nitems = nitems + 1;" statement_identifier : (expression_statement "nitems = nitems + 1;" (assignment_expression "nitems = nitems + 1" identifier = (binary_expression "nitems + 1" identifier + number_literal)) ;)) }))) })) (expression_statement "pDVar27 = pFVar26->fts_dirp;" (assignment_expression "pDVar27 = pFVar26->fts_dirp" identifier = (field_expression "pFVar26->fts_dirp" identifier -> field_identifier)) ;) })) (if_statement "if (local_54 != 0) {\n    pcVar21 = sp->fts_path;\n    for (p_Var14 = sp->fts_child; p_Var5 = local_6c, p_Var14 != (_ftsent *)0x0;\n        p_Var14 = p_Var14->fts_link) {\n      if ((_ftsent *)p_Var14->fts_accpath != p_Var14 + 1) {\n        p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);\n      }\n      p_Var14->fts_path = pcVar21;\n    }\n    while (pFVar28 = p_Var5, -1 < pFVar28->fts_level) {\n      if ((FTSENT *)pFVar28->fts_accpath != pFVar28 + 1) {\n        pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);\n      }\n      pFVar28->fts_path = pcVar21;\n      p_Var5 = pFVar28->fts_link;\n      if (pFVar28->fts_link == (_ftsent *)0x0) {\n        p_Var5 = pFVar28->fts_parent;\n      }\n    }\n  }" if (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar21 = sp->fts_path;\n    for (p_Var14 = sp->fts_child; p_Var5 = local_6c, p_Var14 != (_ftsent *)0x0;\n        p_Var14 = p_Var14->fts_link) {\n      if ((_ftsent *)p_Var14->fts_accpath != p_Var14 + 1) {\n        p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);\n      }\n      p_Var14->fts_path = pcVar21;\n    }\n    while (pFVar28 = p_Var5, -1 < pFVar28->fts_level) {\n      if ((FTSENT *)pFVar28->fts_accpath != pFVar28 + 1) {\n        pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);\n      }\n      pFVar28->fts_path = pcVar21;\n      p_Var5 = pFVar28->fts_link;\n      if (pFVar28->fts_link == (_ftsent *)0x0) {\n        p_Var5 = pFVar28->fts_parent;\n      }\n    }\n  }" { (expression_statement "pcVar21 = sp->fts_path;" (assignment_expression "pcVar21 = sp->fts_path" identifier = (field_expression "sp->fts_path" identifier -> field_identifier)) ;) (for_statement "for (p_Var14 = sp->fts_child; p_Var5 = local_6c, p_Var14 != (_ftsent *)0x0;\n        p_Var14 = p_Var14->fts_link) {\n      if ((_ftsent *)p_Var14->fts_accpath != p_Var14 + 1) {\n        p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);\n      }\n      p_Var14->fts_path = pcVar21;\n    }" for ( (assignment_expression "p_Var14 = sp->fts_child" identifier = (field_expression "sp->fts_child" identifier -> field_identifier)) ; (comma_expression "p_Var5 = local_6c, p_Var14 != (_ftsent *)0x0" (assignment_expression "p_Var5 = local_6c" identifier = identifier) , (binary_expression "p_Var14 != (_ftsent *)0x0" identifier != (cast_expression "(_ftsent *)0x0" ( (type_descriptor "_ftsent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "p_Var14 = p_Var14->fts_link" identifier = (field_expression "p_Var14->fts_link" identifier -> field_identifier)) ) (compound_statement "{\n      if ((_ftsent *)p_Var14->fts_accpath != p_Var14 + 1) {\n        p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);\n      }\n      p_Var14->fts_path = pcVar21;\n    }" { (if_statement "if ((_ftsent *)p_Var14->fts_accpath != p_Var14 + 1) {\n        p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);\n      }" if (parenthesized_expression "((_ftsent *)p_Var14->fts_accpath != p_Var14 + 1)" ( (binary_expression "(_ftsent *)p_Var14->fts_accpath != p_Var14 + 1" (cast_expression "(_ftsent *)p_Var14->fts_accpath" ( (type_descriptor "_ftsent *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_Var14->fts_accpath" identifier -> field_identifier)) != (binary_expression "p_Var14 + 1" identifier + number_literal)) )) (compound_statement "{\n        p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);\n      }" { (expression_statement "p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path);" (assignment_expression "p_Var14->fts_accpath = pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path)" (field_expression "p_Var14->fts_accpath" identifier -> field_identifier) = (binary_expression "pcVar21 + ((int)p_Var14->fts_accpath - (int)p_Var14->fts_path)" identifier + (parenthesized_expression "((int)p_Var14->fts_accpath - (int)p_Var14->fts_path)" ( (binary_expression "(int)p_Var14->fts_accpath - (int)p_Var14->fts_path" (cast_expression "(int)p_Var14->fts_accpath" ( (type_descriptor "int" primitive_type) ) (field_expression "p_Var14->fts_accpath" identifier -> field_identifier)) - (cast_expression "(int)p_Var14->fts_path" ( (type_descriptor "int" primitive_type) ) (field_expression "p_Var14->fts_path" identifier -> field_identifier))) )))) ;) })) (expression_statement "p_Var14->fts_path = pcVar21;" (assignment_expression "p_Var14->fts_path = pcVar21" (field_expression "p_Var14->fts_path" identifier -> field_identifier) = identifier) ;) })) (while_statement "while (pFVar28 = p_Var5, -1 < pFVar28->fts_level) {\n      if ((FTSENT *)pFVar28->fts_accpath != pFVar28 + 1) {\n        pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);\n      }\n      pFVar28->fts_path = pcVar21;\n      p_Var5 = pFVar28->fts_link;\n      if (pFVar28->fts_link == (_ftsent *)0x0) {\n        p_Var5 = pFVar28->fts_parent;\n      }\n    }" while (parenthesized_expression "(pFVar28 = p_Var5, -1 < pFVar28->fts_level)" ( (comma_expression "pFVar28 = p_Var5, -1 < pFVar28->fts_level" (assignment_expression "pFVar28 = p_Var5" identifier = identifier) , (binary_expression "-1 < pFVar28->fts_level" number_literal < (field_expression "pFVar28->fts_level" identifier -> field_identifier))) )) (compound_statement "{\n      if ((FTSENT *)pFVar28->fts_accpath != pFVar28 + 1) {\n        pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);\n      }\n      pFVar28->fts_path = pcVar21;\n      p_Var5 = pFVar28->fts_link;\n      if (pFVar28->fts_link == (_ftsent *)0x0) {\n        p_Var5 = pFVar28->fts_parent;\n      }\n    }" { (if_statement "if ((FTSENT *)pFVar28->fts_accpath != pFVar28 + 1) {\n        pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);\n      }" if (parenthesized_expression "((FTSENT *)pFVar28->fts_accpath != pFVar28 + 1)" ( (binary_expression "(FTSENT *)pFVar28->fts_accpath != pFVar28 + 1" (cast_expression "(FTSENT *)pFVar28->fts_accpath" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pFVar28->fts_accpath" identifier -> field_identifier)) != (binary_expression "pFVar28 + 1" identifier + number_literal)) )) (compound_statement "{\n        pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);\n      }" { (expression_statement "pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path);" (assignment_expression "pFVar28->fts_accpath = pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path)" (field_expression "pFVar28->fts_accpath" identifier -> field_identifier) = (binary_expression "pcVar21 + ((int)pFVar28->fts_accpath - (int)pFVar28->fts_path)" identifier + (parenthesized_expression "((int)pFVar28->fts_accpath - (int)pFVar28->fts_path)" ( (binary_expression "(int)pFVar28->fts_accpath - (int)pFVar28->fts_path" (cast_expression "(int)pFVar28->fts_accpath" ( (type_descriptor "int" primitive_type) ) (field_expression "pFVar28->fts_accpath" identifier -> field_identifier)) - (cast_expression "(int)pFVar28->fts_path" ( (type_descriptor "int" primitive_type) ) (field_expression "pFVar28->fts_path" identifier -> field_identifier))) )))) ;) })) (expression_statement "pFVar28->fts_path = pcVar21;" (assignment_expression "pFVar28->fts_path = pcVar21" (field_expression "pFVar28->fts_path" identifier -> field_identifier) = identifier) ;) (expression_statement "p_Var5 = pFVar28->fts_link;" (assignment_expression "p_Var5 = pFVar28->fts_link" identifier = (field_expression "pFVar28->fts_link" identifier -> field_identifier)) ;) (if_statement "if (pFVar28->fts_link == (_ftsent *)0x0) {\n        p_Var5 = pFVar28->fts_parent;\n      }" if (parenthesized_expression "(pFVar28->fts_link == (_ftsent *)0x0)" ( (binary_expression "pFVar28->fts_link == (_ftsent *)0x0" (field_expression "pFVar28->fts_link" identifier -> field_identifier) == (cast_expression "(_ftsent *)0x0" ( (type_descriptor "_ftsent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        p_Var5 = pFVar28->fts_parent;\n      }" { (expression_statement "p_Var5 = pFVar28->fts_parent;" (assignment_expression "p_Var5 = pFVar28->fts_parent" identifier = (field_expression "pFVar28->fts_parent" identifier -> field_identifier)) ;) })) })) })) (if_statement "if ((sp->fts_options & 4U) != 0) {\n    if ((sp->fts_pathlen == uVar25) || (nitems == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = '\0';\n  }" if (parenthesized_expression "((sp->fts_options & 4U) != 0)" ( (binary_expression "(sp->fts_options & 4U) != 0" (parenthesized_expression "(sp->fts_options & 4U)" ( (binary_expression "sp->fts_options & 4U" (field_expression "sp->fts_options" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((sp->fts_pathlen == uVar25) || (nitems == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = '\0';\n  }" { (if_statement "if ((sp->fts_pathlen == uVar25) || (nitems == 0)) {\n      local_58 = local_58 + -1;\n    }" if (parenthesized_expression "((sp->fts_pathlen == uVar25) || (nitems == 0))" ( (binary_expression "(sp->fts_pathlen == uVar25) || (nitems == 0)" (parenthesized_expression "(sp->fts_pathlen == uVar25)" ( (binary_expression "sp->fts_pathlen == uVar25" (field_expression "sp->fts_pathlen" identifier -> field_identifier) == identifier) )) || (parenthesized_expression "(nitems == 0)" ( (binary_expression "nitems == 0" identifier == number_literal) ))) )) (compound_statement "{\n      local_58 = local_58 + -1;\n    }" { (expression_statement "local_58 = local_58 + -1;" (assignment_expression "local_58 = local_58 + -1" identifier = (binary_expression "local_58 + -1" identifier + number_literal)) ;) })) (expression_statement "*local_58 = '\0';" (assignment_expression "*local_58 = '\0'" (pointer_expression "*local_58" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if ((pDVar19 == (DIR *)0x0) && (bVar1)) {\n    if ((type != 1) && (nitems != 0)) goto LAB_00018870;\n    if (pFVar26->fts_level == 0) {\n      iVar29 = restore_initial_cwd(sp);\n    }\n    else {\n      iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar29 != 0) {\n      uVar20 = sp->fts_options;\n      pFVar26->fts_info = 7;\n      sp->fts_options = uVar20 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }" if (parenthesized_expression "((pDVar19 == (DIR *)0x0) && (bVar1))" ( (binary_expression "(pDVar19 == (DIR *)0x0) && (bVar1)" (parenthesized_expression "(pDVar19 == (DIR *)0x0)" ( (binary_expression "pDVar19 == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar1)" ( identifier ))) )) (compound_statement "{\n    if ((type != 1) && (nitems != 0)) goto LAB_00018870;\n    if (pFVar26->fts_level == 0) {\n      iVar29 = restore_initial_cwd(sp);\n    }\n    else {\n      iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar29 != 0) {\n      uVar20 = sp->fts_options;\n      pFVar26->fts_info = 7;\n      sp->fts_options = uVar20 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }" { (if_statement "if ((type != 1) && (nitems != 0)) goto LAB_00018870;" if (parenthesized_expression "((type != 1) && (nitems != 0))" ( (binary_expression "(type != 1) && (nitems != 0)" (parenthesized_expression "(type != 1)" ( (binary_expression "type != 1" identifier != number_literal) )) && (parenthesized_expression "(nitems != 0)" ( (binary_expression "nitems != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00018870;" goto statement_identifier ;)) (if_statement "if (pFVar26->fts_level == 0) {\n      iVar29 = restore_initial_cwd(sp);\n    }\n    else {\n      iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" if (parenthesized_expression "(pFVar26->fts_level == 0)" ( (binary_expression "pFVar26->fts_level == 0" (field_expression "pFVar26->fts_level" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      iVar29 = restore_initial_cwd(sp);\n    }" { (expression_statement "iVar29 = restore_initial_cwd(sp);" (assignment_expression "iVar29 = restore_initial_cwd(sp)" identifier = (call_expression "restore_initial_cwd(sp)" identifier (argument_list "(sp)" ( identifier )))) ;) }) (else_clause "else {\n      iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" else (compound_statement "{\n      iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" { (expression_statement "iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);" (assignment_expression "iVar29 = fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" identifier = (call_expression "fts_safe_changedir(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" identifier (argument_list "(sp,pFVar26->fts_parent,-1,\n                                  PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" ( identifier , (field_expression "pFVar26->fts_parent" identifier -> field_identifier) , number_literal , (binary_expression "PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390" identifier + number_literal) )))) ;) }))) (if_statement "if (iVar29 != 0) {\n      uVar20 = sp->fts_options;\n      pFVar26->fts_info = 7;\n      sp->fts_options = uVar20 | 0x4000;\n      goto LAB_00018c18;\n    }" if (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar20 = sp->fts_options;\n      pFVar26->fts_info = 7;\n      sp->fts_options = uVar20 | 0x4000;\n      goto LAB_00018c18;\n    }" { (expression_statement "uVar20 = sp->fts_options;" (assignment_expression "uVar20 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (expression_statement "pFVar26->fts_info = 7;" (assignment_expression "pFVar26->fts_info = 7" (field_expression "pFVar26->fts_info" identifier -> field_identifier) = number_literal) ;) (expression_statement "sp->fts_options = uVar20 | 0x4000;" (assignment_expression "sp->fts_options = uVar20 | 0x4000" (field_expression "sp->fts_options" identifier -> field_identifier) = (binary_expression "uVar20 | 0x4000" identifier | number_literal)) ;) (goto_statement "goto LAB_00018c18;" goto statement_identifier ;) })) })) (if_statement "if (nitems == 0) {\n    if (((type == 3) && (pFVar26->fts_info != 4)) && (pFVar26->fts_info != 7)) {\n      pFVar26->fts_info = 6;\n    }\nLAB_00018c18:\n    fts_lfree(local_6c);\n    return (FTSENT *)0x0;\n  }" if (parenthesized_expression "(nitems == 0)" ( (binary_expression "nitems == 0" identifier == number_literal) )) (compound_statement "{\n    if (((type == 3) && (pFVar26->fts_info != 4)) && (pFVar26->fts_info != 7)) {\n      pFVar26->fts_info = 6;\n    }\nLAB_00018c18:\n    fts_lfree(local_6c);\n    return (FTSENT *)0x0;\n  }" { (if_statement "if (((type == 3) && (pFVar26->fts_info != 4)) && (pFVar26->fts_info != 7)) {\n      pFVar26->fts_info = 6;\n    }" if (parenthesized_expression "(((type == 3) && (pFVar26->fts_info != 4)) && (pFVar26->fts_info != 7))" ( (binary_expression "((type == 3) && (pFVar26->fts_info != 4)) && (pFVar26->fts_info != 7)" (parenthesized_expression "((type == 3) && (pFVar26->fts_info != 4))" ( (binary_expression "(type == 3) && (pFVar26->fts_info != 4)" (parenthesized_expression "(type == 3)" ( (binary_expression "type == 3" identifier == number_literal) )) && (parenthesized_expression "(pFVar26->fts_info != 4)" ( (binary_expression "pFVar26->fts_info != 4" (field_expression "pFVar26->fts_info" identifier -> field_identifier) != number_literal) ))) )) && (parenthesized_expression "(pFVar26->fts_info != 7)" ( (binary_expression "pFVar26->fts_info != 7" (field_expression "pFVar26->fts_info" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n      pFVar26->fts_info = 6;\n    }" { (expression_statement "pFVar26->fts_info = 6;" (assignment_expression "pFVar26->fts_info = 6" (field_expression "pFVar26->fts_info" identifier -> field_identifier) = number_literal) ;) })) (labeled_statement "LAB_00018c18:\n    fts_lfree(local_6c);" statement_identifier : (expression_statement "fts_lfree(local_6c);" (call_expression "fts_lfree(local_6c)" identifier (argument_list "(local_6c)" ( identifier ))) ;)) (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "LAB_00018870:\n  if (bVar2) {\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)(PTR_00032104 + 0x7120);\n    pFVar26 = fts_sort(sp,local_6c,nitems);\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0;\n    return pFVar26;\n  }" statement_identifier : (if_statement "if (bVar2) {\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)(PTR_00032104 + 0x7120);\n    pFVar26 = fts_sort(sp,local_6c,nitems);\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0;\n    return pFVar26;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)(PTR_00032104 + 0x7120);\n    pFVar26 = fts_sort(sp,local_6c,nitems);\n    sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0;\n    return pFVar26;\n  }" { (expression_statement "sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)(PTR_00032104 + 0x7120);" (assignment_expression "sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)(PTR_00032104 + 0x7120)" (field_expression "sp->fts_compar" identifier -> field_identifier) = (cast_expression "(_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)(PTR_00032104 + 0x7120)" ( (type_descriptor "_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_00032104 + 0x7120)" ( (binary_expression "PTR_00032104 + 0x7120" identifier + number_literal) )))) ;) (expression_statement "pFVar26 = fts_sort(sp,local_6c,nitems);" (assignment_expression "pFVar26 = fts_sort(sp,local_6c,nitems)" identifier = (call_expression "fts_sort(sp,local_6c,nitems)" identifier (argument_list "(sp,local_6c,nitems)" ( identifier , identifier , identifier )))) ;) (expression_statement "sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0;" (assignment_expression "sp->fts_compar = (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" (field_expression "sp->fts_compar" identifier -> field_identifier) = (cast_expression "(_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" ( (type_descriptor "_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return pFVar26;" return identifier ;) }))) (if_statement "if (sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0) {\n    return local_6c;\n  }" if (parenthesized_expression "(sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0)" ( (binary_expression "sp->fts_compar == (_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" (field_expression "sp->fts_compar" identifier -> field_identifier) == (cast_expression "(_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *)0x0" ( (type_descriptor "_func_int__ftsent_ptr_ptr__ftsent_ptr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return local_6c;\n  }" { (return_statement "return local_6c;" return identifier ;) })) (if_statement "if (nitems == 1) {\n    return local_6c;\n  }" if (parenthesized_expression "(nitems == 1)" ( (binary_expression "nitems == 1" identifier == number_literal) )) (compound_statement "{\n    return local_6c;\n  }" { (return_statement "return local_6c;" return identifier ;) })) (expression_statement "pFVar26 = fts_sort(sp,local_6c,nitems);" (assignment_expression "pFVar26 = fts_sort(sp,local_6c,nitems)" identifier = (call_expression "fts_sort(sp,local_6c,nitems)" identifier (argument_list "(sp,local_6c,nitems)" ( identifier , identifier , identifier )))) ;) (return_statement "return pFVar26;" return identifier ;) })))
(translation_unit "int FUN_00018118(int *param_1,int param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  code *pcVar5;\n  code *pcVar6;\n  code *pcVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int iVar11;\n  undefined2 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int local_6c;\n  uint local_5c;\n  undefined1 *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  iVar20 = *param_1;\n  iVar13 = *(int *)(iVar20 + 0xc);\n  if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }\n  uVar14 = param_1[0xc];\n  if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);\n  uVar19 = uVar18;\n  local_50 = uVar18 - 1;\n  if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }\n  if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar24 = *(int *)(iVar20 + 0x30);\n  iVar23 = 0;\n  iVar17 = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = 0;\n  pcVar5 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar6 = (code *)(PTR_00032104 + 0x746c);\n  pcVar7 = (code *)(PTR_00032104 + 0x7820);\n  uVar14 = param_1[9] - uVar19;\n  iVar21 = *(int *)(iVar20 + 0xc);\n  while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }\n  if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }\n  if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }\n  if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }\n  if (param_1[0xb] == 0) {\n    return local_6c;\n  }\n  if (iVar17 == 1) {\n    return local_6c;\n  }\n  iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n  return iVar13;\n}\n\n" (function_definition "int FUN_00018118(int *param_1,int param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  code *pcVar5;\n  code *pcVar6;\n  code *pcVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int iVar11;\n  undefined2 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int local_6c;\n  uint local_5c;\n  undefined1 *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  iVar20 = *param_1;\n  iVar13 = *(int *)(iVar20 + 0xc);\n  if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }\n  uVar14 = param_1[0xc];\n  if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);\n  uVar19 = uVar18;\n  local_50 = uVar18 - 1;\n  if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }\n  if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar24 = *(int *)(iVar20 + 0x30);\n  iVar23 = 0;\n  iVar17 = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = 0;\n  pcVar5 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar6 = (code *)(PTR_00032104 + 0x746c);\n  pcVar7 = (code *)(PTR_00032104 + 0x7820);\n  uVar14 = param_1[9] - uVar19;\n  iVar21 = *(int *)(iVar20 + 0xc);\n  while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }\n  if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }\n  if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }\n  if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }\n  if (param_1[0xb] == 0) {\n    return local_6c;\n  }\n  if (iVar17 == 1) {\n    return local_6c;\n  }\n  iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n  return iVar13;\n}" primitive_type (function_declarator "FUN_00018118(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  code *pcVar5;\n  code *pcVar6;\n  code *pcVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int iVar11;\n  undefined2 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int local_6c;\n  uint local_5c;\n  undefined1 *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  iVar20 = *param_1;\n  iVar13 = *(int *)(iVar20 + 0xc);\n  if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }\n  uVar14 = param_1[0xc];\n  if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);\n  uVar19 = uVar18;\n  local_50 = uVar18 - 1;\n  if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }\n  if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar24 = *(int *)(iVar20 + 0x30);\n  iVar23 = 0;\n  iVar17 = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = 0;\n  pcVar5 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar6 = (code *)(PTR_00032104 + 0x746c);\n  pcVar7 = (code *)(PTR_00032104 + 0x7820);\n  uVar14 = param_1[9] - uVar19;\n  iVar21 = *(int *)(iVar20 + 0xc);\n  while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }\n  if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }\n  if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }\n  if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }\n  if (param_1[0xb] == 0) {\n    return local_6c;\n  }\n  if (iVar17 == 1) {\n    return local_6c;\n  }\n  iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n  return iVar13;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined2 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined1 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (expression_statement "iVar20 = *param_1;" (assignment_expression "iVar20 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar13 = *(int *)(iVar20 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar20 + 0xc)" identifier = (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }" { (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (if_statement "if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }" if (parenthesized_expression "((uVar14 & 0x204) == 0x200)" ( (binary_expression "(uVar14 & 0x204) == 0x200" (parenthesized_expression "(uVar14 & 0x204)" ( (binary_expression "uVar14 & 0x204" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar17 = param_1[8];\n    }" { (expression_statement "iVar17 = param_1[8];" (assignment_expression "iVar17 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      iVar17 = -100;\n    }" else (compound_statement "{\n      iVar17 = -100;\n    }" { (expression_statement "iVar17 = -100;" (assignment_expression "iVar17 = -100" identifier = number_literal) ;) }))) (expression_statement "uVar19 = uVar14 & 0x10;" (assignment_expression "uVar19 = uVar14 & 0x10" identifier = (binary_expression "uVar14 & 0x10" identifier & number_literal)) ;) (if_statement "if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }" if (parenthesized_expression "(((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0))" ( (binary_expression "((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)" (parenthesized_expression "((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0))" ( (binary_expression "(uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)" (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar19 = 0x20000, (uVar14 & 1) != 0)" ( (comma_expression "uVar19 = 0x20000, (uVar14 & 1) != 0" (assignment_expression "uVar19 = 0x20000" identifier = number_literal) , (binary_expression "(uVar14 & 1) != 0" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)" ( (comma_expression "uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0" (assignment_expression "uVar19 = *(uint *)(iVar20 + 0x30)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x30)" * (cast_expression "(uint *)(iVar20 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) ))))) , (binary_expression "uVar19 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      uVar19 = 0x20000;\n    }" { (expression_statement "uVar19 = 0x20000;" (assignment_expression "uVar19 = 0x20000" identifier = number_literal) ;) })) (expression_statement "local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);" (assignment_expression "local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880)" identifier = (call_expression "openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880)" identifier (argument_list "(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880)" ( identifier , (pointer_expression "*(undefined4 *)(iVar20 + 0x18)" * (cast_expression "(undefined4 *)(iVar20 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x18)" ( (binary_expression "iVar20 + 0x18" identifier + number_literal) )))) , (binary_expression "(uVar14 & 0x800) << 7 | uVar19 | 0x90880" (binary_expression "(uVar14 & 0x800) << 7 | uVar19" (binary_expression "(uVar14 & 0x800) << 7" (parenthesized_expression "(uVar14 & 0x800)" ( (binary_expression "uVar14 & 0x800" identifier & number_literal) )) << number_literal) | identifier) | number_literal) )))) ;) (if_statement "if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }" if (parenthesized_expression "(-1 < local_40)" ( (binary_expression "-1 < local_40" number_literal < identifier) )) (compound_statement "{\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }" { (expression_statement "iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);" (assignment_expression "iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40)" identifier = (call_expression "(*(code *)PTR_fdopendir_000322f4)(local_40)" (parenthesized_expression "(*(code *)PTR_fdopendir_000322f4)" ( (pointer_expression "*(code *)PTR_fdopendir_000322f4" * (cast_expression "(code *)PTR_fdopendir_000322f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (if_statement "if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }" { (expression_statement "*(int *)(iVar20 + 0xc) = iVar17;" (assignment_expression "*(int *)(iVar20 + 0xc) = iVar17" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" if (parenthesized_expression "(*(short *)(iVar20 + 0x3c) == 0xb)" ( (binary_expression "*(short *)(iVar20 + 0x3c) == 0xb" (pointer_expression "*(short *)(iVar20 + 0x3c)" * (cast_expression "(short *)(iVar20 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }" { (expression_statement "uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);" (assignment_expression "uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0)" identifier = (call_expression "FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0)" identifier (argument_list "(param_1[8],param_1 + 0xc,iVar20,0)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = uVar12;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = uVar12" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" else (if_statement "if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" if (parenthesized_expression "((param_1[0xc] & 0x100U) != 0)" ( (binary_expression "(param_1[0xc] & 0x100U) != 0" (parenthesized_expression "(param_1[0xc] & 0x100U)" ( (binary_expression "param_1[0xc] & 0x100U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" { (expression_statement "FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);" (call_expression "FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20)" identifier (argument_list "(param_1[0xc],param_1 + 0xe,iVar20)" ( (subscript_expression "param_1[0xc]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xe" identifier + number_literal) , identifier ))) ;) (expression_statement "FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);" (call_expression "FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0)" identifier (argument_list "(param_1[8],param_1 + 0xc,iVar20,0)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);" (assignment_expression "iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20)" identifier = (call_expression "FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20)" identifier (argument_list "(param_1[0xc],param_1 + 0xe,iVar20)" ( (subscript_expression "param_1[0xc]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xe" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }" { (expression_statement "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar9 = 0xc;" (assignment_expression "*puVar9 = 0xc" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) })))) (if_statement "if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }" if (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          local_5c = 100000;\n        }" { (expression_statement "local_5c = 100000;" (assignment_expression "local_5c = 100000" identifier = number_literal) ;) }) (else_clause "else {\n          local_5c = 0xffffffff;\n        }" else (compound_statement "{\n          local_5c = 0xffffffff;\n        }" { (expression_statement "local_5c = 0xffffffff;" (assignment_expression "local_5c = 0xffffffff" identifier = number_literal) ;) }))) (if_statement "if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }" if (parenthesized_expression "(param_2 == 2)" ( (binary_expression "param_2 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }" { (labeled_statement "LAB_000189a4:\n          uVar14 = param_1[0xc];" statement_identifier : (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (goto_statement "goto LAB_000181a0;" goto statement_identifier ;) })) (if_statement "if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }" if (parenthesized_expression "((param_1[0xc] & 0x38U) == 0x18)" ( (binary_expression "(param_1[0xc] & 0x38U) == 0x18" (parenthesized_expression "(param_1[0xc] & 0x38U)" ( (binary_expression "param_1[0xc] & 0x38U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }" if (parenthesized_expression "(*(int *)(iVar20 + 100) == 2)" ( (binary_expression "*(int *)(iVar20 + 100) == 2" (pointer_expression "*(int *)(iVar20 + 100)" * (cast_expression "(int *)(iVar20 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 100)" ( (binary_expression "iVar20 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }" { (expression_statement "iVar17 = FUN_00017604(iVar20,local_40);" (assignment_expression "iVar17 = FUN_00017604(iVar20,local_40)" identifier = (call_expression "FUN_00017604(iVar20,local_40)" identifier (argument_list "(iVar20,local_40)" ( identifier , identifier )))) ;) (if_statement "if (iVar17 == 0) goto LAB_0001873c;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001873c;" goto statement_identifier ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (param_2 != 3) goto LAB_000189a4;" if (parenthesized_expression "(param_2 != 3)" ( (binary_expression "param_2 != 3" identifier != number_literal) )) (goto_statement "goto LAB_000189a4;" goto statement_identifier ;)) })) }) (else_clause "else {\nLAB_0001873c:\n          bVar1 = true;\n        }" else (compound_statement "{\nLAB_0001873c:\n          bVar1 = true;\n        }" { (labeled_statement "LAB_0001873c:\n          bVar1 = true;" statement_identifier : (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;)) }))) (if_statement "if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }" if (parenthesized_expression "((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0))" ( (binary_expression "(((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)" (parenthesized_expression "(((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40))" ( (binary_expression "((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)" (parenthesized_expression "((param_1[0xc] & 0x200U) == 0)" ( (binary_expression "(param_1[0xc] & 0x200U) == 0" (parenthesized_expression "(param_1[0xc] & 0x200U)" ( (binary_expression "param_1[0xc] & 0x200U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)" ( (comma_expression "local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40" (assignment_expression "local_40 = rpl_fcntl(local_40,0x406,3)" identifier = (call_expression "rpl_fcntl(local_40,0x406,3)" identifier (argument_list "(local_40,0x406,3)" ( identifier , number_literal , number_literal )))) , (binary_expression "-1 < local_40" number_literal < identifier)) ))) )) && (parenthesized_expression "(iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)" ( (comma_expression "iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0" (assignment_expression "iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0)" identifier = (call_expression "FUN_00017c2c(param_1,iVar20,local_40,0)" identifier (argument_list "(param_1,iVar20,local_40,0)" ( identifier , identifier , identifier , number_literal )))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }" { (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }" else (compound_statement "{\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }" { (if_statement "if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }" if (parenthesized_expression "((bVar1) && (param_2 == 3))" ( (binary_expression "(bVar1) && (param_2 == 3)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(param_2 == 3)" ( (binary_expression "param_2 == 3" identifier == number_literal) ))) )) (compound_statement "{\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }" { (expression_statement "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(iVar20 + 0x20) = *puVar9;" (assignment_expression "*(undefined4 *)(iVar20 + 0x20) = *puVar9" (pointer_expression "*(undefined4 *)(iVar20 + 0x20)" * (cast_expression "(undefined4 *)(iVar20 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) })) (expression_statement "puVar3 = PTR_closedir_000322ac;" (assignment_expression "puVar3 = PTR_closedir_000322ac" identifier = identifier) ;) (expression_statement "*(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;" (assignment_expression "*(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar20 + 0x3e)" * (cast_expression "(ushort *)(iVar20 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3e)" ( (binary_expression "iVar20 + 0x3e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar20 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar20 + 0x3e)" * (cast_expression "(ushort *)(iVar20 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3e)" ( (binary_expression "iVar20 + 0x3e" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "(*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }" if (parenthesized_expression "(((uVar14 & 0x200) == 0) || (local_40 < 0))" ( (binary_expression "((uVar14 & 0x200) == 0) || (local_40 < 0)" (parenthesized_expression "((uVar14 & 0x200) == 0)" ( (binary_expression "(uVar14 & 0x200) == 0" (parenthesized_expression "(uVar14 & 0x200)" ( (binary_expression "uVar14 & 0x200" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_40 < 0)" ( (binary_expression "local_40 < 0" identifier < number_literal) ))) )) (compound_statement "{\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }" { (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }" else (compound_statement "{\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }" { (expression_statement "(*(code *)PTR_close_000322b0)(local_40);" (call_expression "(*(code *)PTR_close_000322b0)(local_40)" (parenthesized_expression "(*(code *)PTR_close_000322b0)" ( (pointer_expression "*(code *)PTR_close_000322b0" * (cast_expression "(code *)PTR_close_000322b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier ))) ;) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) }))) }))) (goto_statement "goto LAB_000181a0;" goto statement_identifier ;) })) (expression_statement "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar15 = *puVar9;" (assignment_expression "uVar15 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "(*(code *)PTR_close_000322b0)(local_40);" (call_expression "(*(code *)PTR_close_000322b0)(local_40)" (parenthesized_expression "(*(code *)PTR_close_000322b0)" ( (pointer_expression "*(code *)PTR_close_000322b0" * (cast_expression "(code *)PTR_close_000322b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier ))) ;) (expression_statement "*puVar9 = uVar15;" (assignment_expression "*puVar9 = uVar15" (pointer_expression "*puVar9" * identifier) = identifier) ;) })) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "joined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;" statement_identifier : (expression_statement "puVar3 = PTR___errno_location_00032328;" (assignment_expression "puVar3 = PTR___errno_location_00032328" identifier = identifier) ;)) (if_statement "if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }" if (parenthesized_expression "(param_2 == 3)" ( (binary_expression "param_2 == 3" identifier == number_literal) )) (compound_statement "{\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }" { (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 4;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 4" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar9 = (undefined4 *)(*(code *)puVar3)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)puVar3)()" identifier = (cast_expression "(undefined4 *)(*(code *)puVar3)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar3)()" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(iVar20 + 0x20) = *puVar9;" (assignment_expression "*(undefined4 *)(iVar20 + 0x20) = *puVar9" (pointer_expression "*(undefined4 *)(iVar20 + 0x20)" * (cast_expression "(undefined4 *)(iVar20 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_40 = (*(code *)PTR_dirfd_000323dc)();" (assignment_expression "local_40 = (*(code *)PTR_dirfd_000323dc)()" identifier = (call_expression "(*(code *)PTR_dirfd_000323dc)()" (parenthesized_expression "(*(code *)PTR_dirfd_000323dc)" ( (pointer_expression "*(code *)PTR_dirfd_000323dc" * (cast_expression "(code *)PTR_dirfd_000323dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }" if (parenthesized_expression "(local_40 < 0)" ( (binary_expression "local_40 < 0" identifier < number_literal) )) (compound_statement "{\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }" { (expression_statement "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto joined_r0x00018a30;" goto statement_identifier ;) })) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (if_statement "if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" if (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    bVar1 = true;\n    local_5c = 100000;\n  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "local_5c = 100000;" (assignment_expression "local_5c = 100000" identifier = number_literal) ;) }) (else_clause "else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" else (compound_statement "{\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" { (expression_statement "local_5c = 0xffffffff;" (assignment_expression "local_5c = 0xffffffff" identifier = number_literal) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) (labeled_statement "LAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);" statement_identifier : (expression_statement "uVar18 = *(uint *)(iVar20 + 0x28);" (assignment_expression "uVar18 = *(uint *)(iVar20 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x28)" * (cast_expression "(uint *)(iVar20 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x28)" ( (binary_expression "iVar20 + 0x28" identifier + number_literal) ))))) ;)) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" identifier = identifier) ;) (expression_statement "local_50 = uVar18 - 1;" (assignment_expression "local_50 = uVar18 - 1" identifier = (binary_expression "uVar18 - 1" identifier - number_literal)) ;) (if_statement "if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/')" ( (binary_expression "*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/'" (pointer_expression "*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1))" * (cast_expression "(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar20 + 0x1c) + (uVar18 - 1))" ( (binary_expression "*(int *)(iVar20 + 0x1c) + (uVar18 - 1)" (pointer_expression "*(int *)(iVar20 + 0x1c)" * (cast_expression "(int *)(iVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1c)" ( (binary_expression "iVar20 + 0x1c" identifier + number_literal) )))) + (parenthesized_expression "(uVar18 - 1)" ( (binary_expression "uVar18 - 1" identifier - number_literal) ))) )))) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }" { (expression_statement "uVar19 = uVar18 + 1;" (assignment_expression "uVar19 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = uVar18;" (assignment_expression "local_50 = uVar18" identifier = identifier) ;) })) (if_statement "if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }" if (parenthesized_expression "((uVar14 & 4) == 0)" ( (binary_expression "(uVar14 & 4) == 0" (parenthesized_expression "(uVar14 & 4)" ( (binary_expression "uVar14 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_58 = (undefined1 *)0x0;\n  }" { (expression_statement "local_58 = (undefined1 *)0x0;" (assignment_expression "local_58 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }" else (compound_statement "{\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }" { (expression_statement "local_58 = (undefined1 *)(param_1[6] + local_50) + 1;" (assignment_expression "local_58 = (undefined1 *)(param_1[6] + local_50) + 1" identifier = (binary_expression "(undefined1 *)(param_1[6] + local_50) + 1" (cast_expression "(undefined1 *)(param_1[6] + local_50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + local_50)" ( (binary_expression "param_1[6] + local_50" (subscript_expression "param_1[6]" identifier [ number_literal ]) + identifier) ))) + number_literal)) ;) (expression_statement "*(undefined1 *)(param_1[6] + local_50) = 0x2f;" (assignment_expression "*(undefined1 *)(param_1[6] + local_50) = 0x2f" (pointer_expression "*(undefined1 *)(param_1[6] + local_50)" * (cast_expression "(undefined1 *)(param_1[6] + local_50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + local_50)" ( (binary_expression "param_1[6] + local_50" (subscript_expression "param_1[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) }))) (expression_statement "puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;" (assignment_expression "puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(iVar20 + 0x30);" (assignment_expression "iVar24 = *(int *)(iVar20 + 0x30)" identifier = (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = (code *)(PTR_00032104 + 0x72c0);" (assignment_expression "pcVar5 = (code *)(PTR_00032104 + 0x72c0)" identifier = (cast_expression "(code *)(PTR_00032104 + 0x72c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_00032104 + 0x72c0)" ( (binary_expression "PTR_00032104 + 0x72c0" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)(PTR_00032104 + 0x746c);" (assignment_expression "pcVar6 = (code *)(PTR_00032104 + 0x746c)" identifier = (cast_expression "(code *)(PTR_00032104 + 0x746c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_00032104 + 0x746c)" ( (binary_expression "PTR_00032104 + 0x746c" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = (code *)(PTR_00032104 + 0x7820);" (assignment_expression "pcVar7 = (code *)(PTR_00032104 + 0x7820)" identifier = (cast_expression "(code *)(PTR_00032104 + 0x7820)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_00032104 + 0x7820)" ( (binary_expression "PTR_00032104 + 0x7820" identifier + number_literal) )))) ;) (expression_statement "uVar14 = param_1[9] - uVar19;" (assignment_expression "uVar14 = param_1[9] - uVar19" identifier = (binary_expression "param_1[9] - uVar19" (subscript_expression "param_1[9]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "iVar21 = *(int *)(iVar20 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar20 + 0xc)" identifier = (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }" while (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }" { (expression_statement "piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "piVar8 = (int *)(*(code *)PTR___errno_location_00032328)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00032328)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" ( (pointer_expression "*(code *)PTR___errno_location_00032328" * (cast_expression "(code *)PTR___errno_location_00032328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar4 = PTR_readdir64_000322e0;" (assignment_expression "puVar4 = PTR_readdir64_000322e0" identifier = identifier) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);" (assignment_expression "puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21)" identifier = (cast_expression "(undefined4 *)(*(code *)puVar4)(iVar21)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar4)(iVar21)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar21)" ( identifier ))))) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }" { (if_statement "if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }" if (parenthesized_expression "(*piVar8 != 0)" ( (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }" { (expression_statement "*(int *)(iVar20 + 0x20) = *piVar8;" (assignment_expression "*(int *)(iVar20 + 0x20) = *piVar8" (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "uVar12 = 7;" (assignment_expression "uVar12 = 7" identifier = number_literal) ;) (if_statement "if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }" if (parenthesized_expression "((iVar13 == 0) && (iVar17 == 0))" ( (binary_expression "(iVar13 == 0) && (iVar17 == 0)" (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          uVar12 = 4;\n        }" { (expression_statement "uVar12 = 4;" (assignment_expression "uVar12 = 4" identifier = number_literal) ;) })) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = uVar12;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = uVar12" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }" if (parenthesized_expression "(*(int *)(iVar20 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar20 + 0xc) != 0" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }" { (expression_statement "(*(code *)PTR_closedir_000322ac)();" (call_expression "(*(code *)PTR_closedir_000322ac)()" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) })) (break_statement "break;" break ;) })) (if_statement "if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }" if (parenthesized_expression "((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000))))" ( (binary_expression "(((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))" (parenthesized_expression "(((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.'))" ( (binary_expression "((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')" (parenthesized_expression "((param_1[0xc] & 0x20U) != 0)" ( (binary_expression "(param_1[0xc] & 0x20U) != 0" (parenthesized_expression "(param_1[0xc] & 0x20U)" ( (binary_expression "param_1[0xc] & 0x20U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*(char *)((int)puVar9 + 0x13) != '.')" ( (binary_expression "*(char *)((int)puVar9 + 0x13) != '.'" (pointer_expression "*(char *)((int)puVar9 + 0x13)" * (cast_expression "(char *)((int)puVar9 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x13)" ( (binary_expression "(int)puVar9 + 0x13" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) ))) )) || (parenthesized_expression "((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))" ( (parenthesized_expression "(*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000))" ( (binary_expression "*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)" (binary_expression "*(char *)(puVar9 + 5) != '\0'" (pointer_expression "*(char *)(puVar9 + 5)" * (cast_expression "(char *)(puVar9 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 5)" ( (binary_expression "puVar9 + 5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "((puVar9[5] & 0xffff0000) != 0x2e000000)" ( (binary_expression "(puVar9[5] & 0xffff0000) != 0x2e000000" (parenthesized_expression "(puVar9[5] & 0xffff0000)" ( (binary_expression "puVar9[5] & 0xffff0000" (subscript_expression "puVar9[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }" { (expression_statement "uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);" (assignment_expression "uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13)" identifier = (call_expression "(*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13)" (parenthesized_expression "(*(code *)PTR_strlen_00032344)" ( (pointer_expression "*(code *)PTR_strlen_00032344" * (cast_expression "(code *)PTR_strlen_00032344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)puVar9 + 0x13)" ( (binary_expression "(int)puVar9 + 0x13" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);" (assignment_expression "iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18)" identifier = (call_expression "(*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(param_1,(int)puVar9 + 0x13,uVar18)" ( identifier , (binary_expression "(int)puVar9 + 0x13" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier )))) ;) (if_statement "if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }" { (labeled_statement "LAB_000188cc:\n        iVar13 = *piVar8;" statement_identifier : (expression_statement "iVar13 = *piVar8;" (assignment_expression "iVar13 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;)) (expression_statement "(*(code *)PTR_free_000323d4)(iVar21);" (call_expression "(*(code *)PTR_free_000323d4)(iVar21)" (parenthesized_expression "(*(code *)PTR_free_000323d4)" ( (pointer_expression "*(code *)PTR_free_000323d4" * (cast_expression "(code *)PTR_free_000323d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar21)" ( identifier ))) ;) (expression_statement "FUN_0001737c(local_6c);" (call_expression "FUN_0001737c(local_6c)" identifier (argument_list "(local_6c)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xc] = uVar14 | 0x4000;" (assignment_expression "param_1[0xc] = uVar14 | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar14 | 0x4000" identifier | number_literal)) ;) (expression_statement "*piVar8 = iVar13;" (assignment_expression "*piVar8 = iVar13" (pointer_expression "*piVar8" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }" if (parenthesized_expression "(uVar14 <= uVar18)" ( (binary_expression "uVar14 <= uVar18" identifier <= identifier) )) (compound_statement "{\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }" { (expression_statement "iVar22 = param_1[6];" (assignment_expression "iVar22 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);" (assignment_expression "iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18)" identifier = (call_expression "FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18)" identifier (argument_list "(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18)" ( (binary_expression "param_1 + 6" identifier + number_literal) , (binary_expression "param_1 + 9" identifier + number_literal) , (binary_expression "local_50 + 2 + uVar18" (binary_expression "local_50 + 2" identifier + number_literal) + identifier) )))) ;) (if_statement "if (iVar11 == 0) goto LAB_000188cc;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000188cc;" goto statement_identifier ;)) (if_statement "if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }" if (parenthesized_expression "((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0))" ( (binary_expression "(param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)" (parenthesized_expression "(param_1[6] != iVar22)" ( (binary_expression "param_1[6] != iVar22" (subscript_expression "param_1[6]" identifier [ number_literal ]) != identifier) )) && (parenthesized_expression "(local_54 = iVar11, (param_1[0xc] & 4U) != 0)" ( (comma_expression "local_54 = iVar11, (param_1[0xc] & 4U) != 0" (assignment_expression "local_54 = iVar11" identifier = identifier) , (binary_expression "(param_1[0xc] & 4U) != 0" (parenthesized_expression "(param_1[0xc] & 4U)" ( (binary_expression "param_1[0xc] & 4U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }" { (expression_statement "local_58 = (undefined1 *)(param_1[6] + uVar19);" (assignment_expression "local_58 = (undefined1 *)(param_1[6] + uVar19)" identifier = (cast_expression "(undefined1 *)(param_1[6] + uVar19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + uVar19)" ( (binary_expression "param_1[6] + uVar19" (subscript_expression "param_1[6]" identifier [ number_literal ]) + identifier) )))) ;) })) (expression_statement "uVar14 = param_1[9] - uVar19;" (assignment_expression "uVar14 = param_1[9] - uVar19" identifier = (binary_expression "param_1[9] - uVar19" (subscript_expression "param_1[9]" identifier [ number_literal ]) - identifier)) ;) })) (if_statement "if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }" if (parenthesized_expression "(uVar18 + uVar19 < uVar19)" ( (binary_expression "uVar18 + uVar19 < uVar19" (binary_expression "uVar18 + uVar19" identifier + identifier) < identifier) )) (compound_statement "{\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }" { (expression_statement "(*(code *)PTR_free_000323d4)(iVar21);" (call_expression "(*(code *)PTR_free_000323d4)(iVar21)" (parenthesized_expression "(*(code *)PTR_free_000323d4)" ( (pointer_expression "*(code *)PTR_free_000323d4" * (cast_expression "(code *)PTR_free_000323d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar21)" ( identifier ))) ;) (expression_statement "FUN_0001737c(local_6c);" (call_expression "FUN_0001737c(local_6c)" identifier (argument_list "(local_6c)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" ( (pointer_expression "*(code *)PTR_closedir_000322ac" * (cast_expression "(code *)PTR_closedir_000322ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" * (cast_expression "(undefined4 *)(iVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xc] = uVar14 | 0x4000;" (assignment_expression "param_1[0xc] = uVar14 | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar14 | 0x4000" identifier | number_literal)) ;) (expression_statement "*piVar8 = 0x4e;" (assignment_expression "*piVar8 = 0x4e" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar10 = param_1[0xc];" (assignment_expression "uVar10 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = puVar9[1];" (assignment_expression "uVar16 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = *puVar9;" (assignment_expression "uVar15 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "*(int *)(iVar21 + 4) = *param_1;" (assignment_expression "*(int *)(iVar21 + 4) = *param_1" (pointer_expression "*(int *)(iVar21 + 4)" * (cast_expression "(int *)(iVar21 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 4)" ( (binary_expression "iVar21 + 4" identifier + number_literal) )))) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*(uint *)(iVar21 + 0x28) = uVar18 + uVar19;" (assignment_expression "*(uint *)(iVar21 + 0x28) = uVar18 + uVar19" (pointer_expression "*(uint *)(iVar21 + 0x28)" * (cast_expression "(uint *)(iVar21 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x28)" ( (binary_expression "iVar21 + 0x28" identifier + number_literal) )))) = (binary_expression "uVar18 + uVar19" identifier + identifier)) ;) (expression_statement "*(int *)(iVar21 + 0x30) = iVar24 + 1;" (assignment_expression "*(int *)(iVar21 + 0x30) = iVar24 + 1" (pointer_expression "*(int *)(iVar21 + 0x30)" * (cast_expression "(int *)(iVar21 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x30)" ( (binary_expression "iVar21 + 0x30" identifier + number_literal) )))) = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar21 + 0x5c) = uVar16;" (assignment_expression "*(undefined4 *)(iVar21 + 0x5c) = uVar16" (pointer_expression "*(undefined4 *)(iVar21 + 0x5c)" * (cast_expression "(undefined4 *)(iVar21 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x5c)" ( (binary_expression "iVar21 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar21 + 0x58) = uVar15;" (assignment_expression "*(undefined4 *)(iVar21 + 0x58) = uVar15" (pointer_expression "*(undefined4 *)(iVar21 + 0x58)" * (cast_expression "(undefined4 *)(iVar21 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x58)" ( (binary_expression "iVar21 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = PTR_memmove_000323d8;" (assignment_expression "puVar4 = PTR_memmove_000323d8" identifier = identifier) ;) (if_statement "if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }" if (parenthesized_expression "((uVar10 & 4) == 0)" ( (binary_expression "(uVar10 & 4) == 0" (parenthesized_expression "(uVar10 & 4)" ( (binary_expression "uVar10 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }" { (expression_statement "*(int *)(iVar21 + 0x18) = iVar21 + 0xe8;" (assignment_expression "*(int *)(iVar21 + 0x18) = iVar21 + 0xe8" (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) )))) = (binary_expression "iVar21 + 0xe8" identifier + number_literal)) ;) }) (else_clause "else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }" else (compound_statement "{\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }" { (expression_statement "*(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);" (assignment_expression "*(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c)" (pointer_expression "*(undefined4 *)(iVar21 + 0x18)" * (cast_expression "(undefined4 *)(iVar21 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar21 + 0x1c)" * (cast_expression "(undefined4 *)(iVar21 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);" (call_expression "(*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1)" ( identifier , (binary_expression "iVar21 + 0xe8" identifier + number_literal) , (binary_expression "*(int *)(iVar21 + 0x34) + 1" (pointer_expression "*(int *)(iVar21 + 0x34)" * (cast_expression "(int *)(iVar21 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x34)" ( (binary_expression "iVar21 + 0x34" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar10 = param_1[0xc];" (assignment_expression "uVar10 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) }))) (if_statement "if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }" if (parenthesized_expression "((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0))" ( (binary_expression "(param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)" (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((uVar10 & 0x400) != 0)" ( (binary_expression "(uVar10 & 0x400) != 0" (parenthesized_expression "(uVar10 & 0x400)" ( (binary_expression "uVar10 & 0x400" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }" { (expression_statement "uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);" (assignment_expression "uVar18 = (uint)*(byte *)((int)puVar9 + 0x12)" identifier = (binary_expression "(uint)*(byte *)((int)puVar9 + 0x12)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar9 + 0x12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x12)" ( (binary_expression "(int)puVar9 + 0x12" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }" if (parenthesized_expression "((uVar10 & 0x18) == 0x18)" ( (binary_expression "(uVar10 & 0x18) == 0x18" (parenthesized_expression "(uVar10 & 0x18)" ( (binary_expression "uVar10 & 0x18" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }" { (if_statement "if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }" { (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" * (cast_expression "(undefined2 *)(iVar21 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00018464;" goto statement_identifier ;) })) (if_statement "if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }" if (parenthesized_expression "(uVar18 == 4)" ( (binary_expression "uVar18 == 4" identifier == number_literal) )) (compound_statement "{\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }" { (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" * (cast_expression "(undefined2 *)(iVar21 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00018368;" goto statement_identifier ;) })) (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" * (cast_expression "(undefined2 *)(iVar21 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }" if (parenthesized_expression "(uVar18 - 1 < 0xc)" ( (binary_expression "uVar18 - 1 < 0xc" (binary_expression "uVar18 - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }" { (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" * (cast_expression "(undefined4 *)(iVar21 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x60)" ( (binary_expression "iVar21 + 0x60" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" * (cast_expression "(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" ( (binary_expression "puVar3 + (uVar18 - 1) * 4 + 0x13a0" (binary_expression "puVar3 + (uVar18 - 1) * 4" identifier + (binary_expression "(uVar18 - 1) * 4" (parenthesized_expression "(uVar18 - 1)" ( (binary_expression "uVar18 - 1" identifier - number_literal) )) * number_literal)) + number_literal) ))))) ;) }) (else_clause "else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }" else (compound_statement "{\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }" { (expression_statement "*(undefined4 *)(iVar21 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" * (cast_expression "(undefined4 *)(iVar21 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x60)" ( (binary_expression "iVar21 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }" else (compound_statement "{\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }" { (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" * (cast_expression "(undefined2 *)(iVar21 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }" if (parenthesized_expression "(uVar18 - 1 < 0xc)" ( (binary_expression "uVar18 - 1 < 0xc" (binary_expression "uVar18 - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }" { (labeled_statement "LAB_00018368:\n            uVar15 = 2;" statement_identifier : (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;)) (expression_statement "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" * (cast_expression "(undefined4 *)(iVar21 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x60)" ( (binary_expression "iVar21 + 0x60" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" * (cast_expression "(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" ( (binary_expression "puVar3 + (uVar18 - 1) * 4 + 0x13a0" (binary_expression "puVar3 + (uVar18 - 1) * 4" identifier + (binary_expression "(uVar18 - 1) * 4" (parenthesized_expression "(uVar18 - 1)" ( (binary_expression "uVar18 - 1" identifier - number_literal) )) * number_literal)) + number_literal) ))))) ;) }) (else_clause "else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }" else (compound_statement "{\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }" { (labeled_statement "LAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar21 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" * (cast_expression "(undefined4 *)(iVar21 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x60)" ( (binary_expression "iVar21 + 0x60" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) }))) }))) (expression_statement "*(undefined4 *)(iVar21 + 0x84) = uVar15;" (assignment_expression "*(undefined4 *)(iVar21 + 0x84) = uVar15" (pointer_expression "*(undefined4 *)(iVar21 + 0x84)" * (cast_expression "(undefined4 *)(iVar21 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x84)" ( (binary_expression "iVar21 + 0x84" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar21 + 0x80) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x80) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x80)" * (cast_expression "(undefined4 *)(iVar21 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x80)" ( (binary_expression "iVar21 + 0x80" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }" else (compound_statement "{\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }" { (expression_statement "uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);" (assignment_expression "uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0)" identifier = (call_expression "(*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(param_1[8],param_1 + 0xc,iVar21,0)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = uVar12;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = uVar12" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" * (cast_expression "(undefined2 *)(iVar21 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(undefined4 *)(iVar21 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 8)" * (cast_expression "(undefined4 *)(iVar21 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 8)" ( (binary_expression "iVar21 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = iVar21;" (assignment_expression "iVar11 = iVar21" identifier = identifier) ;) (if_statement "if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }" if (parenthesized_expression "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) )) (compound_statement "{\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }" { (expression_statement "*(int *)(iVar23 + 8) = iVar21;" (assignment_expression "*(int *)(iVar23 + 8) = iVar21" (pointer_expression "*(int *)(iVar23 + 8)" * (cast_expression "(int *)(iVar23 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 8)" ( (binary_expression "iVar23 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar11 = local_6c;" (assignment_expression "iVar11 = local_6c" identifier = identifier) ;) })) (expression_statement "local_6c = iVar11;" (assignment_expression "local_6c = iVar11" identifier = identifier) ;) (expression_statement "iVar23 = iVar21;" (assignment_expression "iVar23 = iVar21" identifier = identifier) ;) (if_statement "if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }" if (parenthesized_expression "(iVar17 == 10000)" ( (binary_expression "iVar17 == 10000" identifier == number_literal) )) (compound_statement "{\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }" { (if_statement "if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }" if (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }" { (expression_statement "iVar21 = (*pcVar6)(iVar20,local_40);" (assignment_expression "iVar21 = (*pcVar6)(iVar20,local_40)" identifier = (call_expression "(*pcVar6)(iVar20,local_40)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(iVar20,local_40)" ( identifier , identifier )))) ;) (if_statement "if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }" if (parenthesized_expression "(((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be))" ( (binary_expression "((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)" (parenthesized_expression "((iVar21 == 0x6969) || (iVar21 == 0x1021994))" ( (binary_expression "(iVar21 == 0x6969) || (iVar21 == 0x1021994)" (parenthesized_expression "(iVar21 == 0x6969)" ( (binary_expression "iVar21 == 0x6969" identifier == number_literal) )) || (parenthesized_expression "(iVar21 == 0x1021994)" ( (binary_expression "iVar21 == 0x1021994" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar21 == -0xacb2be)" ( (binary_expression "iVar21 == -0xacb2be" identifier == number_literal) ))) )) (compound_statement "{\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (local_5c < 0x2712) goto LAB_00018814;" if (parenthesized_expression "(local_5c < 0x2712)" ( (binary_expression "local_5c < 0x2712" identifier < number_literal) )) (goto_statement "goto LAB_00018814;" goto statement_identifier ;)) (goto_statement "goto LAB_000183bc;" goto statement_identifier ;) })) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) (expression_statement "iVar17 = 0x2711;" (assignment_expression "iVar17 = 0x2711" identifier = number_literal) ;) }) (else_clause "else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }" else (compound_statement "{\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }" { (if_statement "if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }" if (parenthesized_expression "(local_5c <= iVar17 + 1U)" ( (binary_expression "local_5c <= iVar17 + 1U" identifier <= (binary_expression "iVar17 + 1U" identifier + number_literal)) )) (compound_statement "{\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }" { (labeled_statement "LAB_00018814:\n          iVar17 = iVar17 + 1;" statement_identifier : (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_000183bc:\n        iVar17 = iVar17 + 1;" statement_identifier : (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;)) }))) })) (expression_statement "iVar21 = *(int *)(iVar20 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar20 + 0xc)" identifier = (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) ))))) ;) })) (if_statement "if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }" if (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }" { (expression_statement "iVar21 = param_1[6];" (assignment_expression "iVar21 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (for_statement "for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }" for ( (assignment_expression "iVar23 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ; (comma_expression "iVar24 = local_6c, iVar23 != 0" (assignment_expression "iVar24 = local_6c" identifier = identifier) , (binary_expression "iVar23 != 0" identifier != number_literal)) ; (assignment_expression "iVar23 = *(int *)(iVar23 + 8)" identifier = (pointer_expression "*(int *)(iVar23 + 8)" * (cast_expression "(int *)(iVar23 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 8)" ( (binary_expression "iVar23 + 8" identifier + number_literal) ))))) ) (compound_statement "{\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }" { (if_statement "if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" if (parenthesized_expression "(*(int *)(iVar23 + 0x18) != iVar23 + 0xe8)" ( (binary_expression "*(int *)(iVar23 + 0x18) != iVar23 + 0xe8" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) != (binary_expression "iVar23 + 0xe8" identifier + number_literal)) )) (compound_statement "{\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" { (expression_statement "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));" (assignment_expression "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) = (binary_expression "iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" identifier + (parenthesized_expression "(*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" ( (binary_expression "*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c)" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) ))))) )))) ;) })) (expression_statement "*(int *)(iVar23 + 0x1c) = iVar21;" (assignment_expression "*(int *)(iVar23 + 0x1c) = iVar21" (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) )))) = identifier) ;) })) (while_statement "while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }" while (parenthesized_expression "(iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30))" ( (comma_expression "iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)" (assignment_expression "iVar23 = iVar24" identifier = identifier) , (binary_expression "-1 < *(int *)(iVar23 + 0x30)" number_literal < (pointer_expression "*(int *)(iVar23 + 0x30)" * (cast_expression "(int *)(iVar23 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x30)" ( (binary_expression "iVar23 + 0x30" identifier + number_literal) )))))) )) (compound_statement "{\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }" { (if_statement "if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" if (parenthesized_expression "(*(int *)(iVar23 + 0x18) != iVar23 + 0xe8)" ( (binary_expression "*(int *)(iVar23 + 0x18) != iVar23 + 0xe8" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) != (binary_expression "iVar23 + 0xe8" identifier + number_literal)) )) (compound_statement "{\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" { (expression_statement "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));" (assignment_expression "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) = (binary_expression "iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" identifier + (parenthesized_expression "(*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" ( (binary_expression "*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c)" (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) ))))) )))) ;) })) (expression_statement "*(int *)(iVar23 + 0x1c) = iVar21;" (assignment_expression "*(int *)(iVar23 + 0x1c) = iVar21" (pointer_expression "*(int *)(iVar23 + 0x1c)" * (cast_expression "(int *)(iVar23 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x1c)" ( (binary_expression "iVar23 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar24 = *(int *)(iVar23 + 8);" (assignment_expression "iVar24 = *(int *)(iVar23 + 8)" identifier = (pointer_expression "*(int *)(iVar23 + 8)" * (cast_expression "(int *)(iVar23 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 8)" ( (binary_expression "iVar23 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }" if (parenthesized_expression "(*(int *)(iVar23 + 8) == 0)" ( (binary_expression "*(int *)(iVar23 + 8) == 0" (pointer_expression "*(int *)(iVar23 + 8)" * (cast_expression "(int *)(iVar23 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 8)" ( (binary_expression "iVar23 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar24 = *(int *)(iVar23 + 4);\n      }" { (expression_statement "iVar24 = *(int *)(iVar23 + 4);" (assignment_expression "iVar24 = *(int *)(iVar23 + 4)" identifier = (pointer_expression "*(int *)(iVar23 + 4)" * (cast_expression "(int *)(iVar23 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 4)" ( (binary_expression "iVar23 + 4" identifier + number_literal) ))))) ;) })) })) })) (if_statement "if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }" if (parenthesized_expression "((param_1[0xc] & 4U) != 0)" ( (binary_expression "(param_1[0xc] & 4U) != 0" (parenthesized_expression "(param_1[0xc] & 4U)" ( (binary_expression "param_1[0xc] & 4U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }" { (if_statement "if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }" if (parenthesized_expression "((param_1[9] == uVar19) || (iVar17 == 0))" ( (binary_expression "(param_1[9] == uVar19) || (iVar17 == 0)" (parenthesized_expression "(param_1[9] == uVar19)" ( (binary_expression "param_1[9] == uVar19" (subscript_expression "param_1[9]" identifier [ number_literal ]) == identifier) )) || (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      local_58 = local_58 + -1;\n    }" { (expression_statement "local_58 = local_58 + -1;" (assignment_expression "local_58 = local_58 + -1" identifier = (binary_expression "local_58 + -1" identifier + number_literal)) ;) })) (expression_statement "*local_58 = 0;" (assignment_expression "*local_58 = 0" (pointer_expression "*local_58" * identifier) = number_literal) ;) })) (if_statement "if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }" if (parenthesized_expression "((iVar13 == 0) && (bVar1))" ( (binary_expression "(iVar13 == 0) && (bVar1)" (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar1)" ( identifier ))) )) (compound_statement "{\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }" { (if_statement "if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;" if (parenthesized_expression "((param_2 != 1) && (iVar17 != 0))" ( (binary_expression "(param_2 != 1) && (iVar17 != 0)" (parenthesized_expression "(param_2 != 1)" ( (binary_expression "param_2 != 1" identifier != number_literal) )) && (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00018870;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" if (parenthesized_expression "(*(int *)(iVar20 + 0x30) == 0)" ( (binary_expression "*(int *)(iVar20 + 0x30) == 0" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar13 = FUN_00017788(param_1);\n    }" { (expression_statement "iVar13 = FUN_00017788(param_1);" (assignment_expression "iVar13 = FUN_00017788(param_1)" identifier = (call_expression "FUN_00017788(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) (else_clause "else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" else (compound_statement "{\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" { (expression_statement "iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);" (assignment_expression "iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" identifier = (call_expression "FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" identifier (argument_list "(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" ( identifier , (pointer_expression "*(undefined4 *)(iVar20 + 4)" * (cast_expression "(undefined4 *)(iVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) , number_literal , (binary_expression "PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390" identifier + number_literal) )))) ;) }))) (if_statement "if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }" { (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xc] = uVar14 | 0x4000;" (assignment_expression "param_1[0xc] = uVar14 | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar14 | 0x4000" identifier | number_literal)) ;) (goto_statement "goto LAB_00018c18;" goto statement_identifier ;) })) })) (if_statement "if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }" { (if_statement "if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }" if (parenthesized_expression "(((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7))" ( (binary_expression "((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)" (parenthesized_expression "((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4))" ( (binary_expression "(param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)" (parenthesized_expression "(param_2 == 3)" ( (binary_expression "param_2 == 3" identifier == number_literal) )) && (parenthesized_expression "(*(short *)(iVar20 + 0x3c) != 4)" ( (binary_expression "*(short *)(iVar20 + 0x3c) != 4" (pointer_expression "*(short *)(iVar20 + 0x3c)" * (cast_expression "(short *)(iVar20 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(short *)(iVar20 + 0x3c) != 7)" ( (binary_expression "*(short *)(iVar20 + 0x3c) != 7" (pointer_expression "*(short *)(iVar20 + 0x3c)" * (cast_expression "(short *)(iVar20 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }" { (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 6;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 6" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" * (cast_expression "(undefined2 *)(iVar20 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_00018c18:\n    FUN_0001737c(local_6c);" statement_identifier : (expression_statement "FUN_0001737c(local_6c);" (call_expression "FUN_0001737c(local_6c)" identifier (argument_list "(local_6c)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }" statement_identifier : (if_statement "if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }" { (expression_statement "param_1[0xb] = (int)(PTR_00032104 + 0x7120);" (assignment_expression "param_1[0xb] = (int)(PTR_00032104 + 0x7120)" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(int)(PTR_00032104 + 0x7120)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(PTR_00032104 + 0x7120)" ( (binary_expression "PTR_00032104 + 0x7120" identifier + number_literal) )))) ;) (expression_statement "iVar13 = FUN_00017184(param_1,local_6c,iVar17);" (assignment_expression "iVar13 = FUN_00017184(param_1,local_6c,iVar17)" identifier = (call_expression "FUN_00017184(param_1,local_6c,iVar17)" identifier (argument_list "(param_1,local_6c,iVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return iVar13;" return identifier ;) }))) (if_statement "if (param_1[0xb] == 0) {\n    return local_6c;\n  }" if (parenthesized_expression "(param_1[0xb] == 0)" ( (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    return local_6c;\n  }" { (return_statement "return local_6c;" return identifier ;) })) (if_statement "if (iVar17 == 1) {\n    return local_6c;\n  }" if (parenthesized_expression "(iVar17 == 1)" ( (binary_expression "iVar17 == 1" identifier == number_literal) )) (compound_statement "{\n    return local_6c;\n  }" { (return_statement "return local_6c;" return identifier ;) })) (expression_statement "iVar13 = FUN_00017184(param_1,local_6c,iVar17);" (assignment_expression "iVar13 = FUN_00017184(param_1,local_6c,iVar17)" identifier = (call_expression "FUN_00017184(param_1,local_6c,iVar17)" identifier (argument_list "(param_1,local_6c,iVar17)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar13;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | IDENT) | LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;) })) })))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) , (binary_expression LIT < IDENT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) + LIT) ))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (break_statement break ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (for_statement for ( (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ; (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( IDENT ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (binary_expression IDENT + LIT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return IDENT ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (return_statement return IDENT ;) })))
(function_definition "int FUN_00018118(int *param_1,int param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  code *pcVar5;\n  code *pcVar6;\n  code *pcVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int iVar11;\n  undefined2 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int local_6c;\n  uint local_5c;\n  undefined1 *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  iVar20 = *param_1;\n  iVar13 = *(int *)(iVar20 + 0xc);\n  if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }\n  uVar14 = param_1[0xc];\n  if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);\n  uVar19 = uVar18;\n  local_50 = uVar18 - 1;\n  if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }\n  if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar24 = *(int *)(iVar20 + 0x30);\n  iVar23 = 0;\n  iVar17 = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = 0;\n  pcVar5 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar6 = (code *)(PTR_00032104 + 0x746c);\n  pcVar7 = (code *)(PTR_00032104 + 0x7820);\n  uVar14 = param_1[9] - uVar19;\n  iVar21 = *(int *)(iVar20 + 0xc);\n  while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }\n  if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }\n  if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }\n  if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }\n  if (param_1[0xb] == 0) {\n    return local_6c;\n  }\n  if (iVar17 == 1) {\n    return local_6c;\n  }\n  iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n  return iVar13;\n}" (primitive_type "int") (function_declarator "FUN_00018118(int *param_1,int param_2)" (identifier "FUN_00018118") (parameter_list "(int *param_1,int param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  code *pcVar5;\n  code *pcVar6;\n  code *pcVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int iVar11;\n  undefined2 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int local_6c;\n  uint local_5c;\n  undefined1 *local_58;\n  int local_54;\n  uint local_50;\n  int local_40;\n  \n  iVar20 = *param_1;\n  iVar13 = *(int *)(iVar20 + 0xc);\n  if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }\n  local_40 = (*(code *)PTR_dirfd_000323dc)();\n  if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }\n  uVar14 = param_1[0xc];\n  if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }\nLAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);\n  uVar19 = uVar18;\n  local_50 = uVar18 - 1;\n  if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }\n  if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }\n  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;\n  iVar24 = *(int *)(iVar20 + 0x30);\n  iVar23 = 0;\n  iVar17 = 0;\n  bVar2 = false;\n  local_54 = 0;\n  local_6c = 0;\n  pcVar5 = (code *)(PTR_00032104 + 0x72c0);\n  pcVar6 = (code *)(PTR_00032104 + 0x746c);\n  pcVar7 = (code *)(PTR_00032104 + 0x7820);\n  uVar14 = param_1[9] - uVar19;\n  iVar21 = *(int *)(iVar20 + 0xc);\n  while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }\n  if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }\n  if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }\n  if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }\n  if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }\nLAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }\n  if (param_1[0xb] == 0) {\n    return local_6c;\n  }\n  if (iVar17 == 1) {\n    return local_6c;\n  }\n  iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n  return iVar13;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "code *pcVar5;" (type_identifier "code") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "code *pcVar7;" (type_identifier "code") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined2 uVar12;" (type_identifier "undefined2") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "int local_6c;" (primitive_type "int") (identifier "local_6c") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "undefined1 *local_58;" (type_identifier "undefined1") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (expression_statement "iVar20 = *param_1;" (assignment_expression "iVar20 = *param_1" (identifier "iVar20") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar13 = *(int *)(iVar20 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar20 + 0xc)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar20 + 0xc)" (* "*") (cast_expression "(int *)(iVar20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar13 == 0) {\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar14 = param_1[0xc];\n    if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }\n    uVar19 = uVar14 & 0x10;\n    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }\n    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);\n    if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }\n    *(undefined4 *)(iVar20 + 0xc) = 0;\njoined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;\n    if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }\n    return 0;\n  }" ({ "{") (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" (identifier "uVar14") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if ((uVar14 & 0x204) == 0x200) {\n      iVar17 = param_1[8];\n    }\n    else {\n      iVar17 = -100;\n    }" (if "if") (parenthesized_expression "((uVar14 & 0x204) == 0x200)" (( "(") (binary_expression "(uVar14 & 0x204) == 0x200" (parenthesized_expression "(uVar14 & 0x204)" (( "(") (binary_expression "uVar14 & 0x204" (identifier "uVar14") (& "&") (number_literal "0x204")) () ")")) (== "==") (number_literal "0x200")) () ")")) (compound_statement "{\n      iVar17 = param_1[8];\n    }" ({ "{") (expression_statement "iVar17 = param_1[8];" (assignment_expression "iVar17 = param_1[8]" (identifier "iVar17") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      iVar17 = -100;\n    }" (else "else") (compound_statement "{\n      iVar17 = -100;\n    }" ({ "{") (expression_statement "iVar17 = -100;" (assignment_expression "iVar17 = -100" (identifier "iVar17") (= "=") (number_literal "-100")) (; ";")) (} "}")))) (expression_statement "uVar19 = uVar14 & 0x10;" (assignment_expression "uVar19 = uVar14 & 0x10" (identifier "uVar19") (= "=") (binary_expression "uVar14 & 0x10" (identifier "uVar14") (& "&") (number_literal "0x10"))) (; ";")) (if_statement "if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {\n      uVar19 = 0x20000;\n    }" (if "if") (parenthesized_expression "(((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0))" (( "(") (binary_expression "((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&\n       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)" (parenthesized_expression "((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0))" (( "(") (binary_expression "(uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)" (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar19 = 0x20000, (uVar14 & 1) != 0)" (( "(") (comma_expression "uVar19 = 0x20000, (uVar14 & 1) != 0" (assignment_expression "uVar19 = 0x20000" (identifier "uVar19") (= "=") (number_literal "0x20000")) (, ",") (binary_expression "(uVar14 & 1) != 0" (parenthesized_expression "(uVar14 & 1)" (( "(") (binary_expression "uVar14 & 1" (identifier "uVar14") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)" (( "(") (comma_expression "uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0" (assignment_expression "uVar19 = *(uint *)(iVar20 + 0x30)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(iVar20 + 0x30)" (* "*") (cast_expression "(uint *)(iVar20 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x30)" (( "(") (binary_expression "iVar20 + 0x30" (identifier "iVar20") (+ "+") (number_literal "0x30")) () ")"))))) (, ",") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      uVar19 = 0x20000;\n    }" ({ "{") (expression_statement "uVar19 = 0x20000;" (assignment_expression "uVar19 = 0x20000" (identifier "uVar19") (= "=") (number_literal "0x20000")) (; ";")) (} "}"))) (expression_statement "local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);" (assignment_expression "local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880)" (identifier "local_40") (= "=") (call_expression "openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880)" (identifier "openat_safer") (argument_list "(iVar17,*(undefined4 *)(iVar20 + 0x18),\n                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880)" (( "(") (identifier "iVar17") (, ",") (pointer_expression "*(undefined4 *)(iVar20 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x18)" (( "(") (binary_expression "iVar20 + 0x18" (identifier "iVar20") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (binary_expression "(uVar14 & 0x800) << 7 | uVar19 | 0x90880" (binary_expression "(uVar14 & 0x800) << 7 | uVar19" (binary_expression "(uVar14 & 0x800) << 7" (parenthesized_expression "(uVar14 & 0x800)" (( "(") (binary_expression "uVar14 & 0x800" (identifier "uVar14") (& "&") (number_literal "0x800")) () ")")) (<< "<<") (number_literal "7")) (| "|") (identifier "uVar19")) (| "|") (number_literal "0x90880")) () ")")))) (; ";")) (if_statement "if (-1 < local_40) {\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }" (if "if") (parenthesized_expression "(-1 < local_40)" (( "(") (binary_expression "-1 < local_40" (number_literal "-1") (< "<") (identifier "local_40")) () ")")) (compound_statement "{\n      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);\n      if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }\n      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n      uVar15 = *puVar9;\n      (*(code *)PTR_close_000322b0)(local_40);\n      *puVar9 = uVar15;\n    }" ({ "{") (expression_statement "iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);" (assignment_expression "iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40)" (identifier "iVar17") (= "=") (call_expression "(*(code *)PTR_fdopendir_000322f4)(local_40)" (parenthesized_expression "(*(code *)PTR_fdopendir_000322f4)" (( "(") (pointer_expression "*(code *)PTR_fdopendir_000322f4" (* "*") (cast_expression "(code *)PTR_fdopendir_000322f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fdopendir_000322f4"))) () ")")) (argument_list "(local_40)" (( "(") (identifier "local_40") () ")")))) (; ";")) (if_statement "if (iVar17 != 0) {\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar20 + 0xc) = iVar17;\n        if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }\n        if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }\n        if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }\n        if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }\n        if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }\n        goto LAB_000181a0;\n      }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xc) = iVar17;" (assignment_expression "*(int *)(iVar20 + 0xc) = iVar17" (pointer_expression "*(int *)(iVar20 + 0xc)" (* "*") (cast_expression "(int *)(iVar20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (if_statement "if (*(short *)(iVar20 + 0x3c) == 0xb) {\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }\n        else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" (if "if") (parenthesized_expression "(*(short *)(iVar20 + 0x3c) == 0xb)" (( "(") (binary_expression "*(short *)(iVar20 + 0x3c) == 0xb" (pointer_expression "*(short *)(iVar20 + 0x3c)" (* "*") (cast_expression "(short *)(iVar20 + 0x3c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\n          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n        }" ({ "{") (expression_statement "uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);" (assignment_expression "uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0)" (identifier "uVar12") (= "=") (call_expression "FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0)" (identifier "FUN_00017820") (argument_list "(param_1[8],param_1 + 0xc,iVar20,0)" (( "(") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (, ",") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar20") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = uVar12;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = uVar12" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar20 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (} "}")) (else_clause "else if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" (else "else") (if_statement "if ((param_1[0xc] & 0x100U) != 0) {\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" (if "if") (parenthesized_expression "((param_1[0xc] & 0x100U) != 0)" (( "(") (binary_expression "(param_1[0xc] & 0x100U) != 0" (parenthesized_expression "(param_1[0xc] & 0x100U)" (( "(") (binary_expression "param_1[0xc] & 0x100U" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (& "&") (number_literal "0x100U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);\n          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);\n          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);\n          if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }\n        }" ({ "{") (expression_statement "FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);" (call_expression "FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20)" (identifier "FUN_00017fe4") (argument_list "(param_1[0xc],param_1 + 0xe,iVar20)" (( "(") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (, ",") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) (, ",") (identifier "iVar20") () ")"))) (; ";")) (expression_statement "FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);" (call_expression "FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0)" (identifier "FUN_00017820") (argument_list "(param_1[8],param_1 + 0xc,iVar20,0)" (( "(") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (, ",") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar20") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);" (assignment_expression "iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20)" (identifier "iVar17") (= "=") (call_expression "FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20)" (identifier "FUN_00017eb0") (argument_list "(param_1[0xc],param_1 + 0xe,iVar20)" (( "(") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (, ",") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) (, ",") (identifier "iVar20") () ")")))) (; ";")) (if_statement "if (iVar17 == 0) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *puVar9 = 0xc;\n            return 0;\n          }" ({ "{") (expression_statement "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00032328" (* "*") (cast_expression "(code *)PTR___errno_location_00032328" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00032328"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar9 = 0xc;" (assignment_expression "*puVar9 = 0xc" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "0xc")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))))) (if_statement "if (param_1[0xb] == 0) {\n          local_5c = 100000;\n        }\n        else {\n          local_5c = 0xffffffff;\n        }" (if "if") (parenthesized_expression "(param_1[0xb] == 0)" (( "(") (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_5c = 100000;\n        }" ({ "{") (expression_statement "local_5c = 100000;" (assignment_expression "local_5c = 100000" (identifier "local_5c") (= "=") (number_literal "100000")) (; ";")) (} "}")) (else_clause "else {\n          local_5c = 0xffffffff;\n        }" (else "else") (compound_statement "{\n          local_5c = 0xffffffff;\n        }" ({ "{") (expression_statement "local_5c = 0xffffffff;" (assignment_expression "local_5c = 0xffffffff" (identifier "local_5c") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (if_statement "if (param_2 == 2) {\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }" (if "if") (parenthesized_expression "(param_2 == 2)" (( "(") (binary_expression "param_2 == 2" (identifier "param_2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\nLAB_000189a4:\n          uVar14 = param_1[0xc];\n          bVar1 = false;\n          goto LAB_000181a0;\n        }" ({ "{") (labeled_statement "LAB_000189a4:\n          uVar14 = param_1[0xc];" (statement_identifier "LAB_000189a4") (: ":") (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" (identifier "uVar14") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";"))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_000181a0;" (goto "goto") (statement_identifier "LAB_000181a0") (; ";")) (} "}"))) (if_statement "if ((param_1[0xc] & 0x38U) == 0x18) {\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }\n        else {\nLAB_0001873c:\n          bVar1 = true;\n        }" (if "if") (parenthesized_expression "((param_1[0xc] & 0x38U) == 0x18)" (( "(") (binary_expression "(param_1[0xc] & 0x38U) == 0x18" (parenthesized_expression "(param_1[0xc] & 0x38U)" (( "(") (binary_expression "param_1[0xc] & 0x38U" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (& "&") (number_literal "0x38U")) () ")")) (== "==") (number_literal "0x18")) () ")")) (compound_statement "{\n          bVar1 = true;\n          if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }\n        }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (if_statement "if (*(int *)(iVar20 + 100) == 2) {\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 100) == 2)" (( "(") (binary_expression "*(int *)(iVar20 + 100) == 2" (pointer_expression "*(int *)(iVar20 + 100)" (* "*") (cast_expression "(int *)(iVar20 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 100)" (( "(") (binary_expression "iVar20 + 100" (identifier "iVar20") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            iVar17 = FUN_00017604(iVar20,local_40);\n            if (iVar17 == 0) goto LAB_0001873c;\n            bVar1 = false;\n            if (param_2 != 3) goto LAB_000189a4;\n          }" ({ "{") (expression_statement "iVar17 = FUN_00017604(iVar20,local_40);" (assignment_expression "iVar17 = FUN_00017604(iVar20,local_40)" (identifier "iVar17") (= "=") (call_expression "FUN_00017604(iVar20,local_40)" (identifier "FUN_00017604") (argument_list "(iVar20,local_40)" (( "(") (identifier "iVar20") (, ",") (identifier "local_40") () ")")))) (; ";")) (if_statement "if (iVar17 == 0) goto LAB_0001873c;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001873c;" (goto "goto") (statement_identifier "LAB_0001873c") (; ";"))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (if_statement "if (param_2 != 3) goto LAB_000189a4;" (if "if") (parenthesized_expression "(param_2 != 3)" (( "(") (binary_expression "param_2 != 3" (identifier "param_2") (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_000189a4;" (goto "goto") (statement_identifier "LAB_000189a4") (; ";"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_0001873c:\n          bVar1 = true;\n        }" (else "else") (compound_statement "{\nLAB_0001873c:\n          bVar1 = true;\n        }" ({ "{") (labeled_statement "LAB_0001873c:\n          bVar1 = true;" (statement_identifier "LAB_0001873c") (: ":") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";"))) (} "}")))) (if_statement "if ((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }\n        else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }" (if "if") (parenthesized_expression "((((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0))" (( "(") (binary_expression "(((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&\n           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)" (parenthesized_expression "(((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40))" (( "(") (binary_expression "((param_1[0xc] & 0x200U) == 0) ||\n            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)" (parenthesized_expression "((param_1[0xc] & 0x200U) == 0)" (( "(") (binary_expression "(param_1[0xc] & 0x200U) == 0" (parenthesized_expression "(param_1[0xc] & 0x200U)" (( "(") (binary_expression "param_1[0xc] & 0x200U" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (& "&") (number_literal "0x200U")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)" (( "(") (comma_expression "local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40" (assignment_expression "local_40 = rpl_fcntl(local_40,0x406,3)" (identifier "local_40") (= "=") (call_expression "rpl_fcntl(local_40,0x406,3)" (identifier "rpl_fcntl") (argument_list "(local_40,0x406,3)" (( "(") (identifier "local_40") (, ",") (number_literal "0x406") (, ",") (number_literal "3") () ")")))) (, ",") (binary_expression "-1 < local_40" (number_literal "-1") (< "<") (identifier "local_40"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)" (( "(") (comma_expression "iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0" (assignment_expression "iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0)" (identifier "iVar17") (= "=") (call_expression "FUN_00017c2c(param_1,iVar20,local_40,0)" (identifier "FUN_00017c2c") (argument_list "(param_1,iVar20,local_40,0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar20") (, ",") (identifier "local_40") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          uVar14 = param_1[0xc];\n          bVar1 = true;\n        }" ({ "{") (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" (identifier "uVar14") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }" (else "else") (compound_statement "{\n          if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }\n          puVar3 = PTR_closedir_000322ac;\n          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;\n          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));\n          uVar14 = param_1[0xc];\n          *(undefined4 *)(iVar20 + 0xc) = 0;\n          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }\n        }" ({ "{") (if_statement "if ((bVar1) && (param_2 == 3)) {\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }" (if "if") (parenthesized_expression "((bVar1) && (param_2 == 3))" (( "(") (binary_expression "(bVar1) && (param_2 == 3)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (&& "&&") (parenthesized_expression "(param_2 == 3)" (( "(") (binary_expression "param_2 == 3" (identifier "param_2") (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();\n            *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n          }" ({ "{") (expression_statement "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00032328" (* "*") (cast_expression "(code *)PTR___errno_location_00032328" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00032328"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0x20) = *puVar9;" (assignment_expression "*(undefined4 *)(iVar20 + 0x20) = *puVar9" (pointer_expression "*(undefined4 *)(iVar20 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (} "}"))) (expression_statement "puVar3 = PTR_closedir_000322ac;" (assignment_expression "puVar3 = PTR_closedir_000322ac" (identifier "puVar3") (= "=") (identifier "PTR_closedir_000322ac")) (; ";")) (expression_statement "*(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;" (assignment_expression "*(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar20 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar20 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3e)" (( "(") (binary_expression "iVar20 + 0x3e" (identifier "iVar20") (+ "+") (number_literal "0x3e")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar20 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar20 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar20 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3e)" (( "(") (binary_expression "iVar20 + 0x3e" (identifier "iVar20") (+ "+") (number_literal "0x3e")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)puVar3)" (( "(") (pointer_expression "*(code *)puVar3" (* "*") (cast_expression "(code *)puVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")")) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" (identifier "uVar14") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }\n          else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }" (if "if") (parenthesized_expression "(((uVar14 & 0x200) == 0) || (local_40 < 0))" (( "(") (binary_expression "((uVar14 & 0x200) == 0) || (local_40 < 0)" (parenthesized_expression "((uVar14 & 0x200) == 0)" (( "(") (binary_expression "(uVar14 & 0x200) == 0" (parenthesized_expression "(uVar14 & 0x200)" (( "(") (binary_expression "uVar14 & 0x200" (identifier "uVar14") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_40 < 0)" (( "(") (binary_expression "local_40 < 0" (identifier "local_40") (< "<") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n            bVar1 = false;\n          }" ({ "{") (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }" (else "else") (compound_statement "{\n            (*(code *)PTR_close_000322b0)(local_40);\n            uVar14 = param_1[0xc];\n            bVar1 = false;\n            *(undefined4 *)(iVar20 + 0xc) = 0;\n          }" ({ "{") (expression_statement "(*(code *)PTR_close_000322b0)(local_40);" (call_expression "(*(code *)PTR_close_000322b0)(local_40)" (parenthesized_expression "(*(code *)PTR_close_000322b0)" (( "(") (pointer_expression "*(code *)PTR_close_000322b0" (* "*") (cast_expression "(code *)PTR_close_000322b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_000322b0"))) () ")")) (argument_list "(local_40)" (( "(") (identifier "local_40") () ")"))) (; ";")) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" (identifier "uVar14") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (goto_statement "goto LAB_000181a0;" (goto "goto") (statement_identifier "LAB_000181a0") (; ";")) (} "}"))) (expression_statement "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)()" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00032328)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00032328" (* "*") (cast_expression "(code *)PTR___errno_location_00032328" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00032328"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar15 = *puVar9;" (assignment_expression "uVar15 = *puVar9" (identifier "uVar15") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "(*(code *)PTR_close_000322b0)(local_40);" (call_expression "(*(code *)PTR_close_000322b0)(local_40)" (parenthesized_expression "(*(code *)PTR_close_000322b0)" (( "(") (pointer_expression "*(code *)PTR_close_000322b0" (* "*") (cast_expression "(code *)PTR_close_000322b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_000322b0"))) () ")")) (argument_list "(local_40)" (( "(") (identifier "local_40") () ")"))) (; ";")) (expression_statement "*puVar9 = uVar15;" (assignment_expression "*puVar9 = uVar15" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "uVar15")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "joined_r0x00018a30:\n    puVar3 = PTR___errno_location_00032328;" (statement_identifier "joined_r0x00018a30") (: ":") (expression_statement "puVar3 = PTR___errno_location_00032328;" (assignment_expression "puVar3 = PTR___errno_location_00032328" (identifier "puVar3") (= "=") (identifier "PTR___errno_location_00032328")) (; ";"))) (if_statement "if (param_2 == 3) {\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_2 == 3)" (( "(") (binary_expression "param_2 == 3" (identifier "param_2") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      *(undefined2 *)(iVar20 + 0x3c) = 4;\n      puVar9 = (undefined4 *)(*(code *)puVar3)();\n      *(undefined4 *)(iVar20 + 0x20) = *puVar9;\n      return 0;\n    }" ({ "{") (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 4;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 4" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar20 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "puVar9 = (undefined4 *)(*(code *)puVar3)();" (assignment_expression "puVar9 = (undefined4 *)(*(code *)puVar3)()" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(*(code *)puVar3)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar3)()" (parenthesized_expression "(*(code *)puVar3)" (( "(") (pointer_expression "*(code *)puVar3" (* "*") (cast_expression "(code *)puVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0x20) = *puVar9;" (assignment_expression "*(undefined4 *)(iVar20 + 0x20) = *puVar9" (pointer_expression "*(undefined4 *)(iVar20 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_40 = (*(code *)PTR_dirfd_000323dc)();" (assignment_expression "local_40 = (*(code *)PTR_dirfd_000323dc)()" (identifier "local_40") (= "=") (call_expression "(*(code *)PTR_dirfd_000323dc)()" (parenthesized_expression "(*(code *)PTR_dirfd_000323dc)" (( "(") (pointer_expression "*(code *)PTR_dirfd_000323dc" (* "*") (cast_expression "(code *)PTR_dirfd_000323dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dirfd_000323dc"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_40 < 0) {\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }" (if "if") (parenthesized_expression "(local_40 < 0)" (( "(") (binary_expression "local_40 < 0" (identifier "local_40") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n    *(undefined4 *)(iVar20 + 0xc) = 0;\n    goto joined_r0x00018a30;\n  }" ({ "{") (expression_statement "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" (( "(") (pointer_expression "*(code *)PTR_closedir_000322ac" (* "*") (cast_expression "(code *)PTR_closedir_000322ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_closedir_000322ac"))) () ")")) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto joined_r0x00018a30;" (goto "goto") (statement_identifier "joined_r0x00018a30") (; ";")) (} "}"))) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" (identifier "uVar14") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if (param_1[0xb] == 0) {\n    bVar1 = true;\n    local_5c = 100000;\n  }\n  else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" (if "if") (parenthesized_expression "(param_1[0xb] == 0)" (( "(") (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar1 = true;\n    local_5c = 100000;\n  }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (expression_statement "local_5c = 100000;" (assignment_expression "local_5c = 100000" (identifier "local_5c") (= "=") (number_literal "100000")) (; ";")) (} "}")) (else_clause "else {\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" (else "else") (compound_statement "{\n    local_5c = 0xffffffff;\n    bVar1 = true;\n  }" ({ "{") (expression_statement "local_5c = 0xffffffff;" (assignment_expression "local_5c = 0xffffffff" (identifier "local_5c") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (} "}")))) (labeled_statement "LAB_000181a0:\n  uVar18 = *(uint *)(iVar20 + 0x28);" (statement_identifier "LAB_000181a0") (: ":") (expression_statement "uVar18 = *(uint *)(iVar20 + 0x28);" (assignment_expression "uVar18 = *(uint *)(iVar20 + 0x28)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar20 + 0x28)" (* "*") (cast_expression "(uint *)(iVar20 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x28)" (( "(") (binary_expression "iVar20 + 0x28" (identifier "iVar20") (+ "+") (number_literal "0x28")) () ")"))))) (; ";"))) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" (identifier "uVar19") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "local_50 = uVar18 - 1;" (assignment_expression "local_50 = uVar18 - 1" (identifier "local_50") (= "=") (binary_expression "uVar18 - 1" (identifier "uVar18") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/')" (( "(") (binary_expression "*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/'" (pointer_expression "*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1))" (* "*") (cast_expression "(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar20 + 0x1c) + (uVar18 - 1))" (( "(") (binary_expression "*(int *)(iVar20 + 0x1c) + (uVar18 - 1)" (pointer_expression "*(int *)(iVar20 + 0x1c)" (* "*") (cast_expression "(int *)(iVar20 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1c)" (( "(") (binary_expression "iVar20 + 0x1c" (identifier "iVar20") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (parenthesized_expression "(uVar18 - 1)" (( "(") (binary_expression "uVar18 - 1" (identifier "uVar18") (- "-") (number_literal "1")) () ")"))) () ")")))) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n    uVar19 = uVar18 + 1;\n    local_50 = uVar18;\n  }" ({ "{") (expression_statement "uVar19 = uVar18 + 1;" (assignment_expression "uVar19 = uVar18 + 1" (identifier "uVar19") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_50 = uVar18;" (assignment_expression "local_50 = uVar18" (identifier "local_50") (= "=") (identifier "uVar18")) (; ";")) (} "}"))) (if_statement "if ((uVar14 & 4) == 0) {\n    local_58 = (undefined1 *)0x0;\n  }\n  else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }" (if "if") (parenthesized_expression "((uVar14 & 4) == 0)" (( "(") (binary_expression "(uVar14 & 4) == 0" (parenthesized_expression "(uVar14 & 4)" (( "(") (binary_expression "uVar14 & 4" (identifier "uVar14") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_58 = (undefined1 *)0x0;\n  }" ({ "{") (expression_statement "local_58 = (undefined1 *)0x0;" (assignment_expression "local_58 = (undefined1 *)0x0" (identifier "local_58") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }" (else "else") (compound_statement "{\n    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;\n    *(undefined1 *)(param_1[6] + local_50) = 0x2f;\n  }" ({ "{") (expression_statement "local_58 = (undefined1 *)(param_1[6] + local_50) + 1;" (assignment_expression "local_58 = (undefined1 *)(param_1[6] + local_50) + 1" (identifier "local_58") (= "=") (binary_expression "(undefined1 *)(param_1[6] + local_50) + 1" (cast_expression "(undefined1 *)(param_1[6] + local_50)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[6] + local_50)" (( "(") (binary_expression "param_1[6] + local_50" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "local_50")) () ")"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)(param_1[6] + local_50) = 0x2f;" (assignment_expression "*(undefined1 *)(param_1[6] + local_50) = 0x2f" (pointer_expression "*(undefined1 *)(param_1[6] + local_50)" (* "*") (cast_expression "(undefined1 *)(param_1[6] + local_50)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[6] + local_50)" (( "(") (binary_expression "param_1[6] + local_50" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "local_50")) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (} "}")))) (expression_statement "puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;" (assignment_expression "puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108" (identifier "puVar3") (= "=") (identifier "PTR_s_a_diagnostic_for_every_file_proc_00032108")) (; ";")) (expression_statement "iVar24 = *(int *)(iVar20 + 0x30);" (assignment_expression "iVar24 = *(int *)(iVar20 + 0x30)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(iVar20 + 0x30)" (* "*") (cast_expression "(int *)(iVar20 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x30)" (( "(") (binary_expression "iVar20 + 0x30" (identifier "iVar20") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" (identifier "local_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar5 = (code *)(PTR_00032104 + 0x72c0);" (assignment_expression "pcVar5 = (code *)(PTR_00032104 + 0x72c0)" (identifier "pcVar5") (= "=") (cast_expression "(code *)(PTR_00032104 + 0x72c0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_00032104 + 0x72c0)" (( "(") (binary_expression "PTR_00032104 + 0x72c0" (identifier "PTR_00032104") (+ "+") (number_literal "0x72c0")) () ")")))) (; ";")) (expression_statement "pcVar6 = (code *)(PTR_00032104 + 0x746c);" (assignment_expression "pcVar6 = (code *)(PTR_00032104 + 0x746c)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(PTR_00032104 + 0x746c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_00032104 + 0x746c)" (( "(") (binary_expression "PTR_00032104 + 0x746c" (identifier "PTR_00032104") (+ "+") (number_literal "0x746c")) () ")")))) (; ";")) (expression_statement "pcVar7 = (code *)(PTR_00032104 + 0x7820);" (assignment_expression "pcVar7 = (code *)(PTR_00032104 + 0x7820)" (identifier "pcVar7") (= "=") (cast_expression "(code *)(PTR_00032104 + 0x7820)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_00032104 + 0x7820)" (( "(") (binary_expression "PTR_00032104 + 0x7820" (identifier "PTR_00032104") (+ "+") (number_literal "0x7820")) () ")")))) (; ";")) (expression_statement "uVar14 = param_1[9] - uVar19;" (assignment_expression "uVar14 = param_1[9] - uVar19" (identifier "uVar14") (= "=") (binary_expression "param_1[9] - uVar19" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (- "-") (identifier "uVar19"))) (; ";")) (expression_statement "iVar21 = *(int *)(iVar20 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar20 + 0xc)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(iVar20 + 0xc)" (* "*") (cast_expression "(int *)(iVar20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (while_statement "while (iVar21 != 0) {\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }" (while "while") (parenthesized_expression "(iVar21 != 0)" (( "(") (binary_expression "iVar21 != 0" (identifier "iVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();\n    puVar4 = PTR_readdir64_000322e0;\n    *piVar8 = 0;\n    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);\n    if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }\n    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }\n    iVar21 = *(int *)(iVar20 + 0xc);\n  }" ({ "{") (expression_statement "piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();" (assignment_expression "piVar8 = (int *)(*(code *)PTR___errno_location_00032328)()" (identifier "piVar8") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_00032328)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00032328)()" (parenthesized_expression "(*(code *)PTR___errno_location_00032328)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00032328" (* "*") (cast_expression "(code *)PTR___errno_location_00032328" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00032328"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar4 = PTR_readdir64_000322e0;" (assignment_expression "puVar4 = PTR_readdir64_000322e0" (identifier "puVar4") (= "=") (identifier "PTR_readdir64_000322e0")) (; ";")) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);" (assignment_expression "puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(*(code *)puVar4)(iVar21)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar4)(iVar21)" (parenthesized_expression "(*(code *)puVar4)" (( "(") (pointer_expression "*(code *)puVar4" (* "*") (cast_expression "(code *)puVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")) (argument_list "(iVar21)" (( "(") (identifier "iVar21") () ")"))))) (; ";")) (if_statement "if (puVar9 == (undefined4 *)0x0) {\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }" (if "if") (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined4 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }\n      if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }\n      break;\n    }" ({ "{") (if_statement "if (*piVar8 != 0) {\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }" (if "if") (parenthesized_expression "(*piVar8 != 0)" (( "(") (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar20 + 0x20) = *piVar8;\n        uVar12 = 7;\n        if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }\n        *(undefined2 *)(iVar20 + 0x3c) = uVar12;\n      }" ({ "{") (expression_statement "*(int *)(iVar20 + 0x20) = *piVar8;" (assignment_expression "*(int *)(iVar20 + 0x20) = *piVar8" (pointer_expression "*(int *)(iVar20 + 0x20)" (* "*") (cast_expression "(int *)(iVar20 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "uVar12 = 7;" (assignment_expression "uVar12 = 7" (identifier "uVar12") (= "=") (number_literal "7")) (; ";")) (if_statement "if ((iVar13 == 0) && (iVar17 == 0)) {\n          uVar12 = 4;\n        }" (if "if") (parenthesized_expression "((iVar13 == 0) && (iVar17 == 0))" (( "(") (binary_expression "(iVar13 == 0) && (iVar17 == 0)" (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          uVar12 = 4;\n        }" ({ "{") (expression_statement "uVar12 = 4;" (assignment_expression "uVar12 = 4" (identifier "uVar12") (= "=") (number_literal "4")) (; ";")) (} "}"))) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = uVar12;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = uVar12" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar20 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar20 + 0xc) != 0) {\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(iVar20 + 0xc) != 0" (pointer_expression "*(int *)(iVar20 + 0xc)" (* "*") (cast_expression "(int *)(iVar20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_closedir_000322ac)();\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n      }" ({ "{") (expression_statement "(*(code *)PTR_closedir_000322ac)();" (call_expression "(*(code *)PTR_closedir_000322ac)()" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" (( "(") (pointer_expression "*(code *)PTR_closedir_000322ac" (* "*") (cast_expression "(code *)PTR_closedir_000322ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_closedir_000322ac"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }" (if "if") (parenthesized_expression "((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000))))" (( "(") (binary_expression "(((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||\n       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))" (parenthesized_expression "(((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.'))" (( "(") (binary_expression "((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')" (parenthesized_expression "((param_1[0xc] & 0x20U) != 0)" (( "(") (binary_expression "(param_1[0xc] & 0x20U) != 0" (parenthesized_expression "(param_1[0xc] & 0x20U)" (( "(") (binary_expression "param_1[0xc] & 0x20U" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (& "&") (number_literal "0x20U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)((int)puVar9 + 0x13) != '.')" (( "(") (binary_expression "*(char *)((int)puVar9 + 0x13) != '.'" (pointer_expression "*(char *)((int)puVar9 + 0x13)" (* "*") (cast_expression "(char *)((int)puVar9 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + 0x13)" (( "(") (binary_expression "(int)puVar9 + 0x13" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (number_literal "0x13")) () ")")))) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))" (( "(") (parenthesized_expression "(*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000))" (( "(") (binary_expression "*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)" (binary_expression "*(char *)(puVar9 + 5) != '\0'" (pointer_expression "*(char *)(puVar9 + 5)" (* "*") (cast_expression "(char *)(puVar9 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 5)" (( "(") (binary_expression "puVar9 + 5" (identifier "puVar9") (+ "+") (number_literal "5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "((puVar9[5] & 0xffff0000) != 0x2e000000)" (( "(") (binary_expression "(puVar9[5] & 0xffff0000) != 0x2e000000" (parenthesized_expression "(puVar9[5] & 0xffff0000)" (( "(") (binary_expression "puVar9[5] & 0xffff0000" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "0xffff0000")) () ")")) (!= "!=") (number_literal "0x2e000000")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);\n      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);\n      if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }\n      if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }\n      if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }\n      uVar10 = param_1[0xc];\n      uVar16 = puVar9[1];\n      uVar15 = *puVar9;\n      *(int *)(iVar21 + 4) = *param_1;\n      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;\n      *(int *)(iVar21 + 0x30) = iVar24 + 1;\n      *(undefined4 *)(iVar21 + 0x5c) = uVar16;\n      *(undefined4 *)(iVar21 + 0x58) = uVar15;\n      puVar4 = PTR_memmove_000323d8;\n      if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }\n      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }\n      *(undefined4 *)(iVar21 + 8) = 0;\n      iVar11 = iVar21;\n      if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }\n      local_6c = iVar11;\n      iVar23 = iVar21;\n      if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }\n    }" ({ "{") (expression_statement "uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);" (assignment_expression "uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13)" (identifier "uVar18") (= "=") (call_expression "(*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13)" (parenthesized_expression "(*(code *)PTR_strlen_00032344)" (( "(") (pointer_expression "*(code *)PTR_strlen_00032344" (* "*") (cast_expression "(code *)PTR_strlen_00032344" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00032344"))) () ")")) (argument_list "((int)puVar9 + 0x13)" (( "(") (binary_expression "(int)puVar9 + 0x13" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (number_literal "0x13")) () ")")))) (; ";")) (expression_statement "iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);" (assignment_expression "iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18)" (identifier "iVar21") (= "=") (call_expression "(*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18)" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(param_1,(int)puVar9 + 0x13,uVar18)" (( "(") (identifier "param_1") (, ",") (binary_expression "(int)puVar9 + 0x13" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (number_literal "0x13")) (, ",") (identifier "uVar18") () ")")))) (; ";")) (if_statement "if (iVar21 == 0) {\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000188cc:\n        iVar13 = *piVar8;\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = iVar13;\n        return 0;\n      }" ({ "{") (labeled_statement "LAB_000188cc:\n        iVar13 = *piVar8;" (statement_identifier "LAB_000188cc") (: ":") (expression_statement "iVar13 = *piVar8;" (assignment_expression "iVar13 = *piVar8" (identifier "iVar13") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";"))) (expression_statement "(*(code *)PTR_free_000323d4)(iVar21);" (call_expression "(*(code *)PTR_free_000323d4)(iVar21)" (parenthesized_expression "(*(code *)PTR_free_000323d4)" (( "(") (pointer_expression "*(code *)PTR_free_000323d4" (* "*") (cast_expression "(code *)PTR_free_000323d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000323d4"))) () ")")) (argument_list "(iVar21)" (( "(") (identifier "iVar21") () ")"))) (; ";")) (expression_statement "FUN_0001737c(local_6c);" (call_expression "FUN_0001737c(local_6c)" (identifier "FUN_0001737c") (argument_list "(local_6c)" (( "(") (identifier "local_6c") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" (( "(") (pointer_expression "*(code *)PTR_closedir_000322ac" (* "*") (cast_expression "(code *)PTR_closedir_000322ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_closedir_000322ac"))) () ")")) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" (identifier "uVar14") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar20 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "7")) (; ";")) (expression_statement "param_1[0xc] = uVar14 | 0x4000;" (assignment_expression "param_1[0xc] = uVar14 | 0x4000" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "uVar14 | 0x4000" (identifier "uVar14") (| "|") (number_literal "0x4000"))) (; ";")) (expression_statement "*piVar8 = iVar13;" (assignment_expression "*piVar8 = iVar13" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (identifier "iVar13")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (uVar14 <= uVar18) {\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }" (if "if") (parenthesized_expression "(uVar14 <= uVar18)" (( "(") (binary_expression "uVar14 <= uVar18" (identifier "uVar14") (<= "<=") (identifier "uVar18")) () ")")) (compound_statement "{\n        iVar22 = param_1[6];\n        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);\n        if (iVar11 == 0) goto LAB_000188cc;\n        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }\n        uVar14 = param_1[9] - uVar19;\n      }" ({ "{") (expression_statement "iVar22 = param_1[6];" (assignment_expression "iVar22 = param_1[6]" (identifier "iVar22") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);" (assignment_expression "iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18)" (identifier "iVar11") (= "=") (call_expression "FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18)" (identifier "FUN_00017a58") (argument_list "(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18)" (( "(") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6")) (, ",") (binary_expression "param_1 + 9" (identifier "param_1") (+ "+") (number_literal "9")) (, ",") (binary_expression "local_50 + 2 + uVar18" (binary_expression "local_50 + 2" (identifier "local_50") (+ "+") (number_literal "2")) (+ "+") (identifier "uVar18")) () ")")))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_000188cc;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000188cc;" (goto "goto") (statement_identifier "LAB_000188cc") (; ";"))) (if_statement "if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }" (if "if") (parenthesized_expression "((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0))" (( "(") (binary_expression "(param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)" (parenthesized_expression "(param_1[6] != iVar22)" (( "(") (binary_expression "param_1[6] != iVar22" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (!= "!=") (identifier "iVar22")) () ")")) (&& "&&") (parenthesized_expression "(local_54 = iVar11, (param_1[0xc] & 4U) != 0)" (( "(") (comma_expression "local_54 = iVar11, (param_1[0xc] & 4U) != 0" (assignment_expression "local_54 = iVar11" (identifier "local_54") (= "=") (identifier "iVar11")) (, ",") (binary_expression "(param_1[0xc] & 4U) != 0" (parenthesized_expression "(param_1[0xc] & 4U)" (( "(") (binary_expression "param_1[0xc] & 4U" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (& "&") (number_literal "4U")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          local_58 = (undefined1 *)(param_1[6] + uVar19);\n        }" ({ "{") (expression_statement "local_58 = (undefined1 *)(param_1[6] + uVar19);" (assignment_expression "local_58 = (undefined1 *)(param_1[6] + uVar19)" (identifier "local_58") (= "=") (cast_expression "(undefined1 *)(param_1[6] + uVar19)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[6] + uVar19)" (( "(") (binary_expression "param_1[6] + uVar19" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "uVar19")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar14 = param_1[9] - uVar19;" (assignment_expression "uVar14 = param_1[9] - uVar19" (identifier "uVar14") (= "=") (binary_expression "param_1[9] - uVar19" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (- "-") (identifier "uVar19"))) (; ";")) (} "}"))) (if_statement "if (uVar18 + uVar19 < uVar19) {\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }" (if "if") (parenthesized_expression "(uVar18 + uVar19 < uVar19)" (( "(") (binary_expression "uVar18 + uVar19 < uVar19" (binary_expression "uVar18 + uVar19" (identifier "uVar18") (+ "+") (identifier "uVar19")) (< "<") (identifier "uVar19")) () ")")) (compound_statement "{\n        (*(code *)PTR_free_000323d4)(iVar21);\n        FUN_0001737c(local_6c);\n        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));\n        uVar14 = param_1[0xc];\n        *(undefined4 *)(iVar20 + 0xc) = 0;\n        *(undefined2 *)(iVar20 + 0x3c) = 7;\n        param_1[0xc] = uVar14 | 0x4000;\n        *piVar8 = 0x4e;\n        return 0;\n      }" ({ "{") (expression_statement "(*(code *)PTR_free_000323d4)(iVar21);" (call_expression "(*(code *)PTR_free_000323d4)(iVar21)" (parenthesized_expression "(*(code *)PTR_free_000323d4)" (( "(") (pointer_expression "*(code *)PTR_free_000323d4" (* "*") (cast_expression "(code *)PTR_free_000323d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000323d4"))) () ")")) (argument_list "(iVar21)" (( "(") (identifier "iVar21") () ")"))) (; ";")) (expression_statement "FUN_0001737c(local_6c);" (call_expression "FUN_0001737c(local_6c)" (identifier "FUN_0001737c") (argument_list "(local_6c)" (( "(") (identifier "local_6c") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));" (call_expression "(*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc))" (parenthesized_expression "(*(code *)PTR_closedir_000322ac)" (( "(") (pointer_expression "*(code *)PTR_closedir_000322ac" (* "*") (cast_expression "(code *)PTR_closedir_000322ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_closedir_000322ac"))) () ")")) (argument_list "(*(undefined4 *)(iVar20 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" (identifier "uVar14") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar20 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "7")) (; ";")) (expression_statement "param_1[0xc] = uVar14 | 0x4000;" (assignment_expression "param_1[0xc] = uVar14 | 0x4000" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "uVar14 | 0x4000" (identifier "uVar14") (| "|") (number_literal "0x4000"))) (; ";")) (expression_statement "*piVar8 = 0x4e;" (assignment_expression "*piVar8 = 0x4e" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x4e")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar10 = param_1[0xc];" (assignment_expression "uVar10 = param_1[0xc]" (identifier "uVar10") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "uVar16 = puVar9[1];" (assignment_expression "uVar16 = puVar9[1]" (identifier "uVar16") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15 = *puVar9;" (assignment_expression "uVar15 = *puVar9" (identifier "uVar15") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "*(int *)(iVar21 + 4) = *param_1;" (assignment_expression "*(int *)(iVar21 + 4) = *param_1" (pointer_expression "*(int *)(iVar21 + 4)" (* "*") (cast_expression "(int *)(iVar21 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 4)" (( "(") (binary_expression "iVar21 + 4" (identifier "iVar21") (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*(uint *)(iVar21 + 0x28) = uVar18 + uVar19;" (assignment_expression "*(uint *)(iVar21 + 0x28) = uVar18 + uVar19" (pointer_expression "*(uint *)(iVar21 + 0x28)" (* "*") (cast_expression "(uint *)(iVar21 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x28)" (( "(") (binary_expression "iVar21 + 0x28" (identifier "iVar21") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "uVar18 + uVar19" (identifier "uVar18") (+ "+") (identifier "uVar19"))) (; ";")) (expression_statement "*(int *)(iVar21 + 0x30) = iVar24 + 1;" (assignment_expression "*(int *)(iVar21 + 0x30) = iVar24 + 1" (pointer_expression "*(int *)(iVar21 + 0x30)" (* "*") (cast_expression "(int *)(iVar21 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x30)" (( "(") (binary_expression "iVar21 + 0x30" (identifier "iVar21") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar21 + 0x5c) = uVar16;" (assignment_expression "*(undefined4 *)(iVar21 + 0x5c) = uVar16" (pointer_expression "*(undefined4 *)(iVar21 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x5c)" (( "(") (binary_expression "iVar21 + 0x5c" (identifier "iVar21") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(undefined4 *)(iVar21 + 0x58) = uVar15;" (assignment_expression "*(undefined4 *)(iVar21 + 0x58) = uVar15" (pointer_expression "*(undefined4 *)(iVar21 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x58)" (( "(") (binary_expression "iVar21 + 0x58" (identifier "iVar21") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar4 = PTR_memmove_000323d8;" (assignment_expression "puVar4 = PTR_memmove_000323d8" (identifier "puVar4") (= "=") (identifier "PTR_memmove_000323d8")) (; ";")) (if_statement "if ((uVar10 & 4) == 0) {\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }\n      else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }" (if "if") (parenthesized_expression "((uVar10 & 4) == 0)" (( "(") (binary_expression "(uVar10 & 4) == 0" (parenthesized_expression "(uVar10 & 4)" (( "(") (binary_expression "uVar10 & 4" (identifier "uVar10") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;\n      }" ({ "{") (expression_statement "*(int *)(iVar21 + 0x18) = iVar21 + 0xe8;" (assignment_expression "*(int *)(iVar21 + 0x18) = iVar21 + 0xe8" (pointer_expression "*(int *)(iVar21 + 0x18)" (* "*") (cast_expression "(int *)(iVar21 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x18)" (( "(") (binary_expression "iVar21 + 0x18" (identifier "iVar21") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "iVar21 + 0xe8" (identifier "iVar21") (+ "+") (number_literal "0xe8"))) (; ";")) (} "}")) (else_clause "else {\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }" (else "else") (compound_statement "{\n        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);\n        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);\n        uVar10 = param_1[0xc];\n      }" ({ "{") (expression_statement "*(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);" (assignment_expression "*(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c)" (pointer_expression "*(undefined4 *)(iVar21 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x18)" (( "(") (binary_expression "iVar21 + 0x18" (identifier "iVar21") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar21 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x1c)" (( "(") (binary_expression "iVar21 + 0x1c" (identifier "iVar21") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "(*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);" (call_expression "(*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1)" (parenthesized_expression "(*(code *)puVar4)" (( "(") (pointer_expression "*(code *)puVar4" (* "*") (cast_expression "(code *)puVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")) (argument_list "(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1)" (( "(") (identifier "local_58") (, ",") (binary_expression "iVar21 + 0xe8" (identifier "iVar21") (+ "+") (number_literal "0xe8")) (, ",") (binary_expression "*(int *)(iVar21 + 0x34) + 1" (pointer_expression "*(int *)(iVar21 + 0x34)" (* "*") (cast_expression "(int *)(iVar21 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x34)" (( "(") (binary_expression "iVar21 + 0x34" (identifier "iVar21") (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "uVar10 = param_1[0xc];" (assignment_expression "uVar10 = param_1[0xc]" (identifier "uVar10") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (} "}")))) (if_statement "if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }\n      else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }" (if "if") (parenthesized_expression "((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0))" (( "(") (binary_expression "(param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)" (parenthesized_expression "(param_1[0xb] == 0)" (( "(") (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uVar10 & 0x400) != 0)" (( "(") (binary_expression "(uVar10 & 0x400) != 0" (parenthesized_expression "(uVar10 & 0x400)" (( "(") (binary_expression "uVar10 & 0x400" (identifier "uVar10") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);\n        if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }\n        *(undefined4 *)(iVar21 + 0x84) = uVar15;\n        *(undefined4 *)(iVar21 + 0x80) = 0;\n      }" ({ "{") (expression_statement "uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);" (assignment_expression "uVar18 = (uint)*(byte *)((int)puVar9 + 0x12)" (identifier "uVar18") (= "=") (binary_expression "(uint)*(byte *)((int)puVar9 + 0x12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)puVar9 + 0x12)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + 0x12)" (( "(") (binary_expression "(int)puVar9 + 0x12" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (if_statement "if ((uVar10 & 0x18) == 0x18) {\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }\n        else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }" (if "if") (parenthesized_expression "((uVar10 & 0x18) == 0x18)" (( "(") (binary_expression "(uVar10 & 0x18) == 0x18" (parenthesized_expression "(uVar10 & 0x18)" (( "(") (binary_expression "uVar10 & 0x18" (identifier "uVar10") (& "&") (number_literal "0x18")) () ")")) (== "==") (number_literal "0x18")) () ")")) (compound_statement "{\n          if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }\n          if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }\n        }" ({ "{") (if_statement "if (uVar18 == 0) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }" (if "if") (parenthesized_expression "(uVar18 == 0)" (( "(") (binary_expression "uVar18 == 0" (identifier "uVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018464;\n          }" ({ "{") (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar21 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x3c)" (( "(") (binary_expression "iVar21 + 0x3c" (identifier "iVar21") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0xb")) (; ";")) (goto_statement "goto LAB_00018464;" (goto "goto") (statement_identifier "LAB_00018464") (; ";")) (} "}"))) (if_statement "if (uVar18 == 4) {\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }" (if "if") (parenthesized_expression "(uVar18 == 4)" (( "(") (binary_expression "uVar18 == 4" (identifier "uVar18") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n            *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n            goto LAB_00018368;\n          }" ({ "{") (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar21 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x3c)" (( "(") (binary_expression "iVar21 + 0x3c" (identifier "iVar21") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0xb")) (; ";")) (goto_statement "goto LAB_00018368;" (goto "goto") (statement_identifier "LAB_00018368") (; ";")) (} "}"))) (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar21 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x3c)" (( "(") (binary_expression "iVar21 + 0x3c" (identifier "iVar21") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0xb")) (; ";")) (if_statement "if (uVar18 - 1 < 0xc) {\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }" (if "if") (parenthesized_expression "(uVar18 - 1 < 0xc)" (( "(") (binary_expression "uVar18 - 1 < 0xc" (binary_expression "uVar18 - 1" (identifier "uVar18") (- "-") (number_literal "1")) (< "<") (number_literal "0xc")) () ")")) (compound_statement "{\n            uVar15 = 1;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }" ({ "{") (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" (identifier "uVar15") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x60)" (( "(") (binary_expression "iVar21 + 0x60" (identifier "iVar21") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (* "*") (cast_expression "(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (( "(") (binary_expression "puVar3 + (uVar18 - 1) * 4 + 0x13a0" (binary_expression "puVar3 + (uVar18 - 1) * 4" (identifier "puVar3") (+ "+") (binary_expression "(uVar18 - 1) * 4" (parenthesized_expression "(uVar18 - 1)" (( "(") (binary_expression "uVar18 - 1" (identifier "uVar18") (- "-") (number_literal "1")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x13a0")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }" (else "else") (compound_statement "{\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 1;\n          }" ({ "{") (expression_statement "*(undefined4 *)(iVar21 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x60)" (( "(") (binary_expression "iVar21 + 0x60" (identifier "iVar21") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" (identifier "uVar15") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }" (else "else") (compound_statement "{\n          *(undefined2 *)(iVar21 + 0x3c) = 0xb;\n          if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }\n        }" ({ "{") (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = 0xb;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = 0xb" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar21 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x3c)" (( "(") (binary_expression "iVar21 + 0x3c" (identifier "iVar21") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0xb")) (; ";")) (if_statement "if (uVar18 - 1 < 0xc) {\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }\n          else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }" (if "if") (parenthesized_expression "(uVar18 - 1 < 0xc)" (( "(") (binary_expression "uVar18 - 1 < 0xc" (binary_expression "uVar18 - 1" (identifier "uVar18") (- "-") (number_literal "1")) (< "<") (number_literal "0xc")) () ")")) (compound_statement "{\nLAB_00018368:\n            uVar15 = 2;\n            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);\n          }" ({ "{") (labeled_statement "LAB_00018368:\n            uVar15 = 2;" (statement_identifier "LAB_00018368") (: ":") (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" (identifier "uVar15") (= "=") (number_literal "2")) (; ";"))) (expression_statement "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x60)" (( "(") (binary_expression "iVar21 + 0x60" (identifier "iVar21") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (* "*") (cast_expression "(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + (uVar18 - 1) * 4 + 0x13a0)" (( "(") (binary_expression "puVar3 + (uVar18 - 1) * 4 + 0x13a0" (binary_expression "puVar3 + (uVar18 - 1) * 4" (identifier "puVar3") (+ "+") (binary_expression "(uVar18 - 1) * 4" (parenthesized_expression "(uVar18 - 1)" (( "(") (binary_expression "uVar18 - 1" (identifier "uVar18") (- "-") (number_literal "1")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x13a0")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }" (else "else") (compound_statement "{\nLAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;\n            uVar15 = 2;\n          }" ({ "{") (labeled_statement "LAB_00018464:\n            *(undefined4 *)(iVar21 + 0x60) = 0;" (statement_identifier "LAB_00018464") (: ":") (expression_statement "*(undefined4 *)(iVar21 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x60)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x60)" (( "(") (binary_expression "iVar21 + 0x60" (identifier "iVar21") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" (identifier "uVar15") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}")))) (expression_statement "*(undefined4 *)(iVar21 + 0x84) = uVar15;" (assignment_expression "*(undefined4 *)(iVar21 + 0x84) = uVar15" (pointer_expression "*(undefined4 *)(iVar21 + 0x84)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x84)" (( "(") (binary_expression "iVar21 + 0x84" (identifier "iVar21") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(undefined4 *)(iVar21 + 0x80) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x80) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x80)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x80)" (( "(") (binary_expression "iVar21 + 0x80" (identifier "iVar21") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }" (else "else") (compound_statement "{\n        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);\n        *(undefined2 *)(iVar21 + 0x3c) = uVar12;\n      }" ({ "{") (expression_statement "uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);" (assignment_expression "uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0)" (identifier "uVar12") (= "=") (call_expression "(*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(param_1[8],param_1 + 0xc,iVar21,0)" (( "(") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (, ",") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar21") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar21 + 0x3c) = uVar12;" (assignment_expression "*(undefined2 *)(iVar21 + 0x3c) = uVar12" (pointer_expression "*(undefined2 *)(iVar21 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar21 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x3c)" (( "(") (binary_expression "iVar21 + 0x3c" (identifier "iVar21") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(iVar21 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 8)" (( "(") (binary_expression "iVar21 + 8" (identifier "iVar21") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = iVar21;" (assignment_expression "iVar11 = iVar21" (identifier "iVar11") (= "=") (identifier "iVar21")) (; ";")) (if_statement "if (local_6c != 0) {\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }" (if "if") (parenthesized_expression "(local_6c != 0)" (( "(") (binary_expression "local_6c != 0" (identifier "local_6c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar23 + 8) = iVar21;\n        iVar11 = local_6c;\n      }" ({ "{") (expression_statement "*(int *)(iVar23 + 8) = iVar21;" (assignment_expression "*(int *)(iVar23 + 8) = iVar21" (pointer_expression "*(int *)(iVar23 + 8)" (* "*") (cast_expression "(int *)(iVar23 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 8)" (( "(") (binary_expression "iVar23 + 8" (identifier "iVar23") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar21")) (; ";")) (expression_statement "iVar11 = local_6c;" (assignment_expression "iVar11 = local_6c" (identifier "iVar11") (= "=") (identifier "local_6c")) (; ";")) (} "}"))) (expression_statement "local_6c = iVar11;" (assignment_expression "local_6c = iVar11" (identifier "local_6c") (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iVar23 = iVar21;" (assignment_expression "iVar23 = iVar21" (identifier "iVar23") (= "=") (identifier "iVar21")) (; ";")) (if_statement "if (iVar17 == 10000) {\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }\n      else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }" (if "if") (parenthesized_expression "(iVar17 == 10000)" (( "(") (binary_expression "iVar17 == 10000" (identifier "iVar17") (== "==") (number_literal "10000")) () ")")) (compound_statement "{\n        if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }\n        iVar17 = 0x2711;\n      }" ({ "{") (if_statement "if (param_1[0xb] == 0) {\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }" (if "if") (parenthesized_expression "(param_1[0xb] == 0)" (( "(") (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar21 = (*pcVar6)(iVar20,local_40);\n          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }\n          bVar2 = true;\n        }" ({ "{") (expression_statement "iVar21 = (*pcVar6)(iVar20,local_40);" (assignment_expression "iVar21 = (*pcVar6)(iVar20,local_40)" (identifier "iVar21") (= "=") (call_expression "(*pcVar6)(iVar20,local_40)" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "(iVar20,local_40)" (( "(") (identifier "iVar20") (, ",") (identifier "local_40") () ")")))) (; ";")) (if_statement "if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }" (if "if") (parenthesized_expression "(((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be))" (( "(") (binary_expression "((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)" (parenthesized_expression "((iVar21 == 0x6969) || (iVar21 == 0x1021994))" (( "(") (binary_expression "(iVar21 == 0x6969) || (iVar21 == 0x1021994)" (parenthesized_expression "(iVar21 == 0x6969)" (( "(") (binary_expression "iVar21 == 0x6969" (identifier "iVar21") (== "==") (number_literal "0x6969")) () ")")) (|| "||") (parenthesized_expression "(iVar21 == 0x1021994)" (( "(") (binary_expression "iVar21 == 0x1021994" (identifier "iVar21") (== "==") (number_literal "0x1021994")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar21 == -0xacb2be)" (( "(") (binary_expression "iVar21 == -0xacb2be" (identifier "iVar21") (== "==") (number_literal "-0xacb2be")) () ")"))) () ")")) (compound_statement "{\n            bVar2 = false;\n            if (local_5c < 0x2712) goto LAB_00018814;\n            goto LAB_000183bc;\n          }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (if_statement "if (local_5c < 0x2712) goto LAB_00018814;" (if "if") (parenthesized_expression "(local_5c < 0x2712)" (( "(") (binary_expression "local_5c < 0x2712" (identifier "local_5c") (< "<") (number_literal "0x2712")) () ")")) (goto_statement "goto LAB_00018814;" (goto "goto") (statement_identifier "LAB_00018814") (; ";"))) (goto_statement "goto LAB_000183bc;" (goto "goto") (statement_identifier "LAB_000183bc") (; ";")) (} "}"))) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}"))) (expression_statement "iVar17 = 0x2711;" (assignment_expression "iVar17 = 0x2711" (identifier "iVar17") (= "=") (number_literal "0x2711")) (; ";")) (} "}")) (else_clause "else {\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }" (else "else") (compound_statement "{\n        if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }\nLAB_000183bc:\n        iVar17 = iVar17 + 1;\n      }" ({ "{") (if_statement "if (local_5c <= iVar17 + 1U) {\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }" (if "if") (parenthesized_expression "(local_5c <= iVar17 + 1U)" (( "(") (binary_expression "local_5c <= iVar17 + 1U" (identifier "local_5c") (<= "<=") (binary_expression "iVar17 + 1U" (identifier "iVar17") (+ "+") (number_literal "1U"))) () ")")) (compound_statement "{\nLAB_00018814:\n          iVar17 = iVar17 + 1;\n          break;\n        }" ({ "{") (labeled_statement "LAB_00018814:\n          iVar17 = iVar17 + 1;" (statement_identifier "LAB_00018814") (: ":") (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (labeled_statement "LAB_000183bc:\n        iVar17 = iVar17 + 1;" (statement_identifier "LAB_000183bc") (: ":") (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";"))) (} "}")))) (} "}"))) (expression_statement "iVar21 = *(int *)(iVar20 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar20 + 0xc)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(iVar20 + 0xc)" (* "*") (cast_expression "(int *)(iVar20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (local_54 != 0) {\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(local_54 != 0)" (( "(") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar21 = param_1[6];\n    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }\n    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }\n  }" ({ "{") (expression_statement "iVar21 = param_1[6];" (assignment_expression "iVar21 = param_1[6]" (identifier "iVar21") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (for_statement "for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }" (for "for") (( "(") (assignment_expression "iVar23 = param_1[1]" (identifier "iVar23") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";") (comma_expression "iVar24 = local_6c, iVar23 != 0" (assignment_expression "iVar24 = local_6c" (identifier "iVar24") (= "=") (identifier "local_6c")) (, ",") (binary_expression "iVar23 != 0" (identifier "iVar23") (!= "!=") (number_literal "0"))) (; ";") (assignment_expression "iVar23 = *(int *)(iVar23 + 8)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(iVar23 + 8)" (* "*") (cast_expression "(int *)(iVar23 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 8)" (( "(") (binary_expression "iVar23 + 8" (identifier "iVar23") (+ "+") (number_literal "8")) () ")"))))) () ")") (compound_statement "{\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n    }" ({ "{") (if_statement "if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar23 + 0x18) != iVar23 + 0xe8)" (( "(") (binary_expression "*(int *)(iVar23 + 0x18) != iVar23 + 0xe8" (pointer_expression "*(int *)(iVar23 + 0x18)" (* "*") (cast_expression "(int *)(iVar23 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x18)" (( "(") (binary_expression "iVar23 + 0x18" (identifier "iVar23") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (binary_expression "iVar23 + 0xe8" (identifier "iVar23") (+ "+") (number_literal "0xe8"))) () ")")) (compound_statement "{\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" ({ "{") (expression_statement "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));" (assignment_expression "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" (pointer_expression "*(int *)(iVar23 + 0x18)" (* "*") (cast_expression "(int *)(iVar23 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x18)" (( "(") (binary_expression "iVar23 + 0x18" (identifier "iVar23") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" (identifier "iVar21") (+ "+") (parenthesized_expression "(*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" (( "(") (binary_expression "*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c)" (pointer_expression "*(int *)(iVar23 + 0x18)" (* "*") (cast_expression "(int *)(iVar23 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x18)" (( "(") (binary_expression "iVar23 + 0x18" (identifier "iVar23") (+ "+") (number_literal "0x18")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar23 + 0x1c)" (* "*") (cast_expression "(int *)(iVar23 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x1c)" (( "(") (binary_expression "iVar23 + 0x1c" (identifier "iVar23") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar23 + 0x1c) = iVar21;" (assignment_expression "*(int *)(iVar23 + 0x1c) = iVar21" (pointer_expression "*(int *)(iVar23 + 0x1c)" (* "*") (cast_expression "(int *)(iVar23 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x1c)" (( "(") (binary_expression "iVar23 + 0x1c" (identifier "iVar23") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar21")) (; ";")) (} "}"))) (while_statement "while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }" (while "while") (parenthesized_expression "(iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30))" (( "(") (comma_expression "iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)" (assignment_expression "iVar23 = iVar24" (identifier "iVar23") (= "=") (identifier "iVar24")) (, ",") (binary_expression "-1 < *(int *)(iVar23 + 0x30)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(iVar23 + 0x30)" (* "*") (cast_expression "(int *)(iVar23 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x30)" (( "(") (binary_expression "iVar23 + 0x30" (identifier "iVar23") (+ "+") (number_literal "0x30")) () ")")))))) () ")")) (compound_statement "{\n      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }\n      *(int *)(iVar23 + 0x1c) = iVar21;\n      iVar24 = *(int *)(iVar23 + 8);\n      if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }\n    }" ({ "{") (if_statement "if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar23 + 0x18) != iVar23 + 0xe8)" (( "(") (binary_expression "*(int *)(iVar23 + 0x18) != iVar23 + 0xe8" (pointer_expression "*(int *)(iVar23 + 0x18)" (* "*") (cast_expression "(int *)(iVar23 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x18)" (( "(") (binary_expression "iVar23 + 0x18" (identifier "iVar23") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (binary_expression "iVar23 + 0xe8" (identifier "iVar23") (+ "+") (number_literal "0xe8"))) () ")")) (compound_statement "{\n        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));\n      }" ({ "{") (expression_statement "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));" (assignment_expression "*(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" (pointer_expression "*(int *)(iVar23 + 0x18)" (* "*") (cast_expression "(int *)(iVar23 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x18)" (( "(") (binary_expression "iVar23 + 0x18" (identifier "iVar23") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" (identifier "iVar21") (+ "+") (parenthesized_expression "(*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c))" (( "(") (binary_expression "*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c)" (pointer_expression "*(int *)(iVar23 + 0x18)" (* "*") (cast_expression "(int *)(iVar23 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x18)" (( "(") (binary_expression "iVar23 + 0x18" (identifier "iVar23") (+ "+") (number_literal "0x18")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar23 + 0x1c)" (* "*") (cast_expression "(int *)(iVar23 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x1c)" (( "(") (binary_expression "iVar23 + 0x1c" (identifier "iVar23") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar23 + 0x1c) = iVar21;" (assignment_expression "*(int *)(iVar23 + 0x1c) = iVar21" (pointer_expression "*(int *)(iVar23 + 0x1c)" (* "*") (cast_expression "(int *)(iVar23 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x1c)" (( "(") (binary_expression "iVar23 + 0x1c" (identifier "iVar23") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar21")) (; ";")) (expression_statement "iVar24 = *(int *)(iVar23 + 8);" (assignment_expression "iVar24 = *(int *)(iVar23 + 8)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(iVar23 + 8)" (* "*") (cast_expression "(int *)(iVar23 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 8)" (( "(") (binary_expression "iVar23 + 8" (identifier "iVar23") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar23 + 8) == 0) {\n        iVar24 = *(int *)(iVar23 + 4);\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar23 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar23 + 8) == 0" (pointer_expression "*(int *)(iVar23 + 8)" (* "*") (cast_expression "(int *)(iVar23 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 8)" (( "(") (binary_expression "iVar23 + 8" (identifier "iVar23") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar24 = *(int *)(iVar23 + 4);\n      }" ({ "{") (expression_statement "iVar24 = *(int *)(iVar23 + 4);" (assignment_expression "iVar24 = *(int *)(iVar23 + 4)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(iVar23 + 4)" (* "*") (cast_expression "(int *)(iVar23 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 4)" (( "(") (binary_expression "iVar23 + 4" (identifier "iVar23") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if ((param_1[0xc] & 4U) != 0) {\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }" (if "if") (parenthesized_expression "((param_1[0xc] & 4U) != 0)" (( "(") (binary_expression "(param_1[0xc] & 4U) != 0" (parenthesized_expression "(param_1[0xc] & 4U)" (( "(") (binary_expression "param_1[0xc] & 4U" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (& "&") (number_literal "4U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }\n    *local_58 = 0;\n  }" ({ "{") (if_statement "if ((param_1[9] == uVar19) || (iVar17 == 0)) {\n      local_58 = local_58 + -1;\n    }" (if "if") (parenthesized_expression "((param_1[9] == uVar19) || (iVar17 == 0))" (( "(") (binary_expression "(param_1[9] == uVar19) || (iVar17 == 0)" (parenthesized_expression "(param_1[9] == uVar19)" (( "(") (binary_expression "param_1[9] == uVar19" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (== "==") (identifier "uVar19")) () ")")) (|| "||") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      local_58 = local_58 + -1;\n    }" ({ "{") (expression_statement "local_58 = local_58 + -1;" (assignment_expression "local_58 = local_58 + -1" (identifier "local_58") (= "=") (binary_expression "local_58 + -1" (identifier "local_58") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*local_58 = 0;" (assignment_expression "*local_58 = 0" (pointer_expression "*local_58" (* "*") (identifier "local_58")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if ((iVar13 == 0) && (bVar1)) {\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }" (if "if") (parenthesized_expression "((iVar13 == 0) && (bVar1))" (( "(") (binary_expression "(iVar13 == 0) && (bVar1)" (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")"))) () ")")) (compound_statement "{\n    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;\n    if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }\n    if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }\n  }" ({ "{") (if_statement "if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;" (if "if") (parenthesized_expression "((param_2 != 1) && (iVar17 != 0))" (( "(") (binary_expression "(param_2 != 1) && (iVar17 != 0)" (parenthesized_expression "(param_2 != 1)" (( "(") (binary_expression "param_2 != 1" (identifier "param_2") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00018870;" (goto "goto") (statement_identifier "LAB_00018870") (; ";"))) (if_statement "if (*(int *)(iVar20 + 0x30) == 0) {\n      iVar13 = FUN_00017788(param_1);\n    }\n    else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 0x30) == 0)" (( "(") (binary_expression "*(int *)(iVar20 + 0x30) == 0" (pointer_expression "*(int *)(iVar20 + 0x30)" (* "*") (cast_expression "(int *)(iVar20 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x30)" (( "(") (binary_expression "iVar20 + 0x30" (identifier "iVar20") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar13 = FUN_00017788(param_1);\n    }" ({ "{") (expression_statement "iVar13 = FUN_00017788(param_1);" (assignment_expression "iVar13 = FUN_00017788(param_1)" (identifier "iVar13") (= "=") (call_expression "FUN_00017788(param_1)" (identifier "FUN_00017788") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" (else "else") (compound_statement "{\n      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);\n    }" ({ "{") (expression_statement "iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);" (assignment_expression "iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" (identifier "iVar13") (= "=") (call_expression "FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" (identifier "FUN_00017c2c") (argument_list "(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,\n                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined4 *)(iVar20 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 4)" (( "(") (binary_expression "iVar20 + 4" (identifier "iVar20") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390" (identifier "PTR_s_a_diagnostic_for_every_file_proc_00032108") (+ "+") (number_literal "0x1390")) () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar13 != 0) {\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar14 = param_1[0xc];\n      *(undefined2 *)(iVar20 + 0x3c) = 7;\n      param_1[0xc] = uVar14 | 0x4000;\n      goto LAB_00018c18;\n    }" ({ "{") (expression_statement "uVar14 = param_1[0xc];" (assignment_expression "uVar14 = param_1[0xc]" (identifier "uVar14") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar20 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "7")) (; ";")) (expression_statement "param_1[0xc] = uVar14 | 0x4000;" (assignment_expression "param_1[0xc] = uVar14 | 0x4000" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "uVar14 | 0x4000" (identifier "uVar14") (| "|") (number_literal "0x4000"))) (; ";")) (goto_statement "goto LAB_00018c18;" (goto "goto") (statement_identifier "LAB_00018c18") (; ";")) (} "}"))) (} "}"))) (if_statement "if (iVar17 == 0) {\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }\nLAB_00018c18:\n    FUN_0001737c(local_6c);\n    return 0;\n  }" ({ "{") (if_statement "if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }" (if "if") (parenthesized_expression "(((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7))" (( "(") (binary_expression "((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)" (parenthesized_expression "((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4))" (( "(") (binary_expression "(param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)" (parenthesized_expression "(param_2 == 3)" (( "(") (binary_expression "param_2 == 3" (identifier "param_2") (== "==") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(*(short *)(iVar20 + 0x3c) != 4)" (( "(") (binary_expression "*(short *)(iVar20 + 0x3c) != 4" (pointer_expression "*(short *)(iVar20 + 0x3c)" (* "*") (cast_expression "(short *)(iVar20 + 0x3c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (!= "!=") (number_literal "4")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(short *)(iVar20 + 0x3c) != 7)" (( "(") (binary_expression "*(short *)(iVar20 + 0x3c) != 7" (pointer_expression "*(short *)(iVar20 + 0x3c)" (* "*") (cast_expression "(short *)(iVar20 + 0x3c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (!= "!=") (number_literal "7")) () ")"))) () ")")) (compound_statement "{\n      *(undefined2 *)(iVar20 + 0x3c) = 6;\n    }" ({ "{") (expression_statement "*(undefined2 *)(iVar20 + 0x3c) = 6;" (assignment_expression "*(undefined2 *)(iVar20 + 0x3c) = 6" (pointer_expression "*(undefined2 *)(iVar20 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar20 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "6")) (; ";")) (} "}"))) (labeled_statement "LAB_00018c18:\n    FUN_0001737c(local_6c);" (statement_identifier "LAB_00018c18") (: ":") (expression_statement "FUN_0001737c(local_6c);" (call_expression "FUN_0001737c(local_6c)" (identifier "FUN_0001737c") (argument_list "(local_6c)" (( "(") (identifier "local_6c") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_00018870:\n  if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }" (statement_identifier "LAB_00018870") (: ":") (if_statement "if (bVar2) {\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n    param_1[0xb] = (int)(PTR_00032104 + 0x7120);\n    iVar13 = FUN_00017184(param_1,local_6c,iVar17);\n    param_1[0xb] = 0;\n    return iVar13;\n  }" ({ "{") (expression_statement "param_1[0xb] = (int)(PTR_00032104 + 0x7120);" (assignment_expression "param_1[0xb] = (int)(PTR_00032104 + 0x7120)" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(int)(PTR_00032104 + 0x7120)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(PTR_00032104 + 0x7120)" (( "(") (binary_expression "PTR_00032104 + 0x7120" (identifier "PTR_00032104") (+ "+") (number_literal "0x7120")) () ")")))) (; ";")) (expression_statement "iVar13 = FUN_00017184(param_1,local_6c,iVar17);" (assignment_expression "iVar13 = FUN_00017184(param_1,local_6c,iVar17)" (identifier "iVar13") (= "=") (call_expression "FUN_00017184(param_1,local_6c,iVar17)" (identifier "FUN_00017184") (argument_list "(param_1,local_6c,iVar17)" (( "(") (identifier "param_1") (, ",") (identifier "local_6c") (, ",") (identifier "iVar17") () ")")))) (; ";")) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return iVar13;" (return "return") (identifier "iVar13") (; ";")) (} "}")))) (if_statement "if (param_1[0xb] == 0) {\n    return local_6c;\n  }" (if "if") (parenthesized_expression "(param_1[0xb] == 0)" (( "(") (binary_expression "param_1[0xb] == 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return local_6c;\n  }" ({ "{") (return_statement "return local_6c;" (return "return") (identifier "local_6c") (; ";")) (} "}"))) (if_statement "if (iVar17 == 1) {\n    return local_6c;\n  }" (if "if") (parenthesized_expression "(iVar17 == 1)" (( "(") (binary_expression "iVar17 == 1" (identifier "iVar17") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    return local_6c;\n  }" ({ "{") (return_statement "return local_6c;" (return "return") (identifier "local_6c") (; ";")) (} "}"))) (expression_statement "iVar13 = FUN_00017184(param_1,local_6c,iVar17);" (assignment_expression "iVar13 = FUN_00017184(param_1,local_6c,iVar17)" (identifier "iVar13") (= "=") (call_expression "FUN_00017184(param_1,local_6c,iVar17)" (identifier "FUN_00017184") (argument_list "(param_1,local_6c,iVar17)" (( "(") (identifier "param_1") (, ",") (identifier "local_6c") (, ",") (identifier "iVar17") () ")")))) (; ";")) (return_statement "return iVar13;" (return "return") (identifier "iVar13") (; ";")) (} "}")))

type_1 * function_1(type_2 *sp,int var_12)

{
  bool bVar1;
  bool bVar2;
  type_3 *var_29;
  type_3 *puVar4;
  type_4 *p_Var5;
  type_1 *pFVar6;
  type_5 extraout_var;
  type_5 extraout_var_00;
  type_6 *pcVar7;
  type_6 *pcVar8;
  type_6 *pcVar9;
  int *piVar10;
  type_7 *var_21;
  type_1 *var_23;
  type_8 var_28;
  type_4 *var_33;
  int var_26;
  type_9 _Var18;
  type_10 uVar17;
  type_11 var_13;
  type_12 *var_1;
  type_8 var_2;
  char *var_27;
  type_7 uVar22;
  type_7 uVar23;
  size_t var_22;
  type_8 var_18;
  type_8 var_3;
  type_1 *pFVar26;
  type_12 *var_6;
  type_1 *var_34;
  int var_17;
  type_1 *var_30;
  type_8 var_31;
  char *var_35;
  int var_32;
  type_8 var_19;
  int var_5;
  
  pFVar26 = sp->fts_cur;
  var_1 = pFVar26->fts_dirp;
  if (var_1 == (type_12 *)0x0) {
    var_2 = sp->fts_options;
    if ((var_2 & 0x204) == 0x200) {
      var_17 = sp->fts_cwd_fd;
    }
    else {
      var_17 = -100;
    }
    var_3 = var_2 & 0x10;
    if (((var_3 != 0) && (var_3 = 0x20000, (var_2 & 1) != 0)) &&
       (var_3 = pFVar26->fts_level, var_3 != 0)) {
      var_3 = 0x20000;
    }
    var_5 = var_4(var_17,pFVar26->fts_accpath,(var_2 & 0x800) << 7 | var_3 | 0x90880);
    if (-1 < var_5) {
      var_6 = (type_12 *)(*(type_6 *)PTR_fdopendir_000322f4)(var_5);
      if (var_6 != (type_12 *)0x0) {
        pFVar26->fts_dirp = var_6;
        if (pFVar26->fts_info == 0xb) {
          uVar17 = var_7((type_2 *)sp->fts_cwd_fd,(type_1 *)&sp->fts_options,var_8(pFVar26,0),
                            (type_2 *)0x0);
          pFVar26->fts_info = uVar17;
        }
        else if (((type_8)sp->fts_options & 0x100) != 0) {
          var_9((type_2 *)sp->fts_options,(type_1 *)&sp->fts_cycle,(type_2 *)pFVar26);
          var_7((type_2 *)sp->fts_cwd_fd,(type_1 *)&sp->fts_options,var_8(pFVar26,0),(type_2 *)0x0);
          _Var18 = var_10((type_2 *)sp->fts_options,(type_1 *)&sp->fts_cycle,(type_2 *)pFVar26);
          if (var_11(extraout_var_00,_Var18) == 0) {
            var_21 = (type_7 *)(*(type_6 *)PTR___errno_location_00032328)();
            *var_21 = 0xc;
            return (type_1 *)0x0;
          }
        }
        if (sp->fts_compar == (type_13 *)0x0) {
          var_31 = 100000;
        }
        else {
          var_31 = 0xffffffff;
        }
        if (var_12 == 2) {
LAB_000189a4:
          var_2 = sp->fts_options;
          bVar1 = false;
          goto LAB_000181a0;
        }
        if ((sp->fts_options & 0x38U) == 0x18) {
          bVar1 = true;
          if (pFVar26->fts_statp[0].st_nlink == 2) {
            var_13 = type_11(pFVar26,var_5);
            if (var_13 == var_14) goto LAB_0001873c;
            bVar1 = false;
            if (var_12 != 3) goto LAB_000189a4;
          }
        }
        else {
LAB_0001873c:
          bVar1 = true;
        }
        if ((((sp->fts_options & 0x200U) == 0) ||
            (var_5 = var_15(var_5,0x406,3), -1 < var_5)) &&
           (var_17 = var_16(sp,pFVar26,var_5,(char *)0x0), var_17 == 0)) {
          var_2 = sp->fts_options;
          bVar1 = true;
        }
        else {
          if ((bVar1) && (var_12 == 3)) {
            piVar10 = (int *)(*(type_6 *)PTR___errno_location_00032328)();
            pFVar26->fts_errno = *piVar10;
          }
          var_29 = PTR_closedir_000322ac;
          pFVar26->fts_flags = pFVar26->fts_flags | 1;
          (*(type_6 *)var_29)(pFVar26->fts_dirp);
          var_2 = sp->fts_options;
          pFVar26->fts_dirp = (type_12 *)0x0;
          if (((var_2 & 0x200) == 0) || (var_5 < 0)) {
            pFVar26->fts_dirp = (type_12 *)0x0;
            bVar1 = false;
          }
          else {
            (*(type_6 *)PTR_close_000322b0)(var_5);
            var_2 = sp->fts_options;
            bVar1 = false;
            pFVar26->fts_dirp = (type_12 *)0x0;
          }
        }
        goto LAB_000181a0;
      }
      var_21 = (type_7 *)(*(type_6 *)PTR___errno_location_00032328)();
      uVar22 = *var_21;
      (*(type_6 *)PTR_close_000322b0)(var_5);
      *var_21 = uVar22;
    }
    pFVar26->fts_dirp = (type_12 *)0x0;
joined_r0x00018a30:
    var_29 = PTR___errno_location_00032328;
    if (var_12 == 3) {
      pFVar26->fts_info = 4;
      piVar10 = (int *)(*(type_6 *)var_29)();
      pFVar26->fts_errno = *piVar10;
      return (type_1 *)0x0;
    }
    return (type_1 *)0x0;
  }
  var_5 = (*(type_6 *)PTR_dirfd_000323dc)();
  if (var_5 < 0) {
    (*(type_6 *)PTR_closedir_000322ac)(pFVar26->fts_dirp);
    pFVar26->fts_dirp = (type_12 *)0x0;
    goto joined_r0x00018a30;
  }
  var_2 = sp->fts_options;
  if (sp->fts_compar == (type_13 *)0x0) {
    bVar1 = true;
    var_31 = 100000;
  }
  else {
    var_31 = 0xffffffff;
    bVar1 = true;
  }
LAB_000181a0:
  var_18 = pFVar26->fts_pathlen;
  var_3 = var_18;
  var_19 = var_18 - 1;
  if (pFVar26->fts_path[var_18 - 1] != '/') {
    var_3 = var_18 + 1;
    var_19 = var_18;
  }
  if ((var_2 & 4) == 0) {
    var_35 = (char *)0x0;
  }
  else {
    var_35 = sp->fts_path + var_19 + 1;
    sp->fts_path[var_19] = '/';
  }
  var_29 = var_37;
  var_17 = pFVar26->fts_level;
  var_34 = (type_1 *)0x0;
  var_22 = 0;
  bVar2 = false;
  var_32 = 0;
  var_30 = (type_1 *)0x0;
  pcVar7 = (type_6 *)(var_20 + 0x72c0);
  pcVar8 = (type_6 *)(var_20 + 0x746c);
  pcVar9 = (type_6 *)(var_20 + 0x7820);
  var_2 = sp->fts_pathlen - var_3;
  var_6 = pFVar26->fts_dirp;
  while (var_6 != (type_12 *)0x0) {
    piVar10 = (int *)(*(type_6 *)PTR___errno_location_00032328)();
    puVar4 = PTR_readdir64_000322e0;
    *piVar10 = 0;
    var_21 = (type_7 *)(*(type_6 *)puVar4)(var_6);
    if (var_21 == (type_7 *)0x0) {
      if (*piVar10 != 0) {
        pFVar26->fts_errno = *piVar10;
        uVar17 = 7;
        if ((var_1 == (type_12 *)0x0) && (var_22 == 0)) {
          uVar17 = 4;
        }
        pFVar26->fts_info = uVar17;
      }
      if (pFVar26->fts_dirp != (type_12 *)0x0) {
        (*(type_6 *)PTR_closedir_000322ac)();
        pFVar26->fts_dirp = (type_12 *)0x0;
      }
      break;
    }
    if ((((sp->fts_options & 0x20U) != 0) || (*(char *)((int)var_21 + 0x13) != '.')) ||
       ((*(char *)(var_21 + 5) != '\0' && ((var_21[5] & 0xffff0000) != 0x2e000000)))) {
      var_18 = (*(type_6 *)PTR_strlen_00032344)((int)var_21 + 0x13);
      var_23 = (type_1 *)(*pcVar7)(sp,(int)var_21 + 0x13,var_18);
      if (var_23 == (type_1 *)0x0) {
LAB_000188cc:
        var_17 = *piVar10;
        (*(type_6 *)PTR_free_000323d4)(var_23);
        var_24(var_30);
        (*(type_6 *)PTR_closedir_000322ac)(pFVar26->fts_dirp);
        var_2 = sp->fts_options;
        pFVar26->fts_dirp = (type_12 *)0x0;
        pFVar26->fts_info = 7;
        sp->fts_options = var_2 | 0x4000;
        *piVar10 = var_17;
        return (type_1 *)0x0;
      }
      if (var_2 <= var_18) {
        var_27 = sp->fts_path;
        _Var18 = var_25((type_2 *)&sp->fts_path,(size_t)&sp->fts_pathlen,
                            (type_2 *)(var_19 + 2 + var_18));
        var_26 = var_11(extraout_var,_Var18);
        if (var_26 == 0) goto LAB_000188cc;
        if ((sp->fts_path != var_27) && (var_32 = var_26, (sp->fts_options & 4U) != 0)) {
          var_35 = sp->fts_path + var_3;
        }
        var_2 = sp->fts_pathlen - var_3;
      }
      if (var_18 + var_3 < var_3) {
        (*(type_6 *)PTR_free_000323d4)(var_23);
        var_24(var_30);
        (*(type_6 *)PTR_closedir_000322ac)(pFVar26->fts_dirp);
        var_2 = sp->fts_options;
        pFVar26->fts_dirp = (type_12 *)0x0;
        pFVar26->fts_info = 7;
        sp->fts_options = var_2 | 0x4000;
        *piVar10 = 0x4e;
        return (type_1 *)0x0;
      }
      var_28 = sp->fts_options;
      uVar23 = var_21[1];
      uVar22 = *var_21;
      var_23->fts_parent = sp->fts_cur;
      var_23->fts_pathlen = var_18 + var_3;
      var_23->fts_level = var_17 + 1;
      *(type_7 *)((int)&var_23->fts_statp[0].st_ino + 4) = uVar23;
      *(type_7 *)&var_23->fts_statp[0].st_ino = uVar22;
      puVar4 = PTR_memmove_000323d8;
      if ((var_28 & 4) == 0) {
        var_23->fts_accpath = (char *)(var_23 + 1);
      }
      else {
        var_23->fts_accpath = var_23->fts_path;
        (*(type_6 *)puVar4)(var_35,var_23 + 1,var_23->fts_namelen + 1);
        var_28 = sp->fts_options;
      }
      if ((sp->fts_compar == (type_13 *)0x0) ||
         ((var_28 & 0x400) != 0)) {
        var_18 = (type_8)*(type_14 *)((int)var_21 + 0x12);
        if ((var_28 & 0x18) == 0x18) {
          if (var_18 == 0) {
            var_23->fts_info = 0xb;
            goto LAB_00018464;
          }
          if (var_18 == 4) {
            var_23->fts_info = 0xb;
            goto LAB_00018368;
          }
          var_23->fts_info = 0xb;
          if (var_18 - 1 < 0xc) {
            uVar22 = 1;
            var_23->fts_statp[0].st_mode = *(type_15 *)(var_29 + (var_18 - 1) * 4 + 0x13a0);
          }
          else {
            var_23->fts_statp[0].st_mode = 0;
            uVar22 = 1;
          }
        }
        else {
          var_23->fts_info = 0xb;
          if (var_18 - 1 < 0xc) {
LAB_00018368:
            uVar22 = 2;
            var_23->fts_statp[0].st_mode = *(type_15 *)(var_29 + (var_18 - 1) * 4 + 0x13a0);
          }
          else {
LAB_00018464:
            var_23->fts_statp[0].st_mode = 0;
            uVar22 = 2;
          }
        }
        *(type_7 *)((int)&var_23->fts_statp[0].st_size + 4) = uVar22;
        *(type_7 *)&var_23->fts_statp[0].st_size = 0;
      }
      else {
        uVar17 = (*pcVar9)(sp->fts_cwd_fd,&sp->fts_options,var_23,0);
        var_23->fts_info = uVar17;
      }
      var_23->fts_link = (type_4 *)0x0;
      pFVar6 = var_23;
      if (var_30 != (type_1 *)0x0) {
        var_34->fts_link = var_23;
        pFVar6 = var_30;
      }
      var_30 = pFVar6;
      var_34 = var_23;
      if (var_22 == 10000) {
        if (sp->fts_compar == (type_13 *)0x0) {
          var_26 = (*pcVar8)(pFVar26,var_5);
          if (((var_26 == 0x6969) || (var_26 == 0x1021994)) || (var_26 == -0xacb2be)) {
            bVar2 = false;
            if (var_31 < 0x2712) goto LAB_00018814;
            goto LAB_000183bc;
          }
          bVar2 = true;
        }
        var_22 = 0x2711;
      }
      else {
        if (var_31 <= var_22 + 1) {
LAB_00018814:
          var_22 = var_22 + 1;
          break;
        }
LAB_000183bc:
        var_22 = var_22 + 1;
      }
    }
    var_6 = pFVar26->fts_dirp;
  }
  if (var_32 != 0) {
    var_27 = sp->fts_path;
    for (var_33 = sp->fts_child; p_Var5 = var_30, var_33 != (type_4 *)0x0;
        var_33 = var_33->fts_link) {
      if ((type_4 *)var_33->fts_accpath != var_33 + 1) {
        var_33->fts_accpath = var_27 + ((int)var_33->fts_accpath - (int)var_33->fts_path);
      }
      var_33->fts_path = var_27;
    }
    while (var_34 = p_Var5, -1 < var_34->fts_level) {
      if ((type_1 *)var_34->fts_accpath != var_34 + 1) {
        var_34->fts_accpath = var_27 + ((int)var_34->fts_accpath - (int)var_34->fts_path);
      }
      var_34->fts_path = var_27;
      p_Var5 = var_34->fts_link;
      if (var_34->fts_link == (type_4 *)0x0) {
        p_Var5 = var_34->fts_parent;
      }
    }
  }
  if ((sp->fts_options & 4U) != 0) {
    if ((sp->fts_pathlen == var_3) || (var_22 == 0)) {
      var_35 = var_35 + -1;
    }
    *var_35 = '\0';
  }
  if ((var_1 == (type_12 *)0x0) && (bVar1)) {
    if ((var_12 != 1) && (var_22 != 0)) goto LAB_00018870;
    if (pFVar26->fts_level == 0) {
      var_17 = var_36(sp);
    }
    else {
      var_17 = var_16(sp,pFVar26->fts_parent,-1,
                                  var_37 + 0x1390);
    }
    if (var_17 != 0) {
      var_2 = sp->fts_options;
      pFVar26->fts_info = 7;
      sp->fts_options = var_2 | 0x4000;
      goto LAB_00018c18;
    }
  }
  if (var_22 == 0) {
    if (((var_12 == 3) && (pFVar26->fts_info != 4)) && (pFVar26->fts_info != 7)) {
      pFVar26->fts_info = 6;
    }
LAB_00018c18:
    var_24(var_30);
    return (type_1 *)0x0;
  }
LAB_00018870:
  if (bVar2) {
    sp->fts_compar = (type_13 *)(var_20 + 0x7120);
    pFVar26 = var_38(sp,var_30,var_22);
    sp->fts_compar = (type_13 *)0x0;
    return pFVar26;
  }
  if (sp->fts_compar == (type_13 *)0x0) {
    return var_30;
  }
  if (var_22 == 1) {
    return var_30;
  }
  pFVar26 = var_38(sp,var_30,var_22);
  return pFVar26;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (true))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) right: (binary_expression left: (number_literal) right: (identifier)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (return_statement (number_literal)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (true)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (break_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (character)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (true))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (break_statement))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (for_statement initializer: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) condition: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))) update: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (return_statement (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (return_statement (identifier)))))

int MASKED(int *param_1,int param_2)

{
  bool bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  code *pcVar5;
  code *pcVar6;
  code *pcVar7;
  int *piVar8;
  undefined4 *puVar9;
  uint uVar10;
  int iVar11;
  undefined2 uVar12;
  int iVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  int iVar17;
  uint uVar18;
  uint uVar19;
  int iVar20;
  int iVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int local_6c;
  uint local_5c;
  undefined1 *local_58;
  int local_54;
  uint local_50;
  int local_40;
  
  iVar20 = *param_1;
  iVar13 = *(int *)(iVar20 + 0xc);
  if (iVar13 == 0) {
    uVar14 = param_1[0xc];
    if ((uVar14 & 0x204) == 0x200) {
      iVar17 = param_1[8];
    }
    else {
      iVar17 = -100;
    }
    uVar19 = uVar14 & 0x10;
    if (((uVar19 != 0) && (uVar19 = 0x20000, (uVar14 & 1) != 0)) &&
       (uVar19 = *(uint *)(iVar20 + 0x30), uVar19 != 0)) {
      uVar19 = 0x20000;
    }
    local_40 = openat_safer(iVar17,*(undefined4 *)(iVar20 + 0x18),
                            (uVar14 & 0x800) << 7 | uVar19 | 0x90880);
    if (-1 < local_40) {
      iVar17 = (*(code *)PTR_fdopendir_000322f4)(local_40);
      if (iVar17 != 0) {
        *(int *)(iVar20 + 0xc) = iVar17;
        if (*(short *)(iVar20 + 0x3c) == 0xb) {
          uVar12 = FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);
          *(undefined2 *)(iVar20 + 0x3c) = uVar12;
        }
        else if ((param_1[0xc] & 0x100U) != 0) {
          FUN_00017fe4(param_1[0xc],param_1 + 0xe,iVar20);
          FUN_00017820(param_1[8],param_1 + 0xc,iVar20,0);
          iVar17 = FUN_00017eb0(param_1[0xc],param_1 + 0xe,iVar20);
          if (iVar17 == 0) {
            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();
            *puVar9 = 0xc;
            return 0;
          }
        }
        if (param_1[0xb] == 0) {
          local_5c = 100000;
        }
        else {
          local_5c = 0xffffffff;
        }
        if (param_2 == 2) {
LAB_000189a4:
          uVar14 = param_1[0xc];
          bVar1 = false;
          goto LAB_000181a0;
        }
        if ((param_1[0xc] & 0x38U) == 0x18) {
          bVar1 = true;
          if (*(int *)(iVar20 + 100) == 2) {
            iVar17 = FUN_00017604(iVar20,local_40);
            if (iVar17 == 0) goto LAB_0001873c;
            bVar1 = false;
            if (param_2 != 3) goto LAB_000189a4;
          }
        }
        else {
LAB_0001873c:
          bVar1 = true;
        }
        if ((((param_1[0xc] & 0x200U) == 0) ||
            (local_40 = rpl_fcntl(local_40,0x406,3), -1 < local_40)) &&
           (iVar17 = FUN_00017c2c(param_1,iVar20,local_40,0), iVar17 == 0)) {
          uVar14 = param_1[0xc];
          bVar1 = true;
        }
        else {
          if ((bVar1) && (param_2 == 3)) {
            puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();
            *(undefined4 *)(iVar20 + 0x20) = *puVar9;
          }
          puVar3 = PTR_closedir_000322ac;
          *(ushort *)(iVar20 + 0x3e) = *(ushort *)(iVar20 + 0x3e) | 1;
          (*(code *)puVar3)(*(undefined4 *)(iVar20 + 0xc));
          uVar14 = param_1[0xc];
          *(undefined4 *)(iVar20 + 0xc) = 0;
          if (((uVar14 & 0x200) == 0) || (local_40 < 0)) {
            *(undefined4 *)(iVar20 + 0xc) = 0;
            bVar1 = false;
          }
          else {
            (*(code *)PTR_close_000322b0)(local_40);
            uVar14 = param_1[0xc];
            bVar1 = false;
            *(undefined4 *)(iVar20 + 0xc) = 0;
          }
        }
        goto LAB_000181a0;
      }
      puVar9 = (undefined4 *)(*(code *)PTR___errno_location_00032328)();
      uVar15 = *puVar9;
      (*(code *)PTR_close_000322b0)(local_40);
      *puVar9 = uVar15;
    }
    *(undefined4 *)(iVar20 + 0xc) = 0;
joined_r0x00018a30:
    puVar3 = PTR___errno_location_00032328;
    if (param_2 == 3) {
      *(undefined2 *)(iVar20 + 0x3c) = 4;
      puVar9 = (undefined4 *)(*(code *)puVar3)();
      *(undefined4 *)(iVar20 + 0x20) = *puVar9;
      return 0;
    }
    return 0;
  }
  local_40 = (*(code *)PTR_dirfd_000323dc)();
  if (local_40 < 0) {
    (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));
    *(undefined4 *)(iVar20 + 0xc) = 0;
    goto joined_r0x00018a30;
  }
  uVar14 = param_1[0xc];
  if (param_1[0xb] == 0) {
    bVar1 = true;
    local_5c = 100000;
  }
  else {
    local_5c = 0xffffffff;
    bVar1 = true;
  }
LAB_000181a0:
  uVar18 = *(uint *)(iVar20 + 0x28);
  uVar19 = uVar18;
  local_50 = uVar18 - 1;
  if (*(char *)(*(int *)(iVar20 + 0x1c) + (uVar18 - 1)) != '/') {
    uVar19 = uVar18 + 1;
    local_50 = uVar18;
  }
  if ((uVar14 & 4) == 0) {
    local_58 = (undefined1 *)0x0;
  }
  else {
    local_58 = (undefined1 *)(param_1[6] + local_50) + 1;
    *(undefined1 *)(param_1[6] + local_50) = 0x2f;
  }
  puVar3 = PTR_s_a_diagnostic_for_every_file_proc_00032108;
  iVar24 = *(int *)(iVar20 + 0x30);
  iVar23 = 0;
  iVar17 = 0;
  bVar2 = false;
  local_54 = 0;
  local_6c = 0;
  pcVar5 = (code *)(PTR_00032104 + 0x72c0);
  pcVar6 = (code *)(PTR_00032104 + 0x746c);
  pcVar7 = (code *)(PTR_00032104 + 0x7820);
  uVar14 = param_1[9] - uVar19;
  iVar21 = *(int *)(iVar20 + 0xc);
  while (iVar21 != 0) {
    piVar8 = (int *)(*(code *)PTR___errno_location_00032328)();
    puVar4 = PTR_readdir64_000322e0;
    *piVar8 = 0;
    puVar9 = (undefined4 *)(*(code *)puVar4)(iVar21);
    if (puVar9 == (undefined4 *)0x0) {
      if (*piVar8 != 0) {
        *(int *)(iVar20 + 0x20) = *piVar8;
        uVar12 = 7;
        if ((iVar13 == 0) && (iVar17 == 0)) {
          uVar12 = 4;
        }
        *(undefined2 *)(iVar20 + 0x3c) = uVar12;
      }
      if (*(int *)(iVar20 + 0xc) != 0) {
        (*(code *)PTR_closedir_000322ac)();
        *(undefined4 *)(iVar20 + 0xc) = 0;
      }
      break;
    }
    if ((((param_1[0xc] & 0x20U) != 0) || (*(char *)((int)puVar9 + 0x13) != '.')) ||
       ((*(char *)(puVar9 + 5) != '\0' && ((puVar9[5] & 0xffff0000) != 0x2e000000)))) {
      uVar18 = (*(code *)PTR_strlen_00032344)((int)puVar9 + 0x13);
      iVar21 = (*pcVar5)(param_1,(int)puVar9 + 0x13,uVar18);
      if (iVar21 == 0) {
LAB_000188cc:
        iVar13 = *piVar8;
        (*(code *)PTR_free_000323d4)(iVar21);
        FUN_0001737c(local_6c);
        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));
        uVar14 = param_1[0xc];
        *(undefined4 *)(iVar20 + 0xc) = 0;
        *(undefined2 *)(iVar20 + 0x3c) = 7;
        param_1[0xc] = uVar14 | 0x4000;
        *piVar8 = iVar13;
        return 0;
      }
      if (uVar14 <= uVar18) {
        iVar22 = param_1[6];
        iVar11 = FUN_00017a58(param_1 + 6,param_1 + 9,local_50 + 2 + uVar18);
        if (iVar11 == 0) goto LAB_000188cc;
        if ((param_1[6] != iVar22) && (local_54 = iVar11, (param_1[0xc] & 4U) != 0)) {
          local_58 = (undefined1 *)(param_1[6] + uVar19);
        }
        uVar14 = param_1[9] - uVar19;
      }
      if (uVar18 + uVar19 < uVar19) {
        (*(code *)PTR_free_000323d4)(iVar21);
        FUN_0001737c(local_6c);
        (*(code *)PTR_closedir_000322ac)(*(undefined4 *)(iVar20 + 0xc));
        uVar14 = param_1[0xc];
        *(undefined4 *)(iVar20 + 0xc) = 0;
        *(undefined2 *)(iVar20 + 0x3c) = 7;
        param_1[0xc] = uVar14 | 0x4000;
        *piVar8 = 0x4e;
        return 0;
      }
      uVar10 = param_1[0xc];
      uVar16 = puVar9[1];
      uVar15 = *puVar9;
      *(int *)(iVar21 + 4) = *param_1;
      *(uint *)(iVar21 + 0x28) = uVar18 + uVar19;
      *(int *)(iVar21 + 0x30) = iVar24 + 1;
      *(undefined4 *)(iVar21 + 0x5c) = uVar16;
      *(undefined4 *)(iVar21 + 0x58) = uVar15;
      puVar4 = PTR_memmove_000323d8;
      if ((uVar10 & 4) == 0) {
        *(int *)(iVar21 + 0x18) = iVar21 + 0xe8;
      }
      else {
        *(undefined4 *)(iVar21 + 0x18) = *(undefined4 *)(iVar21 + 0x1c);
        (*(code *)puVar4)(local_58,iVar21 + 0xe8,*(int *)(iVar21 + 0x34) + 1);
        uVar10 = param_1[0xc];
      }
      if ((param_1[0xb] == 0) || ((uVar10 & 0x400) != 0)) {
        uVar18 = (uint)*(byte *)((int)puVar9 + 0x12);
        if ((uVar10 & 0x18) == 0x18) {
          if (uVar18 == 0) {
            *(undefined2 *)(iVar21 + 0x3c) = 0xb;
            goto LAB_00018464;
          }
          if (uVar18 == 4) {
            *(undefined2 *)(iVar21 + 0x3c) = 0xb;
            goto LAB_00018368;
          }
          *(undefined2 *)(iVar21 + 0x3c) = 0xb;
          if (uVar18 - 1 < 0xc) {
            uVar15 = 1;
            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);
          }
          else {
            *(undefined4 *)(iVar21 + 0x60) = 0;
            uVar15 = 1;
          }
        }
        else {
          *(undefined2 *)(iVar21 + 0x3c) = 0xb;
          if (uVar18 - 1 < 0xc) {
LAB_00018368:
            uVar15 = 2;
            *(undefined4 *)(iVar21 + 0x60) = *(undefined4 *)(puVar3 + (uVar18 - 1) * 4 + 0x13a0);
          }
          else {
LAB_00018464:
            *(undefined4 *)(iVar21 + 0x60) = 0;
            uVar15 = 2;
          }
        }
        *(undefined4 *)(iVar21 + 0x84) = uVar15;
        *(undefined4 *)(iVar21 + 0x80) = 0;
      }
      else {
        uVar12 = (*pcVar7)(param_1[8],param_1 + 0xc,iVar21,0);
        *(undefined2 *)(iVar21 + 0x3c) = uVar12;
      }
      *(undefined4 *)(iVar21 + 8) = 0;
      iVar11 = iVar21;
      if (local_6c != 0) {
        *(int *)(iVar23 + 8) = iVar21;
        iVar11 = local_6c;
      }
      local_6c = iVar11;
      iVar23 = iVar21;
      if (iVar17 == 10000) {
        if (param_1[0xb] == 0) {
          iVar21 = (*pcVar6)(iVar20,local_40);
          if (((iVar21 == 0x6969) || (iVar21 == 0x1021994)) || (iVar21 == -0xacb2be)) {
            bVar2 = false;
            if (local_5c < 0x2712) goto LAB_00018814;
            goto LAB_000183bc;
          }
          bVar2 = true;
        }
        iVar17 = 0x2711;
      }
      else {
        if (local_5c <= iVar17 + 1U) {
LAB_00018814:
          iVar17 = iVar17 + 1;
          break;
        }
LAB_000183bc:
        iVar17 = iVar17 + 1;
      }
    }
    iVar21 = *(int *)(iVar20 + 0xc);
  }
  if (local_54 != 0) {
    iVar21 = param_1[6];
    for (iVar23 = param_1[1]; iVar24 = local_6c, iVar23 != 0; iVar23 = *(int *)(iVar23 + 8)) {
      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {
        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));
      }
      *(int *)(iVar23 + 0x1c) = iVar21;
    }
    while (iVar23 = iVar24, -1 < *(int *)(iVar23 + 0x30)) {
      if (*(int *)(iVar23 + 0x18) != iVar23 + 0xe8) {
        *(int *)(iVar23 + 0x18) = iVar21 + (*(int *)(iVar23 + 0x18) - *(int *)(iVar23 + 0x1c));
      }
      *(int *)(iVar23 + 0x1c) = iVar21;
      iVar24 = *(int *)(iVar23 + 8);
      if (*(int *)(iVar23 + 8) == 0) {
        iVar24 = *(int *)(iVar23 + 4);
      }
    }
  }
  if ((param_1[0xc] & 4U) != 0) {
    if ((param_1[9] == uVar19) || (iVar17 == 0)) {
      local_58 = local_58 + -1;
    }
    *local_58 = 0;
  }
  if ((iVar13 == 0) && (bVar1)) {
    if ((param_2 != 1) && (iVar17 != 0)) goto LAB_00018870;
    if (*(int *)(iVar20 + 0x30) == 0) {
      iVar13 = FUN_00017788(param_1);
    }
    else {
      iVar13 = FUN_00017c2c(param_1,*(undefined4 *)(iVar20 + 4),0xffffffff,
                            PTR_s_a_diagnostic_for_every_file_proc_00032108 + 0x1390);
    }
    if (iVar13 != 0) {
      uVar14 = param_1[0xc];
      *(undefined2 *)(iVar20 + 0x3c) = 7;
      param_1[0xc] = uVar14 | 0x4000;
      goto LAB_00018c18;
    }
  }
  if (iVar17 == 0) {
    if (((param_2 == 3) && (*(short *)(iVar20 + 0x3c) != 4)) && (*(short *)(iVar20 + 0x3c) != 7)) {
      *(undefined2 *)(iVar20 + 0x3c) = 6;
    }
LAB_00018c18:
    FUN_0001737c(local_6c);
    return 0;
  }
LAB_00018870:
  if (bVar2) {
    param_1[0xb] = (int)(PTR_00032104 + 0x7120);
    iVar13 = FUN_00017184(param_1,local_6c,iVar17);
    param_1[0xb] = 0;
    return iVar13;
  }
  if (param_1[0xb] == 0) {
    return local_6c;
  }
  if (iVar17 == 1) {
    return local_6c;
  }
  iVar13 = FUN_00017184(param_1,local_6c,iVar17);
  return iVar13;
}

