
FTSENT * fts_read(FTS *sp)

{
  undefined *puVar1;
  undefined2 extraout_var;
  undefined2 extraout_var_00;
  undefined2 extraout_var_01;
  undefined3 extraout_var_02;
  char *pcVar2;
  _Bool _Var9;
  ulong uVar3;
  undefined4 *puVar4;
  int *piVar5;
  ushort uVar8;
  int iVar6;
  leaf_optimization lVar7;
  uint uVar10;
  size_t sVar11;
  uint uVar12;
  FTS *pFVar13;
  size_t sVar14;
  _ftsent *fts_1;
  FTSENT *pFVar15;
  undefined1 *puVar16;
  FTSENT *pFVar17;
  FTSENT *pFVar18;
  
  pFVar15 = sp->fts_cur;
  if (pFVar15 == (FTSENT *)0x0) {
    return (FTSENT *)0x0;
  }
  uVar10 = sp->fts_options;
  if ((uVar10 & 0x4000) != 0) {
    return (FTSENT *)0x0;
  }
  uVar8 = pFVar15->fts_instr;
  pFVar15->fts_instr = 3;
  if (uVar8 == 1) {
    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);
    pFVar15->fts_info = uVar8;
    return pFVar15;
  }
  uVar12 = (uint)pFVar15->fts_info;
  pFVar18 = pFVar15;
  if (uVar8 == 2) {
    if (1 < uVar12 - 0xc) {
      if (uVar12 == 1) goto LAB_0001a554;
      goto LAB_0001a450;
    }
    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1);
    pFVar15->fts_info = uVar8;
    if (CONCAT22(extraout_var,uVar8) != 1) {
      sp->fts_cur = pFVar15;
      if (CONCAT22(extraout_var,uVar8) != 0xb) {
        return pFVar15;
      }
      goto LAB_0001a888;
    }
    if (((uint)sp->fts_options & 4) == 0) {
      iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,
                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74));
      pFVar15->fts_symfd = iVar6;
      if (iVar6 < 0) {
        piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();
        iVar6 = *piVar5;
        pFVar15->fts_info = 7;
        pFVar15->fts_errno = iVar6;
        sp->fts_cur = pFVar15;
        return pFVar15;
      }
      uVar10 = (uint)pFVar15->fts_info;
      pFVar15->fts_flags = pFVar15->fts_flags | 2;
      goto LAB_0001a7d8;
    }
    sp->fts_cur = pFVar15;
LAB_0001a7f0:
    if (pFVar15->fts_level != 0) goto LAB_0001a800;
  }
  else {
    if (uVar12 == 1) {
      if (uVar8 == 4) {
        uVar8 = pFVar15->fts_flags;
      }
      else {
LAB_0001a554:
        if (((uVar10 & 0x40) == 0) ||
           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {
          if (sp->fts_child == (FTSENT *)0x0) {
LAB_0001a8e4:
            pFVar18 = fts_build(sp,3);
            sp->fts_child = pFVar18;
            if (pFVar18 == (FTSENT *)0x0) {
              pFVar13 = (FTS *)sp->fts_options;
              if (((uint)pFVar13 & 0x4000) != 0) {
                return (FTSENT *)0x0;
              }
              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {
                pFVar15->fts_info = 7;
              }
              goto LAB_0001a5ac;
            }
          }
          else {
            if ((uVar10 & 0x2000) != 0) {
              sp->fts_options = uVar10 & 0xffffdfff;
              fts_lfree(sp->fts_child);
              sp->fts_child = (_ftsent *)0x0;
              goto LAB_0001a8e4;
            }
            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);
            if (iVar6 == 0) {
              pFVar15 = sp->fts_child;
              sp->fts_child = (_ftsent *)0x0;
              goto LAB_0001a788;
            }
            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();
            pFVar18 = sp->fts_child;
            pFVar15->fts_errno = *piVar5;
            pFVar15->fts_flags = pFVar15->fts_flags | 1;
            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {
              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;
            }
          }
          pFVar15 = pFVar18;
          sp->fts_child = (_ftsent *)0x0;
          goto LAB_0001a788;
        }
        uVar8 = pFVar15->fts_flags;
      }
      if ((uVar8 & 2) != 0) {
        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);
      }
      if (sp->fts_child != (FTSENT *)0x0) {
        fts_lfree(sp->fts_child);
        sp->fts_child = (_ftsent *)0x0;
      }
      pFVar13 = (FTS *)sp->fts_options;
      pFVar15->fts_info = 6;
LAB_0001a5ac:
      leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);
      return pFVar15;
    }
LAB_0001a450:
    do {
      puVar1 = PTR_free_000333cc;
      pFVar15 = pFVar18->fts_link;
      if (pFVar15 == (FTSENT *)0x0) {
        fts_1 = pFVar18->fts_parent;
        if (fts_1->fts_dirp != (DIR *)0x0) {
          sVar11 = fts_1->fts_pathlen;
          sp->fts_cur = fts_1;
          sp->fts_path[sVar11] = '\0';
          pFVar15 = fts_build(sp,3);
          if (pFVar15 != (FTSENT *)0x0) {
            (*(code *)PTR_free_000333cc)(pFVar18);
            goto LAB_0001a788;
          }
          if ((sp->fts_options & 0x4000U) != 0) {
            return (FTSENT *)0x0;
          }
          fts_1 = pFVar18->fts_parent;
        }
        puVar1 = PTR_free_000333cc;
        sp->fts_cur = fts_1;
        (*(code *)puVar1)(pFVar18);
        if (fts_1->fts_level == -1) {
          (*(code *)PTR_free_000333cc)(fts_1);
          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
          *puVar4 = 0;
          sp->fts_cur = (_ftsent *)0x0;
          return (FTSENT *)0x0;
        }
        if (fts_1->fts_info != 0xb) {
          sp->fts_path[fts_1->fts_pathlen] = '\0';
          if (fts_1->fts_level == 0) {
            iVar6 = restore_initial_cwd(sp);
            if (iVar6 == 0) goto LAB_0001a4d0;
LAB_0001a9fc:
            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();
            uVar10 = sp->fts_options;
            fts_1->fts_errno = *piVar5;
            sp->fts_options = uVar10 | 0x4000;
            if (fts_1->fts_info == 2) {
              return (FTSENT *)0x0;
            }
            pFVar13 = (FTS *)sp->fts_options;
          }
          else {
            if ((fts_1->fts_flags & 2) == 0) {
              if (((fts_1->fts_flags & 1) == 0) &&
                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70
                                            ), iVar6 != 0)) goto LAB_0001a9fc;
            }
            else {
              iVar6 = fts_1->fts_symfd;
              if ((sp->fts_options & 4U) == 0) {
                if ((sp->fts_options & 0x200U) == 0) {
                  iVar6 = (*(code *)PTR_fchdir_000332f4)();
                  if (iVar6 == 0) {
                    iVar6 = fts_1->fts_symfd;
                  }
                  else {
                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();
                    uVar10 = sp->fts_options;
                    iVar6 = fts_1->fts_symfd;
                    fts_1->fts_errno = *piVar5;
                    sp->fts_options = uVar10 | 0x4000;
                  }
                }
                else {
                  cwd_advance_fd(sp,iVar6,true);
                  iVar6 = fts_1->fts_symfd;
                }
              }
              (*(code *)PTR_close_000332c0)(iVar6);
            }
LAB_0001a4d0:
            pFVar13 = (FTS *)sp->fts_options;
            if (fts_1->fts_info == 2) goto LAB_0001a50c;
          }
          if (fts_1->fts_errno == 0) {
            fts_1->fts_info = 6;
            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);
            pFVar13 = (FTS *)sp->fts_options;
          }
          else {
            fts_1->fts_info = 7;
          }
LAB_0001a50c:
          if (((uint)pFVar13 & 0x4000) == 0) {
            return fts_1;
          }
          return (FTSENT *)0x0;
        }
        goto LAB_0001a898;
      }
      sp->fts_cur = pFVar15;
      (*(code *)puVar1)(pFVar18);
      if (pFVar15->fts_level == 0) {
        iVar6 = restore_initial_cwd(sp);
        if (iVar6 != 0) {
          sp->fts_options = sp->fts_options | 0x4000;
          return (FTSENT *)0x0;
        }
        if ((sp->fts_options & 0x102U) == 0) {
          (*(code *)PTR_free_000333cc)();
        }
        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {
          hash_free((sp->fts_cycle).ht);
        }
        puVar1 = PTR_memmove_000333d0;
        pFVar17 = pFVar15 + 1;
        pcVar2 = sp->fts_path;
        pFVar15->fts_pathlen = pFVar15->fts_namelen;
        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);
        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);
        if ((pFVar18 != (FTSENT *)0x0) &&
           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {
          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);
          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);
          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);
          pFVar15->fts_namelen = sVar11;
        }
        pcVar2 = sp->fts_path;
        pFVar13 = (FTS *)sp->fts_options;
        pFVar15->fts_path = pcVar2;
        pFVar15->fts_accpath = pcVar2;
        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);
        uVar10 = (uint)pFVar15->fts_info;
        goto LAB_0001a7d8;
      }
      pFVar18 = pFVar15;
    } while (pFVar15->fts_instr == 4);
    if (pFVar15->fts_instr == 2) {
      uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)
      ;
      pFVar15->fts_info = uVar8;
      if ((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)) {
        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,
                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));
        pFVar15->fts_symfd = iVar6;
        if (iVar6 < 0) {
          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();
          iVar6 = *piVar5;
          pFVar15->fts_info = 7;
          pFVar15->fts_errno = iVar6;
          pFVar15->fts_instr = 3;
        }
        else {
          pFVar15->fts_flags = pFVar15->fts_flags | 2;
          pFVar15->fts_instr = 3;
        }
      }
      else {
        pFVar15->fts_instr = 3;
      }
    }
LAB_0001a788:
    puVar1 = PTR_memmove_000333d0;
    pcVar2 = sp->fts_path;
    sVar14 = pFVar15->fts_parent->fts_pathlen;
    sVar11 = sVar14 - 1;
    if (pFVar15->fts_parent->fts_path[sVar11] != '/') {
      sVar11 = sVar14;
    }
    pcVar2[sVar11] = '/';
    (*(code *)puVar1)(pcVar2 + sVar11 + 1,pFVar15 + 1,pFVar15->fts_namelen + 1);
    uVar10 = (uint)pFVar15->fts_info;
LAB_0001a7d8:
    sp->fts_cur = pFVar15;
    if (uVar10 != 0xb) {
LAB_0001a7e4:
      if (uVar10 != 1) {
        return pFVar15;
      }
      goto LAB_0001a7f0;
    }
LAB_0001a888:
    iVar6 = (int)pFVar15->fts_statp[0].st_size;
    if (*(int *)&pFVar15->fts_statp[0].st_size != 0) {
LAB_0001a898:
      pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();
      return pFVar15;
    }
    if (iVar6 != 2) {
      if (iVar6 == 1) {
        return pFVar15;
      }
      goto LAB_0001a898;
    }
    pFVar18 = pFVar15->fts_parent;
    pFVar13 = (FTS *)sp->fts_cwd_fd;
    if ((pFVar18->fts_n_dirs_remaining == 0) && ((sp->fts_options & 0x18U) == 0x18)) {
      lVar7 = leaf_optimization(pFVar18,(int)pFVar13);
      if (lVar7 == NOSTAT_LEAF_OPTIMIZATION) {
        uVar10 = (uint)pFVar15->fts_info;
        goto LAB_0001a7e4;
      }
      pFVar13 = (FTS *)sp->fts_cwd_fd;
    }
    uVar8 = fts_stat(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);
    uVar10 = CONCAT22(extraout_var_00,uVar8);
    uVar12 = pFVar15->fts_statp[0].st_mode;
    pFVar15->fts_info = uVar8;
    if ((uVar12 & 0xf000) != 0x4000) goto LAB_0001a7e4;
    if (pFVar15->fts_level != 0) {
      uVar12 = pFVar18->fts_n_dirs_remaining - 1;
      if (uVar12 < 0xfffffffe) {
        pFVar18->fts_n_dirs_remaining = uVar12;
      }
      if (uVar10 != 1) {
        return pFVar15;
      }
      goto LAB_0001a800;
    }
    if (uVar10 != 1) {
      return pFVar15;
    }
  }
  uVar3 = pFVar15->fts_statp[0].st_dev;
  *(undefined4 *)&sp->fts_dev = 0;
  *(ulong *)((int)&sp->fts_dev + 4) = uVar3;
LAB_0001a800:
  _Var9 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);
  if (CONCAT31(extraout_var_02,_Var9) == 0) {
    pFVar15 = (FTSENT *)0x0;
    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
    *puVar4 = 0xc;
  }
  return pFVar15;
}



int fts_read(int *param_1)

{
  short sVar1;
  ushort uVar2;
  undefined *puVar3;
  undefined2 uVar6;
  undefined4 *puVar4;
  int iVar5;
  uint uVar7;
  int iVar8;
  uint uVar9;
  undefined4 uVar10;
  int iVar11;
  int iVar12;
  
  iVar12 = *param_1;
  if (iVar12 == 0) {
    return 0;
  }
  uVar7 = param_1[0xc];
  if ((uVar7 & 0x4000) != 0) {
    return 0;
  }
  sVar1 = *(short *)(iVar12 + 0x40);
  *(undefined2 *)(iVar12 + 0x40) = 3;
  if (sVar1 == 1) {
    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);
    *(undefined2 *)(iVar12 + 0x3c) = uVar6;
    return iVar12;
  }
  uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);
  iVar5 = iVar12;
  if (sVar1 == 2) {
    if (1 < uVar9 - 0xc) {
      if (uVar9 == 1) goto LAB_0001a554;
      goto LAB_0001a450;
    }
    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);
    *(short *)(iVar12 + 0x3c) = (short)iVar5;
    if (iVar5 != 1) {
      *param_1 = iVar12;
      if (iVar5 != 0xb) {
        return iVar12;
      }
      goto LAB_0001a888;
    }
    if ((param_1[0xc] & 4U) == 0) {
      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);
      *(int *)(iVar12 + 0x24) = iVar5;
      if (iVar5 < 0) {
        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
        uVar10 = *puVar4;
        *(undefined2 *)(iVar12 + 0x3c) = 7;
        *(undefined4 *)(iVar12 + 0x20) = uVar10;
        *param_1 = iVar12;
        return iVar12;
      }
      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);
      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;
      goto LAB_0001a7d8;
    }
    *param_1 = iVar12;
LAB_0001a7f0:
    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;
  }
  else {
    if (uVar9 == 1) {
      if (sVar1 == 4) {
        uVar2 = *(ushort *)(iVar12 + 0x3e);
      }
      else {
LAB_0001a554:
        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))
        {
          if (param_1[1] == 0) {
LAB_0001a8e4:
            iVar5 = FUN_000190b8(param_1,3);
            param_1[1] = iVar5;
            if (iVar5 == 0) {
              uVar7 = param_1[0xc];
              if ((uVar7 & 0x4000) != 0) {
                return 0;
              }
              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {
                *(undefined2 *)(iVar12 + 0x3c) = 7;
              }
              goto LAB_0001a5ac;
            }
          }
          else {
            if ((uVar7 & 0x2000) != 0) {
              param_1[0xc] = uVar7 & 0xffffdfff;
              FUN_0001831c();
              param_1[1] = 0;
              goto LAB_0001a8e4;
            }
            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));
            if (iVar5 == 0) {
              iVar12 = param_1[1];
              param_1[1] = 0;
              goto LAB_0001a788;
            }
            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
            iVar5 = param_1[1];
            *(undefined4 *)(iVar12 + 0x20) = *puVar4;
            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;
            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {
              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);
            }
          }
          iVar12 = iVar5;
          param_1[1] = 0;
          goto LAB_0001a788;
        }
        uVar2 = *(ushort *)(iVar12 + 0x3e);
      }
      if ((uVar2 & 2) != 0) {
        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));
      }
      if (param_1[1] != 0) {
        FUN_0001831c();
        param_1[1] = 0;
      }
      uVar7 = param_1[0xc];
      *(undefined2 *)(iVar12 + 0x3c) = 6;
LAB_0001a5ac:
      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);
      return iVar12;
    }
LAB_0001a450:
    do {
      puVar3 = PTR_free_000333cc;
      iVar12 = *(int *)(iVar5 + 8);
      if (iVar12 == 0) {
        iVar12 = *(int *)(iVar5 + 4);
        if (*(int *)(iVar12 + 0xc) != 0) {
          iVar8 = *(int *)(iVar12 + 0x28);
          *param_1 = iVar12;
          *(undefined1 *)(param_1[6] + iVar8) = 0;
          iVar12 = FUN_000190b8(param_1,3);
          if (iVar12 != 0) {
            (*(code *)PTR_free_000333cc)(iVar5);
            goto LAB_0001a788;
          }
          if ((param_1[0xc] & 0x4000U) != 0) {
            return 0;
          }
          iVar12 = *(int *)(iVar5 + 4);
        }
        puVar3 = PTR_free_000333cc;
        *param_1 = iVar12;
        (*(code *)puVar3)(iVar5);
        if (*(int *)(iVar12 + 0x30) == -1) {
          (*(code *)PTR_free_000333cc)(iVar12);
          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
          *puVar4 = 0;
          *param_1 = 0;
          return 0;
        }
        if (*(short *)(iVar12 + 0x3c) != 0xb) {
          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;
          if (*(int *)(iVar12 + 0x30) == 0) {
            iVar5 = FUN_00018728(param_1);
            if (iVar5 == 0) goto LAB_0001a4d0;
LAB_0001a9fc:
            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
            uVar7 = param_1[0xc];
            *(undefined4 *)(iVar12 + 0x20) = *puVar4;
            param_1[0xc] = uVar7 | 0x4000;
            if (*(short *)(iVar12 + 0x3c) == 2) {
              return 0;
            }
            uVar7 = param_1[0xc];
          }
          else {
            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {
              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&
                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,
                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))
              goto LAB_0001a9fc;
            }
            else {
              uVar10 = *(undefined4 *)(iVar12 + 0x24);
              if ((param_1[0xc] & 4U) == 0) {
                if ((param_1[0xc] & 0x200U) == 0) {
                  iVar5 = (*(code *)PTR_fchdir_000332f4)();
                  if (iVar5 == 0) {
                    uVar10 = *(undefined4 *)(iVar12 + 0x24);
                  }
                  else {
                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
                    uVar7 = param_1[0xc];
                    uVar10 = *(undefined4 *)(iVar12 + 0x24);
                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;
                    param_1[0xc] = uVar7 | 0x4000;
                  }
                }
                else {
                  FUN_00018658(param_1,uVar10,1);
                  uVar10 = *(undefined4 *)(iVar12 + 0x24);
                }
              }
              (*(code *)PTR_close_000332c0)(uVar10);
            }
LAB_0001a4d0:
            uVar7 = param_1[0xc];
            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;
          }
          if (*(int *)(iVar12 + 0x20) == 0) {
            *(undefined2 *)(iVar12 + 0x3c) = 6;
            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);
            uVar7 = param_1[0xc];
          }
          else {
            *(undefined2 *)(iVar12 + 0x3c) = 7;
          }
LAB_0001a50c:
          if ((uVar7 & 0x4000) == 0) {
            return iVar12;
          }
          return 0;
        }
        goto LAB_0001a898;
      }
      *param_1 = iVar12;
      (*(code *)puVar3)(iVar5);
      if (*(int *)(iVar12 + 0x30) == 0) {
        iVar5 = FUN_00018728(param_1);
        if (iVar5 != 0) {
          param_1[0xc] = param_1[0xc] | 0x4000;
          return 0;
        }
        if ((param_1[0xc] & 0x102U) == 0) {
          (*(code *)PTR_free_000333cc)();
        }
        else if (param_1[0xe] != 0) {
          hash_free();
        }
        puVar3 = PTR_memmove_000333d0;
        iVar8 = iVar12 + 0xe8;
        iVar5 = param_1[6];
        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);
        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);
        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);
        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {
          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);
          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);
          *(int *)(iVar12 + 0x34) = iVar11;
        }
        iVar5 = param_1[6];
        iVar8 = param_1[0xc];
        *(int *)(iVar12 + 0x1c) = iVar5;
        *(int *)(iVar12 + 0x18) = iVar5;
        FUN_00018abc(iVar8,param_1 + 0xe);
        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);
        goto LAB_0001a7d8;
      }
      iVar5 = iVar12;
    } while (*(short *)(iVar12 + 0x40) == 4);
    if (*(short *)(iVar12 + 0x40) == 2) {
      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);
      *(short *)(iVar12 + 0x3c) = (short)iVar5;
      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {
        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);
        *(int *)(iVar12 + 0x24) = iVar5;
        if (iVar5 < 0) {
          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
          uVar10 = *puVar4;
          *(undefined2 *)(iVar12 + 0x3c) = 7;
          *(undefined4 *)(iVar12 + 0x20) = uVar10;
          *(undefined2 *)(iVar12 + 0x40) = 3;
        }
        else {
          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;
          *(undefined2 *)(iVar12 + 0x40) = 3;
        }
      }
      else {
        *(undefined2 *)(iVar12 + 0x40) = 3;
      }
    }
LAB_0001a788:
    puVar3 = PTR_memmove_000333d0;
    iVar8 = param_1[6];
    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);
    iVar5 = iVar11 + -1;
    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {
      iVar5 = iVar11;
    }
    *(undefined1 *)(iVar8 + iVar5) = 0x2f;
    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);
    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);
LAB_0001a7d8:
    *param_1 = iVar12;
    if (uVar7 != 0xb) {
LAB_0001a7e4:
      if (uVar7 != 1) {
        return iVar12;
      }
      goto LAB_0001a7f0;
    }
LAB_0001a888:
    if (*(int *)(iVar12 + 0x80) != 0) {
LAB_0001a898:
      iVar12 = (*(code *)PTR_abort_000332d0)();
      return iVar12;
    }
    if (*(int *)(iVar12 + 0x84) != 2) {
      if (*(int *)(iVar12 + 0x84) == 1) {
        return iVar12;
      }
      goto LAB_0001a898;
    }
    iVar8 = *(int *)(iVar12 + 4);
    iVar5 = param_1[8];
    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {
      iVar5 = FUN_000185a4(iVar8,iVar5);
      if (iVar5 == 2) {
        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);
        goto LAB_0001a7e4;
      }
      iVar5 = param_1[8];
    }
    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);
    *(short *)(iVar12 + 0x3c) = (short)uVar7;
    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;
    if (*(int *)(iVar12 + 0x30) != 0) {
      uVar9 = *(int *)(iVar8 + 0x38) - 1;
      if (uVar9 < 0xfffffffe) {
        *(uint *)(iVar8 + 0x38) = uVar9;
      }
      if (uVar7 != 1) {
        return iVar12;
      }
      goto LAB_0001a800;
    }
    if (uVar7 != 1) {
      return iVar12;
    }
  }
  iVar5 = *(int *)(iVar12 + 0x48);
  param_1[4] = 0;
  param_1[5] = iVar5;
LAB_0001a800:
  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);
  if (iVar5 == 0) {
    iVar12 = 0;
    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
    *puVar4 = 0xc;
  }
  return iVar12;
}


lui gp,0x2
addiu gp,gp,0xd18
addu gp,gp,t9
addiu sp,sp,-0x38
sw s1,0x28(sp)
sw gp,0x10(sp)
sw ra,0x34(sp)
sw s3,0x30(sp)
sw s2,0x2c(sp)
sw s0,0x24(sp)
lw s1,0x0(a0)
beq s1,zero,0x0001a5dc
_nop
lw v1,0x30(a0)
andi v0,v1,0x4000
bne v0,zero,0x0001a5dc
_or s2,a0,zero
lhu v0,0x40(s1)
li s0,0x1
li a0,0x3
beq v0,s0,0x0001a8a0
_sh a0,0x40(s1)
li a1,0x2
beq v0,a1,0x0001a53c
_lhu a0,0x3c(s1)
beq a0,s0,0x0001a600
_li a0,0x4
b 0x0001a450
_li s3,0x4
or a0,s1,zero
jalr t9
_sw s0,0x0(s2)
lw v0,0x30(s0)
beq v0,zero,0x0001a6a0
_lw gp,0x10(sp)
lhu v0,0x40(s0)
bne v0,s3,0x0001a77c
_or s1,s0,zero
lw s0,0x8(s1)
bne s0,zero,0x0001a42c
_lw t9,-0x7d04(gp)
lw s0,0x4(s1)
lw v0,0xc(s0)
bne v0,zero,0x0001aadc
_li a1,0x3
lw t9,-0x7d04(gp)
or a0,s1,zero
jalr t9
_sw s0,0x0(s2)
li v0,-0x1
lw v1,0x30(s0)
beq v1,v0,0x0001a9b0
_lw gp,0x10(sp)
lhu v1,0x3c(s0)
li v0,0xb
beq v1,v0,0x0001a898
_lw t9,-0x7e00(gp)
lw v0,0x18(s2)
lw v1,0x28(s0)
addu v0,v0,v1
sb zero,0x0(v0)
lw v0,0x30(s0)
beq v0,zero,0x0001a9e4
_lw t9,-0x7fc8(gp)
lhu v0,0x3e(s0)
andi v1,v0,0x2
bne v1,zero,0x0001a940
_andi v0,v0,0x1
beq v0,zero,0x0001abd8
_lw a3,-0x7fc8(gp)
lhu v1,0x3c(s0)
li v0,0x2
beq v1,v0,0x0001a50c
_lw a0,0x30(s2)
lw v0,0x20(s0)
bne v0,zero,0x0001a9dc
_li v0,0x7
lw t9,-0x7fc8(gp)
li v0,0x6
addiu a1,s2,0x38
sh v0,0x3c(s0)
addiu t9,t9,-0x707c
bal 0x00018f84
_or a2,s0,zero
lw a0,0x30(s2)
andi a0,a0,0x4000
bne a0,zero,0x0001a5e0
_or s1,zero,zero
or s1,s0,zero
lw ra,0x34(sp)
or v0,s1,zero
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x38
addiu v0,a0,-0xc
sltiu v0,v0,0x2
bne v0,zero,0x0001a854
_lw t9,-0x7fc8(gp)
bne a0,s0,0x0001a450
_li s3,0x4
andi v0,v1,0x40
beq v0,zero,0x0001a61c
_nop
lw v0,0x10(s2)
beq v0,zero,0x0001a610
_lw a0,0x48(s1)
lhu v0,0x3e(s1)
andi v0,v0,0x2
bne v0,zero,0x0001ab48
_lw t9,-0x7e10(gp)
lw a0,0x4(s2)
beq a0,zero,0x0001a59c
_lw t9,-0x7fc8(gp)
addiu t9,t9,-0x7ce4
bal 0x0001831c
_nop
lw gp,0x10(sp)
sw zero,0x4(s2)
li v0,0x6
lw a0,0x30(s2)
addiu a1,s2,0x38
sh v0,0x3c(s1)
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x707c
bal 0x00018f84
_or a2,s1,zero
or v0,s1,zero
lw ra,0x34(sp)
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x38
or s1,zero,zero
lw ra,0x34(sp)
or v0,s1,zero
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x38
bne v0,a0,0x0001a554
_nop
b 0x0001a570
_lhu v0,0x3e(s1)
lw v0,0x14(s2)
bne v0,a0,0x0001a56c
_nop
lw a0,0x4(s2)
beq a0,zero,0x0001a8e4
_andi v0,v1,0x2000
bne v0,zero,0x0001a8c4
_lw t9,-0x7fc8(gp)
li a2,-0x1
lw a3,0x18(s1)
or a1,s1,zero
addiu t9,t9,-0x7434
bal 0x00018bcc
_or a0,s2,zero
beq v0,zero,0x0001a990
_lw gp,0x10(sp)
lw t9,-0x7da0(gp)
jalr t9
_nop
lhu v1,0x3e(s1)
lw v0,0x0(v0)
lw s0,0x4(s2)
ori v1,v1,0x1
lw gp,0x10(sp)
sw v0,0x20(s1)
beq s0,zero,0x0001a698
_sh v1,0x3e(s1)
or v0,s0,zero
lw v1,0x4(v0)
lw v1,0x18(v1)
sw v1,0x18(v0)
lw v0,0x8(v0)
bne v0,zero,0x0001a680
_nop
b 0x0001a788
_sw zero,0x4(s2)
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x78d8
bal 0x00018728
_or a0,s2,zero
bne v0,zero,0x0001ab20
_lw gp,0x10(sp)
lw v0,0x30(s2)
andi v0,v0,0x102
beq v0,zero,0x0001ab34
_lw a0,0x38(s2)
beq a0,zero,0x0001a6dc
_lw t9,-0x7e98(gp)
bal 0x0001d484
_nop
lw gp,0x10(sp)
lw v0,0x34(s0)
addiu s3,s0,0xe8
lw t9,-0x7d00(gp)
lw a0,0x18(s2)
or a1,s3,zero
addiu a2,v0,0x1
jalr t9
_sw v0,0x28(s0)
li a1,0x2f
lw gp,0x10(sp)
lw t9,-0x7dc8(gp)
jalr t9
_or a0,s3,zero
beq v0,zero,0x0001a750
_lw gp,0x10(sp)
beq s3,v0,0x0001a99c
_addiu s1,v0,0x1
lw t9,-0x7d7c(gp)
jalr t9
_or a0,s1,zero
or a1,s1,zero
lw gp,0x10(sp)
addiu a2,v0,0x1
or s1,v0,zero
lw t9,-0x7d00(gp)
jalr t9
_or a0,s3,zero
lw gp,0x10(sp)
sw s1,0x34(s0)
lw t9,-0x7fc8(gp)
addiu a1,s2,0x38
lw v0,0x18(s2)
lw a0,0x30(s2)
addiu t9,t9,-0x7544
sw v0,0x1c(s0)
bal 0x00018abc
_sw v0,0x18(s0)
lw gp,0x10(sp)
b 0x0001a7d8
_lhu v0,0x3c(s0)
li v1,0x2
beq v0,v1,0x0001ab58
_lw t9,-0x7fc8(gp)
lw v1,0x4(s0)
addiu a1,s0,0xe8
lw v0,0x18(s2)
lw t9,-0x7d00(gp)
lw a2,0x28(v1)
lw a0,0x1c(v1)
addiu v1,a2,-0x1
addu a0,a0,v1
lb a0,0x0(a0)
xori a0,a0,0x2f
movn v1,a2,a0
addu v0,v0,v1
li v1,0x2f
addiu a0,v0,0x1
sb v1,0x0(v0)
lw a2,0x34(s0)
jalr t9
_addiu a2,a2,0x1
lw gp,0x10(sp)
lhu v0,0x3c(s0)
li v1,0xb
beq v0,v1,0x0001a888
_sw s0,0x0(s2)
li v1,0x1
bne v0,v1,0x0001a51c
_or s1,s0,zero
lw v0,0x30(s0)
beq v0,zero,0x0001a840
_nop
or s1,s0,zero
lw t9,-0x7fc8(gp)
addiu a1,s2,0x38
lw a0,0x30(s2)
addiu t9,t9,-0x71b0
bal 0x00018e50
_or a2,s0,zero
bne v0,zero,0x0001a5e0
_lw gp,0x10(sp)
lw t9,-0x7da0(gp)
jalr t9
_or s1,zero,zero
li v1,0xc
b 0x0001a5e0
_sw v1,0x0(v0)
bne v0,v1,0x0001a518
_nop
lw v0,0x48(s0)
or s1,s0,zero
sw zero,0x10(s2)
b 0x0001a800
_sw v0,0x14(s2)
li a3,0x1
lw a0,0x20(s2)
addiu a1,s2,0x30
addiu t9,t9,-0x7840
bal 0x000187c0
_or a2,s1,zero
lw gp,0x10(sp)
beq v0,s0,0x0001ac3c
_sh v0,0x3c(s1)
li v1,0xb
bne v0,v1,0x0001a5e0
_sw s1,0x0(s2)
or s0,s1,zero
lw v0,0x80(s0)
beq v0,zero,0x0001aa34
_lw s1,0x84(s0)
lw t9,-0x7e00(gp)
jalr t9
_nop
lw t9,-0x7fc8(gp)
or a3,zero,zero
lw a0,0x20(s2)
addiu a1,s2,0x30
addiu t9,t9,-0x7840
bal 0x000187c0
_or a2,s1,zero
b 0x0001a5e0
_sh v0,0x3c(s1)
lw t9,-0x7fc8(gp)
li v0,-0x2001
and v1,v1,v0
addiu t9,t9,-0x7ce4
bal 0x0001831c
_sw v1,0x30(s2)
lw gp,0x10(sp)
sw zero,0x4(s2)
lw t9,-0x7fc8(gp)
li a1,0x3
addiu t9,t9,-0x6f48
bal 0x000190b8
_or a0,s2,zero
lw gp,0x10(sp)
or s0,v0,zero
bne v0,zero,0x0001a698
_sw v0,0x4(s2)
lw a0,0x30(s2)
andi v0,a0,0x4000
bne v0,zero,0x0001a5dc
_nop
lw v0,0x20(s1)
beq v0,zero,0x0001a5ac
_addiu a1,s2,0x38
lhu v1,0x3c(s1)
li v0,0x4
beq v1,v0,0x0001a938
_li v0,0x7
sh v0,0x3c(s1)
b 0x0001a5ac
_addiu a1,s2,0x38
lw v0,0x30(s2)
andi v1,v0,0x4
bne v1,zero,0x0001a97c
_lw a0,0x24(s0)
andi v0,v0,0x200
beq v0,zero,0x0001ac24
_lw t9,-0x7ddc(gp)
lw t9,-0x7fc8(gp)
li a2,0x1
or a1,a0,zero
addiu t9,t9,-0x79a8
bal 0x00018658
_or a0,s2,zero
lw gp,0x10(sp)
lw a0,0x24(s0)
lw t9,-0x7e10(gp)
jalr t9
_nop
b 0x0001a4d0
_lw gp,0x10(sp)
lw s0,0x4(s2)
b 0x0001a788
_sw zero,0x4(s2)
lb v1,0x1(s3)
beq v1,zero,0x0001a754
_lw t9,-0x7fc8(gp)
b 0x0001a720
_addiu s1,v0,0x1
lw t9,-0x7d04(gp)
or a0,s0,zero
jalr t9
_or s1,zero,zero
lw gp,0x10(sp)
lw t9,-0x7da0(gp)
jalr t9
_nop
sw zero,0x0(v0)
b 0x0001a5e0
_sw zero,0x0(s2)
b 0x0001a50c
_sh v0,0x3c(s0)
addiu t9,t9,-0x78d8
bal 0x00018728
_or a0,s2,zero
beq v0,zero,0x0001a4d0
_lw gp,0x10(sp)
lw t9,-0x7da0(gp)
jalr t9
_nop
lw v1,0x30(s2)
lw v0,0x0(v0)
lw gp,0x10(sp)
ori v1,v1,0x4000
sw v0,0x20(s0)
li v0,0x2
sw v1,0x30(s2)
lhu v1,0x3c(s0)
beq v1,v0,0x0001a5e0
_or s1,zero,zero
b 0x0001a4e0
_lw a0,0x30(s2)
li v0,0x2
beq s1,v0,0x0001aa50
_li v0,0x1
bne s1,v0,0x0001a898
_lw t9,-0x7e00(gp)
b 0x0001a51c
_or s1,s0,zero
lw s3,0x4(s0)
lw v0,0x38(s3)
bne v0,zero,0x0001aa74
_lw a0,0x20(s2)
lw v0,0x30(s2)
li v1,0x18
andi v0,v0,0x18
beq v0,v1,0x0001ac54
_lw t9,-0x7fc8(gp)
lw t9,-0x7fc8(gp)
or a3,zero,zero
addiu a1,s2,0x30
addiu t9,t9,-0x7840
bal 0x000187c0
_or a2,s0,zero
li a0,0x4000
lw v1,0x60(s0)
lw gp,0x10(sp)
andi v1,v1,0xf000
bne v1,a0,0x0001a7e4
_sh v0,0x3c(s0)
lw v1,0x30(s0)
beq v1,zero,0x0001a838
_li v1,0x1
lw v1,0x38(s3)
addiu v1,v1,-0x1
sltiu a0,v1,-0x2
beq a0,zero,0x0001aac8
_nop
sw v1,0x38(s3)
li v1,0x1
beq v0,v1,0x0001a7fc
_or s1,s0,zero
b 0x0001a520
_lw ra,0x34(sp)
lw v1,0x28(s0)
lw v0,0x18(s2)
or a0,s2,zero
lw t9,-0x7fc8(gp)
sw s0,0x0(s2)
addu v0,v0,v1
addiu t9,t9,-0x6f48
bal 0x000190b8
_sb zero,0x0(v0)
bne v0,zero,0x0001ac04
_lw gp,0x10(sp)
lw v0,0x30(s2)
andi v0,v0,0x4000
bne v0,zero,0x0001a5dc
_nop
b 0x0001a46c
_lw s0,0x4(s1)
lw v0,0x30(s2)
or s1,zero,zero
ori v0,v0,0x4000
b 0x0001a5e0
_sw v0,0x30(s2)
lw t9,-0x7d04(gp)
jalr t9
_nop
b 0x0001a6dc
_lw gp,0x10(sp)
jalr t9
_lw a0,0x24(s1)
b 0x0001a57c
_lw gp,0x10(sp)
li a3,0x1
lw a0,0x20(s2)
addiu a1,s2,0x30
addiu t9,t9,-0x7840
bal 0x000187c0
_or a2,s0,zero
li v1,0x1
lw gp,0x10(sp)
beq v0,v1,0x0001ab8c
_sh v0,0x3c(s0)
li v0,0x3
b 0x0001a788
_sh v0,0x40(s0)
lw a1,0x30(s2)
andi v0,a1,0x4
bne v0,zero,0x0001ab84
_li v0,0x3
lw a2,-0x7fc8(gp)
lw t9,-0x7fc8(gp)
lw a0,0x20(s2)
addiu t9,t9,-0x7490
bal 0x00018b70
_addiu a2,a2,0x1d74
lw gp,0x10(sp)
bltz v0,0x0001ad08
_sw v0,0x24(s0)
lhu v0,0x3e(s0)
ori v0,v0,0x2
sh v0,0x3e(s0)
li v0,0x3
b 0x0001a788
_sh v0,0x40(s0)
li a2,-0x1
lw t9,-0x7fc8(gp)
or a0,s2,zero
lw a1,0x4(s0)
addiu t9,t9,-0x7434
bal 0x00018bcc
_addiu a3,a3,0x1d70
beq v0,zero,0x0001a4d0
_lw gp,0x10(sp)
b 0x0001a9fc
_lw t9,-0x7da0(gp)
lw t9,-0x7d04(gp)
or a0,s1,zero
jalr t9
_sw v0,0x1c(sp)
lw v0,0x1c(sp)
lw gp,0x10(sp)
b 0x0001a788
_or s0,v0,zero
jalr t9
_nop
bne v0,zero,0x0001ac74
_lw gp,0x10(sp)
b 0x0001a97c
_lw a0,0x24(s0)
lw a1,0x30(s2)
andi v0,a1,0x4
beq v0,zero,0x0001aca0
_or s0,s1,zero
b 0x0001a7f0
_sw s1,0x0(s2)
or a1,a0,zero
addiu t9,t9,-0x7a5c
bal 0x000185a4
_or a0,s3,zero
beq v0,s1,0x0001acdc
_lw gp,0x10(sp)
b 0x0001aa74
_lw a0,0x20(s2)
lw t9,-0x7da0(gp)
jalr t9
_nop
lw v1,0x30(s2)
lw v0,0x0(v0)
lw gp,0x10(sp)
ori v1,v1,0x4000
lw a0,0x24(s0)
sw v0,0x20(s0)
b 0x0001a97c
_sw v1,0x30(s2)
lw a2,-0x7fc8(gp)
lw t9,-0x7fc8(gp)
lw a0,0x20(s2)
addiu t9,t9,-0x7490
bal 0x00018b70
_addiu a2,a2,0x1d74
lw gp,0x10(sp)
bltz v0,0x0001ace4
_sw v0,0x24(s1)
lhu v1,0x3e(s1)
or s0,s1,zero
lhu v0,0x3c(s1)
ori v1,v1,0x2
b 0x0001a7d8
_sh v1,0x3e(s1)
b 0x0001a7e4
_lhu v0,0x3c(s0)
lw t9,-0x7da0(gp)
jalr t9
_nop
li v1,0x7
lw v0,0x0(v0)
sh v1,0x3c(s1)
sw v0,0x20(s1)
b 0x0001a5e0
_sw s1,0x0(s2)
lw t9,-0x7da0(gp)
jalr t9
_nop
li v1,0x7
lw v0,0x0(v0)
lw gp,0x10(sp)
sh v1,0x3c(s0)
sw v0,0x20(s0)
li v0,0x3
b 0x0001a788
_sh v0,0x40(s0)
(translation_unit "int fts_read(int *param_1)\n\n{\n  short sVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined2 uVar6;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  \n  iVar12 = *param_1;\n  if (iVar12 == 0) {\n    return 0;\n  }\n  uVar7 = param_1[0xc];\n  if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }\n  sVar1 = *(short *)(iVar12 + 0x40);\n  *(undefined2 *)(iVar12 + 0x40) = 3;\n  if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }\n  uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);\n  iVar5 = iVar12;\n  if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }\n  iVar5 = *(int *)(iVar12 + 0x48);\n  param_1[4] = 0;\n  param_1[5] = iVar5;\nLAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);\n  if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return iVar12;\n}\n\n" (function_definition "int fts_read(int *param_1)\n\n{\n  short sVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined2 uVar6;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  \n  iVar12 = *param_1;\n  if (iVar12 == 0) {\n    return 0;\n  }\n  uVar7 = param_1[0xc];\n  if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }\n  sVar1 = *(short *)(iVar12 + 0x40);\n  *(undefined2 *)(iVar12 + 0x40) = 3;\n  if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }\n  uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);\n  iVar5 = iVar12;\n  if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }\n  iVar5 = *(int *)(iVar12 + 0x48);\n  param_1[4] = 0;\n  param_1[5] = iVar5;\nLAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);\n  if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return iVar12;\n}" primitive_type (function_declarator "fts_read(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  short sVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined2 uVar6;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  \n  iVar12 = *param_1;\n  if (iVar12 == 0) {\n    return 0;\n  }\n  uVar7 = param_1[0xc];\n  if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }\n  sVar1 = *(short *)(iVar12 + 0x40);\n  *(undefined2 *)(iVar12 + 0x40) = 3;\n  if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }\n  uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);\n  iVar5 = iVar12;\n  if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }\n  iVar5 = *(int *)(iVar12 + 0x48);\n  param_1[4] = 0;\n  param_1[5] = iVar5;\nLAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);\n  if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return iVar12;\n}" { (declaration "short sVar1;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined2 uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (expression_statement "iVar12 = *param_1;" (assignment_expression "iVar12 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar12 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (if_statement "if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }" if (parenthesized_expression "((uVar7 & 0x4000) != 0)" ( (binary_expression "(uVar7 & 0x4000) != 0" (parenthesized_expression "(uVar7 & 0x4000)" ( (binary_expression "uVar7 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "sVar1 = *(short *)(iVar12 + 0x40);" (assignment_expression "sVar1 = *(short *)(iVar12 + 0x40)" identifier = (pointer_expression "*(short *)(iVar12 + 0x40)" * (cast_expression "(short *)(iVar12 + 0x40)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" * (cast_expression "(undefined2 *)(iVar12 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }" if (parenthesized_expression "(sVar1 == 1)" ( (binary_expression "sVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }" { (expression_statement "uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);" (assignment_expression "uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0)" identifier = (call_expression "FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0)" identifier (argument_list "(param_1[8],param_1 + 0xc,iVar12,0)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = uVar6;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = uVar6" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = identifier) ;) (return_statement "return iVar12;" return identifier ;) })) (expression_statement "uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar9 = (uint)*(ushort *)(iVar12 + 0x3c)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iVar12;" (assignment_expression "iVar5 = iVar12" identifier = identifier) ;) (if_statement "if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }" if (parenthesized_expression "(sVar1 == 2)" ( (binary_expression "sVar1 == 2" identifier == number_literal) )) (compound_statement "{\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }" { (if_statement "if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }" if (parenthesized_expression "(1 < uVar9 - 0xc)" ( (binary_expression "1 < uVar9 - 0xc" number_literal < (binary_expression "uVar9 - 0xc" identifier - number_literal)) )) (compound_statement "{\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }" { (if_statement "if (uVar9 == 1) goto LAB_0001a554;" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0001a554;" goto statement_identifier ;)) (goto_statement "goto LAB_0001a450;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);" (assignment_expression "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" identifier = (call_expression "FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" identifier (argument_list "(param_1[8],param_1 + 0xc,iVar12,1)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(short *)(iVar12 + 0x3c) = (short)iVar5;" (assignment_expression "*(short *)(iVar12 + 0x3c) = (short)iVar5" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = (cast_expression "(short)iVar5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }" if (parenthesized_expression "(iVar5 != 1)" ( (binary_expression "iVar5 != 1" identifier != number_literal) )) (compound_statement "{\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }" { (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (iVar5 != 0xb) {\n        return iVar12;\n      }" if (parenthesized_expression "(iVar5 != 0xb)" ( (binary_expression "iVar5 != 0xb" identifier != number_literal) )) (compound_statement "{\n        return iVar12;\n      }" { (return_statement "return iVar12;" return identifier ;) })) (goto_statement "goto LAB_0001a888;" goto statement_identifier ;) })) (if_statement "if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\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      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }" { (expression_statement "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);" (assignment_expression "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" identifier = (call_expression "FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" identifier (argument_list "(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (subscript_expression "param_1[0xc]" identifier [ number_literal ]) , (binary_expression "PTR_fdopendir_00033108 + 0x1d74" identifier + number_literal) )))) ;) (expression_statement "*(int *)(iVar12 + 0x24) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x24) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x24)" * (cast_expression "(int *)(iVar12 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar10 = *puVar4;" (assignment_expression "uVar10 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = uVar10;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = uVar10" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" * (cast_expression "(undefined4 *)(iVar12 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return iVar12;" return identifier ;) })) (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;" (assignment_expression "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_0001a7d8;" goto statement_identifier ;) })) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (labeled_statement "LAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;" statement_identifier : (if_statement "if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;" if (parenthesized_expression "(*(int *)(iVar12 + 0x30) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x30) != 0" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0001a800;" goto statement_identifier ;))) }) (else_clause "else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }" else (compound_statement "{\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }" { (if_statement "if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (compound_statement "{\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }" { (if_statement "if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" if (parenthesized_expression "(sVar1 == 4)" ( (binary_expression "sVar1 == 4" identifier == number_literal) )) (compound_statement "{\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" { (expression_statement "uVar2 = *(ushort *)(iVar12 + 0x3e);" (assignment_expression "uVar2 = *(ushort *)(iVar12 + 0x3e)" identifier = (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) ))))) ;) }) (else_clause "else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" else (compound_statement "{\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" { (labeled_statement "LAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }" statement_identifier : (if_statement "if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }" if (parenthesized_expression "(((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))" ( (binary_expression "((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48))))" (parenthesized_expression "((uVar7 & 0x40) == 0)" ( (binary_expression "(uVar7 & 0x40) == 0" (parenthesized_expression "(uVar7 & 0x40)" ( (binary_expression "uVar7 & 0x40" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48))))" ( (parenthesized_expression "(param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))" ( (binary_expression "param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48))" (binary_expression "param_1[4] == 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(param_1[5] == *(int *)(iVar12 + 0x48))" ( (binary_expression "param_1[5] == *(int *)(iVar12 + 0x48)" (subscript_expression "param_1[5]" identifier [ number_literal ]) == (pointer_expression "*(int *)(iVar12 + 0x48)" * (cast_expression "(int *)(iVar12 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x48)" ( (binary_expression "iVar12 + 0x48" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }" { (if_statement "if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }" if (parenthesized_expression "(param_1[1] == 0)" ( (binary_expression "param_1[1] == 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }" { (labeled_statement "LAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);" statement_identifier : (expression_statement "iVar5 = FUN_000190b8(param_1,3);" (assignment_expression "iVar5 = FUN_000190b8(param_1,3)" identifier = (call_expression "FUN_000190b8(param_1,3)" identifier (argument_list "(param_1,3)" ( identifier , number_literal )))) ;)) (expression_statement "param_1[1] = iVar5;" (assignment_expression "param_1[1] = iVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }" { (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (if_statement "if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }" if (parenthesized_expression "((uVar7 & 0x4000) != 0)" ( (binary_expression "(uVar7 & 0x4000) != 0" (parenthesized_expression "(uVar7 & 0x4000)" ( (binary_expression "uVar7 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }" if (parenthesized_expression "((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4))" ( (binary_expression "(*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)" (parenthesized_expression "(*(int *)(iVar12 + 0x20) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x20) != 0" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(short *)(iVar12 + 0x3c) != 4)" ( (binary_expression "*(short *)(iVar12 + 0x3c) != 4" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }" { (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_0001a5ac;" goto statement_identifier ;) })) }) (else_clause "else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }" else (compound_statement "{\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }" { (if_statement "if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }" if (parenthesized_expression "((uVar7 & 0x2000) != 0)" ( (binary_expression "(uVar7 & 0x2000) != 0" (parenthesized_expression "(uVar7 & 0x2000)" ( (binary_expression "uVar7 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }" { (expression_statement "param_1[0xc] = uVar7 & 0xffffdfff;" (assignment_expression "param_1[0xc] = uVar7 & 0xffffdfff" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar7 & 0xffffdfff" identifier & number_literal)) ;) (expression_statement "FUN_0001831c();" (call_expression "FUN_0001831c()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0001a8e4;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));" (assignment_expression "iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18))" identifier = (call_expression "FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18))" identifier (argument_list "(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18))" ( identifier , identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }" { (expression_statement "iVar12 = param_1[1];" (assignment_expression "iVar12 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0001a788;" goto statement_identifier ;) })) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar5 = param_1[1];" (assignment_expression "iVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = *puVar4;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = *puVar4" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" * (cast_expression "(undefined4 *)(iVar12 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;" (assignment_expression "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar12 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) | number_literal)) ;) (for_statement "for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }" for ( (assignment_expression "iVar12 = iVar5" identifier = identifier) ; (binary_expression "iVar12 != 0" identifier != number_literal) ; (assignment_expression "iVar12 = *(int *)(iVar12 + 8)" identifier = (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ) (compound_statement "{\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }" { (expression_statement "*(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);" (assignment_expression "*(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18)" (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(iVar12 + 4) + 0x18)" * (cast_expression "(undefined4 *)(*(int *)(iVar12 + 4) + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar12 + 4) + 0x18)" ( (binary_expression "*(int *)(iVar12 + 4) + 0x18" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) })) }))) (expression_statement "iVar12 = iVar5;" (assignment_expression "iVar12 = iVar5" identifier = identifier) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0001a788;" goto statement_identifier ;) }))) (expression_statement "uVar2 = *(ushort *)(iVar12 + 0x3e);" (assignment_expression "uVar2 = *(ushort *)(iVar12 + 0x3e)" identifier = (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) ))))) ;) }))) (if_statement "if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }" { (expression_statement "(*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));" (call_expression "(*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24))" (parenthesized_expression "(*(code *)PTR_close_000332c0)" ( (pointer_expression "*(code *)PTR_close_000332c0" * (cast_expression "(code *)PTR_close_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar12 + 0x24))" ( (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) )))) ))) ;) })) (if_statement "if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }" if (parenthesized_expression "(param_1[1] != 0)" ( (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_0001831c();\n        param_1[1] = 0;\n      }" { (expression_statement "FUN_0001831c();" (call_expression "FUN_0001831c()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 6;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 6" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);" statement_identifier : (expression_statement "FUN_00018f84(uVar7,param_1 + 0xe,iVar12);" (call_expression "FUN_00018f84(uVar7,param_1 + 0xe,iVar12)" identifier (argument_list "(uVar7,param_1 + 0xe,iVar12)" ( identifier , (binary_expression "param_1 + 0xe" identifier + number_literal) , identifier ))) ;)) (return_statement "return iVar12;" return identifier ;) })) (labeled_statement "LAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);" statement_identifier : (do_statement "do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);" do (compound_statement "{\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    }" { (expression_statement "puVar3 = PTR_free_000333cc;" (assignment_expression "puVar3 = PTR_free_000333cc" identifier = identifier) ;) (expression_statement "iVar12 = *(int *)(iVar5 + 8);" (assignment_expression "iVar12 = *(int *)(iVar5 + 8)" identifier = (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }" { (expression_statement "iVar12 = *(int *)(iVar5 + 4);" (assignment_expression "iVar12 = *(int *)(iVar5 + 4)" identifier = (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }" if (parenthesized_expression "(*(int *)(iVar12 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar12 + 0xc) != 0" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }" { (expression_statement "iVar8 = *(int *)(iVar12 + 0x28);" (assignment_expression "iVar8 = *(int *)(iVar12 + 0x28)" identifier = (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(undefined1 *)(param_1[6] + iVar8) = 0;" (assignment_expression "*(undefined1 *)(param_1[6] + iVar8) = 0" (pointer_expression "*(undefined1 *)(param_1[6] + iVar8)" * (cast_expression "(undefined1 *)(param_1[6] + iVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + iVar8)" ( (binary_expression "param_1[6] + iVar8" (subscript_expression "param_1[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "iVar12 = FUN_000190b8(param_1,3);" (assignment_expression "iVar12 = FUN_000190b8(param_1,3)" identifier = (call_expression "FUN_000190b8(param_1,3)" identifier (argument_list "(param_1,3)" ( identifier , number_literal )))) ;) (if_statement "if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }" { (expression_statement "(*(code *)PTR_free_000333cc)(iVar5);" (call_expression "(*(code *)PTR_free_000333cc)(iVar5)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (goto_statement "goto LAB_0001a788;" goto statement_identifier ;) })) (if_statement "if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }" if (parenthesized_expression "((param_1[0xc] & 0x4000U) != 0)" ( (binary_expression "(param_1[0xc] & 0x4000U) != 0" (parenthesized_expression "(param_1[0xc] & 0x4000U)" ( (binary_expression "param_1[0xc] & 0x4000U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = *(int *)(iVar5 + 4);" (assignment_expression "iVar12 = *(int *)(iVar5 + 4)" identifier = (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "puVar3 = PTR_free_000333cc;" (assignment_expression "puVar3 = PTR_free_000333cc" identifier = identifier) ;) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar3)(iVar5);" (call_expression "(*(code *)puVar3)(iVar5)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }" if (parenthesized_expression "(*(int *)(iVar12 + 0x30) == -1)" ( (binary_expression "*(int *)(iVar12 + 0x30) == -1" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }" { (expression_statement "(*(code *)PTR_free_000333cc)(iVar12);" (call_expression "(*(code *)PTR_free_000333cc)(iVar12)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier ))) ;) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }" if (parenthesized_expression "(*(short *)(iVar12 + 0x3c) != 0xb)" ( (binary_expression "*(short *)(iVar12 + 0x3c) != 0xb" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }" { (expression_statement "*(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;" (assignment_expression "*(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0" (pointer_expression "*(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28))" * (cast_expression "(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + *(int *)(iVar12 + 0x28))" ( (binary_expression "param_1[6] + *(int *)(iVar12 + 0x28)" (subscript_expression "param_1[6]" identifier [ number_literal ]) + (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) )))) = number_literal) ;) (if_statement "if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }" if (parenthesized_expression "(*(int *)(iVar12 + 0x30) == 0)" ( (binary_expression "*(int *)(iVar12 + 0x30) == 0" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }" { (expression_statement "iVar5 = FUN_00018728(param_1);" (assignment_expression "iVar5 = FUN_00018728(param_1)" identifier = (call_expression "FUN_00018728(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0001a4d0;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a4d0;" goto statement_identifier ;)) (labeled_statement "LAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" statement_identifier : (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = *puVar4;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = *puVar4" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" * (cast_expression "(undefined4 *)(iVar12 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "param_1[0xc] = uVar7 | 0x4000;" (assignment_expression "param_1[0xc] = uVar7 | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar7 | 0x4000" identifier | number_literal)) ;) (if_statement "if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }" if (parenthesized_expression "(*(short *)(iVar12 + 0x3c) == 2)" ( (binary_expression "*(short *)(iVar12 + 0x3c) == 2" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }" else (compound_statement "{\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }" { (if_statement "if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }" if (parenthesized_expression "((*(ushort *)(iVar12 + 0x3e) & 2) == 0)" ( (binary_expression "(*(ushort *)(iVar12 + 0x3e) & 2) == 0" (parenthesized_expression "(*(ushort *)(iVar12 + 0x3e) & 2)" ( (binary_expression "*(ushort *)(iVar12 + 0x3e) & 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }" { (if_statement "if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;" if (parenthesized_expression "(((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))" ( (binary_expression "((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0)" (parenthesized_expression "((*(ushort *)(iVar12 + 0x3e) & 1) == 0)" ( (binary_expression "(*(ushort *)(iVar12 + 0x3e) & 1) == 0" (parenthesized_expression "(*(ushort *)(iVar12 + 0x3e) & 1)" ( (binary_expression "*(ushort *)(iVar12 + 0x3e) & 1" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0)" ( (comma_expression "iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0" (assignment_expression "iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70)" identifier = (call_expression "FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70)" identifier (argument_list "(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70)" ( identifier , (pointer_expression "*(undefined4 *)(iVar12 + 4)" * (cast_expression "(undefined4 *)(iVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) , number_literal , (binary_expression "PTR_fdopendir_00033108 + 0x1d70" identifier + number_literal) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001a9fc;" goto statement_identifier ;)) }) (else_clause "else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }" else (compound_statement "{\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }" { (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\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[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }" { (if_statement "if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }" if (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) )) (compound_statement "{\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }" { (expression_statement "iVar5 = (*(code *)PTR_fchdir_000332f4)();" (assignment_expression "iVar5 = (*(code *)PTR_fchdir_000332f4)()" identifier = (call_expression "(*(code *)PTR_fchdir_000332f4)()" (parenthesized_expression "(*(code *)PTR_fchdir_000332f4)" ( (pointer_expression "*(code *)PTR_fchdir_000332f4" * (cast_expression "(code *)PTR_fchdir_000332f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }" { (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }" else (compound_statement "{\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = *puVar4;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = *puVar4" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" * (cast_expression "(undefined4 *)(iVar12 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "param_1[0xc] = uVar7 | 0x4000;" (assignment_expression "param_1[0xc] = uVar7 | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar7 | 0x4000" identifier | number_literal)) ;) }))) }) (else_clause "else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }" else (compound_statement "{\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }" { (expression_statement "FUN_00018658(param_1,uVar10,1);" (call_expression "FUN_00018658(param_1,uVar10,1)" identifier (argument_list "(param_1,uVar10,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) }))) })) (expression_statement "(*(code *)PTR_close_000332c0)(uVar10);" (call_expression "(*(code *)PTR_close_000332c0)(uVar10)" (parenthesized_expression "(*(code *)PTR_close_000332c0)" ( (pointer_expression "*(code *)PTR_close_000332c0" * (cast_expression "(code *)PTR_close_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10)" ( identifier ))) ;) }))) (labeled_statement "LAB_0001a4d0:\n            uVar7 = param_1[0xc];" statement_identifier : (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;)) (if_statement "if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;" if (parenthesized_expression "(*(short *)(iVar12 + 0x3c) == 2)" ( (binary_expression "*(short *)(iVar12 + 0x3c) == 2" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001a50c;" goto statement_identifier ;)) }))) (if_statement "if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }" if (parenthesized_expression "(*(int *)(iVar12 + 0x20) == 0)" ( (binary_expression "*(int *)(iVar12 + 0x20) == 0" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }" { (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 6;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 6" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00018f84(uVar7,param_1 + 0xe,iVar12);" (call_expression "FUN_00018f84(uVar7,param_1 + 0xe,iVar12)" identifier (argument_list "(uVar7,param_1 + 0xe,iVar12)" ( identifier , (binary_expression "param_1 + 0xe" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }" else (compound_statement "{\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }" { (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }" statement_identifier : (if_statement "if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }" if (parenthesized_expression "((uVar7 & 0x4000) == 0)" ( (binary_expression "(uVar7 & 0x4000) == 0" (parenthesized_expression "(uVar7 & 0x4000)" ( (binary_expression "uVar7 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            return iVar12;\n          }" { (return_statement "return iVar12;" return identifier ;) }))) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_0001a898;" goto statement_identifier ;) })) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar3)(iVar5);" (call_expression "(*(code *)puVar3)(iVar5)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 0x30) == 0)" ( (binary_expression "*(int *)(iVar12 + 0x30) == 0" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }" { (expression_statement "iVar5 = FUN_00018728(param_1);" (assignment_expression "iVar5 = FUN_00018728(param_1)" identifier = (call_expression "FUN_00018728(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }" { (expression_statement "param_1[0xc] = param_1[0xc] | 0x4000;" (assignment_expression "param_1[0xc] = param_1[0xc] | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "param_1[0xc] | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) | number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }" if (parenthesized_expression "((param_1[0xc] & 0x102U) == 0)" ( (binary_expression "(param_1[0xc] & 0x102U) == 0" (parenthesized_expression "(param_1[0xc] & 0x102U)" ( (binary_expression "param_1[0xc] & 0x102U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_000333cc)();\n        }" { (expression_statement "(*(code *)PTR_free_000333cc)();" (call_expression "(*(code *)PTR_free_000333cc)()" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }) (else_clause "else if (param_1[0xe] != 0) {\n          hash_free();\n        }" else (if_statement "if (param_1[0xe] != 0) {\n          hash_free();\n        }" if (parenthesized_expression "(param_1[0xe] != 0)" ( (binary_expression "param_1[0xe] != 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          hash_free();\n        }" { (expression_statement "hash_free();" (call_expression "hash_free()" identifier (argument_list "()" ( ))) ;) })))) (expression_statement "puVar3 = PTR_memmove_000333d0;" (assignment_expression "puVar3 = PTR_memmove_000333d0" identifier = identifier) ;) (expression_statement "iVar8 = iVar12 + 0xe8;" (assignment_expression "iVar8 = iVar12 + 0xe8" identifier = (binary_expression "iVar12 + 0xe8" identifier + number_literal)) ;) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);" (assignment_expression "*(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34)" (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);" (call_expression "(*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1)" ( identifier , identifier , (binary_expression "*(int *)(iVar12 + 0x34) + 1" (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);" (assignment_expression "iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f)" identifier = (call_expression "(*(code *)PTR_strrchr_00033308)(iVar8,0x2f)" (parenthesized_expression "(*(code *)PTR_strrchr_00033308)" ( (pointer_expression "*(code *)PTR_strrchr_00033308" * (cast_expression "(code *)PTR_strrchr_00033308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }" if (parenthesized_expression "((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0'))))" ( (binary_expression "(iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))" ( (parenthesized_expression "(iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0'))" ( (binary_expression "iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')" (binary_expression "iVar8 != iVar5" identifier != identifier) || (parenthesized_expression "(*(char *)(iVar12 + 0xe9) != '\0')" ( (binary_expression "*(char *)(iVar12 + 0xe9) != '\0'" (pointer_expression "*(char *)(iVar12 + 0xe9)" * (cast_expression "(char *)(iVar12 + 0xe9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe9)" ( (binary_expression "iVar12 + 0xe9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }" { (expression_statement "iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);" (assignment_expression "iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1)" identifier = (call_expression "(*(code *)PTR_strlen_00033354)(iVar5 + 1)" (parenthesized_expression "(*(code *)PTR_strlen_00033354)" ( (pointer_expression "*(code *)PTR_strlen_00033354" * (cast_expression "(code *)PTR_strlen_00033354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);" (call_expression "(*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_000333d0)" ( (pointer_expression "*(code *)PTR_memmove_000333d0" * (cast_expression "(code *)PTR_memmove_000333d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,iVar5 + 1,iVar11 + 1)" ( identifier , (binary_expression "iVar5 + 1" identifier + number_literal) , (binary_expression "iVar11 + 1" identifier + number_literal) ))) ;) (expression_statement "*(int *)(iVar12 + 0x34) = iVar11;" (assignment_expression "*(int *)(iVar12 + 0x34) = iVar11" (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = param_1[0xc];" (assignment_expression "iVar8 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar12 + 0x1c) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x1c) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x1c)" * (cast_expression "(int *)(iVar12 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar12 + 0x18) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x18) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x18)" * (cast_expression "(int *)(iVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00018abc(iVar8,param_1 + 0xe);" (call_expression "FUN_00018abc(iVar8,param_1 + 0xe)" identifier (argument_list "(iVar8,param_1 + 0xe)" ( identifier , (binary_expression "param_1 + 0xe" identifier + number_literal) ))) ;) (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001a7d8;" goto statement_identifier ;) })) (expression_statement "iVar5 = iVar12;" (assignment_expression "iVar5 = iVar12" identifier = identifier) ;) }) while (parenthesized_expression "(*(short *)(iVar12 + 0x40) == 4)" ( (binary_expression "*(short *)(iVar12 + 0x40) == 4" (pointer_expression "*(short *)(iVar12 + 0x40)" * (cast_expression "(short *)(iVar12 + 0x40)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) == number_literal) )) ;)) (if_statement "if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }" if (parenthesized_expression "(*(short *)(iVar12 + 0x40) == 2)" ( (binary_expression "*(short *)(iVar12 + 0x40) == 2" (pointer_expression "*(short *)(iVar12 + 0x40)" * (cast_expression "(short *)(iVar12 + 0x40)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }" { (expression_statement "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);" (assignment_expression "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" identifier = (call_expression "FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" identifier (argument_list "(param_1[8],param_1 + 0xc,iVar12,1)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(short *)(iVar12 + 0x3c) = (short)iVar5;" (assignment_expression "*(short *)(iVar12 + 0x3c) = (short)iVar5" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = (cast_expression "(short)iVar5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }" if (parenthesized_expression "((iVar5 == 1) && ((param_1[0xc] & 4U) == 0))" ( (binary_expression "(iVar5 == 1) && ((param_1[0xc] & 4U) == 0)" (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) && (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        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }" { (expression_statement "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);" (assignment_expression "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" identifier = (call_expression "FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" identifier (argument_list "(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (subscript_expression "param_1[0xc]" identifier [ number_literal ]) , (binary_expression "PTR_fdopendir_00033108 + 0x1d74" identifier + number_literal) )))) ;) (expression_statement "*(int *)(iVar12 + 0x24) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x24) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x24)" * (cast_expression "(int *)(iVar12 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar10 = *puVar4;" (assignment_expression "uVar10 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = uVar10;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = uVar10" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" * (cast_expression "(undefined4 *)(iVar12 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" * (cast_expression "(undefined2 *)(iVar12 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" else (compound_statement "{\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" { (expression_statement "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;" (assignment_expression "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" * (cast_expression "(undefined2 *)(iVar12 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }" else (compound_statement "{\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }" { (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" * (cast_expression "(undefined2 *)(iVar12 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) = number_literal) ;) }))) })) (labeled_statement "LAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;" statement_identifier : (expression_statement "puVar3 = PTR_memmove_000333d0;" (assignment_expression "puVar3 = PTR_memmove_000333d0" identifier = identifier) ;)) (expression_statement "iVar8 = param_1[6];" (assignment_expression "iVar8 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);" (assignment_expression "iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28)" identifier = (pointer_expression "*(int *)(*(int *)(iVar12 + 4) + 0x28)" * (cast_expression "(int *)(*(int *)(iVar12 + 4) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar12 + 4) + 0x28)" ( (binary_expression "*(int *)(iVar12 + 4) + 0x28" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = iVar11 + -1;" (assignment_expression "iVar5 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (if_statement "if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/')" ( (binary_expression "*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/'" (pointer_expression "*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5)" * (cast_expression "(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5)" ( (binary_expression "*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5" (pointer_expression "*(int *)(*(int *)(iVar12 + 4) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar12 + 4) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar12 + 4) + 0x1c)" ( (binary_expression "*(int *)(iVar12 + 4) + 0x1c" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) + number_literal) )))) + identifier) )))) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n      iVar5 = iVar11;\n    }" { (expression_statement "iVar5 = iVar11;" (assignment_expression "iVar5 = iVar11" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)(iVar8 + iVar5) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar8 + iVar5) = 0x2f" (pointer_expression "*(undefined1 *)(iVar8 + iVar5)" * (cast_expression "(undefined1 *)(iVar8 + iVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar5)" ( (binary_expression "iVar8 + iVar5" identifier + identifier) )))) = number_literal) ;) (expression_statement "(*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);" (call_expression "(*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1)" ( (binary_expression "(undefined1 *)(iVar8 + iVar5) + 1" (cast_expression "(undefined1 *)(iVar8 + iVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar5)" ( (binary_expression "iVar8 + iVar5" identifier + identifier) ))) + number_literal) , (binary_expression "iVar12 + 0xe8" identifier + number_literal) , (binary_expression "*(int *)(iVar12 + 0x34) + 1" (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0001a7d8:\n    *param_1 = iVar12;" statement_identifier : (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;)) (if_statement "if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }" if (parenthesized_expression "(uVar7 != 0xb)" ( (binary_expression "uVar7 != 0xb" identifier != number_literal) )) (compound_statement "{\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }" { (labeled_statement "LAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }" statement_identifier : (if_statement "if (uVar7 != 1) {\n        return iVar12;\n      }" if (parenthesized_expression "(uVar7 != 1)" ( (binary_expression "uVar7 != 1" identifier != number_literal) )) (compound_statement "{\n        return iVar12;\n      }" { (return_statement "return iVar12;" return identifier ;) }))) (goto_statement "goto LAB_0001a7f0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }" statement_identifier : (if_statement "if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }" if (parenthesized_expression "(*(int *)(iVar12 + 0x80) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x80) != 0" (pointer_expression "*(int *)(iVar12 + 0x80)" * (cast_expression "(int *)(iVar12 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x80)" ( (binary_expression "iVar12 + 0x80" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }" { (labeled_statement "LAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();" statement_identifier : (expression_statement "iVar12 = (*(code *)PTR_abort_000332d0)();" (assignment_expression "iVar12 = (*(code *)PTR_abort_000332d0)()" identifier = (call_expression "(*(code *)PTR_abort_000332d0)()" (parenthesized_expression "(*(code *)PTR_abort_000332d0)" ( (pointer_expression "*(code *)PTR_abort_000332d0" * (cast_expression "(code *)PTR_abort_000332d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return iVar12;" return identifier ;) }))) (if_statement "if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }" if (parenthesized_expression "(*(int *)(iVar12 + 0x84) != 2)" ( (binary_expression "*(int *)(iVar12 + 0x84) != 2" (pointer_expression "*(int *)(iVar12 + 0x84)" * (cast_expression "(int *)(iVar12 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x84)" ( (binary_expression "iVar12 + 0x84" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }" { (if_statement "if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 0x84) == 1)" ( (binary_expression "*(int *)(iVar12 + 0x84) == 1" (pointer_expression "*(int *)(iVar12 + 0x84)" * (cast_expression "(int *)(iVar12 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x84)" ( (binary_expression "iVar12 + 0x84" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        return iVar12;\n      }" { (return_statement "return iVar12;" return identifier ;) })) (goto_statement "goto LAB_0001a898;" goto statement_identifier ;) })) (expression_statement "iVar8 = *(int *)(iVar12 + 4);" (assignment_expression "iVar8 = *(int *)(iVar12 + 4)" identifier = (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = param_1[8];" (assignment_expression "iVar5 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (if_statement "if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }" if (parenthesized_expression "((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18))" ( (binary_expression "(*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)" (parenthesized_expression "(*(int *)(iVar8 + 0x38) == 0)" ( (binary_expression "*(int *)(iVar8 + 0x38) == 0" (pointer_expression "*(int *)(iVar8 + 0x38)" * (cast_expression "(int *)(iVar8 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x38)" ( (binary_expression "iVar8 + 0x38" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((param_1[0xc] & 0x18U) == 0x18)" ( (binary_expression "(param_1[0xc] & 0x18U) == 0x18" (parenthesized_expression "(param_1[0xc] & 0x18U)" ( (binary_expression "param_1[0xc] & 0x18U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }" { (expression_statement "iVar5 = FUN_000185a4(iVar8,iVar5);" (assignment_expression "iVar5 = FUN_000185a4(iVar8,iVar5)" identifier = (call_expression "FUN_000185a4(iVar8,iVar5)" identifier (argument_list "(iVar8,iVar5)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }" if (parenthesized_expression "(iVar5 == 2)" ( (binary_expression "iVar5 == 2" identifier == number_literal) )) (compound_statement "{\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }" { (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001a7e4;" goto statement_identifier ;) })) (expression_statement "iVar5 = param_1[8];" (assignment_expression "iVar5 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) })) (expression_statement "uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);" (assignment_expression "uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0)" identifier = (call_expression "FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0)" identifier (argument_list "(iVar5,param_1 + 0xc,iVar12,0)" ( identifier , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(short *)(iVar12 + 0x3c) = (short)uVar7;" (assignment_expression "*(short *)(iVar12 + 0x3c) = (short)uVar7" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = (cast_expression "(short)uVar7" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;" if (parenthesized_expression "((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(iVar12 + 0x60) & 0xf000)" ( (binary_expression "*(uint *)(iVar12 + 0x60) & 0xf000" (pointer_expression "*(uint *)(iVar12 + 0x60)" * (cast_expression "(uint *)(iVar12 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x60)" ( (binary_expression "iVar12 + 0x60" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a7e4;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }" if (parenthesized_expression "(*(int *)(iVar12 + 0x30) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x30) != 0" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }" { (expression_statement "uVar9 = *(int *)(iVar8 + 0x38) - 1;" (assignment_expression "uVar9 = *(int *)(iVar8 + 0x38) - 1" identifier = (binary_expression "*(int *)(iVar8 + 0x38) - 1" (pointer_expression "*(int *)(iVar8 + 0x38)" * (cast_expression "(int *)(iVar8 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x38)" ( (binary_expression "iVar8 + 0x38" identifier + number_literal) )))) - number_literal)) ;) (if_statement "if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }" if (parenthesized_expression "(uVar9 < 0xfffffffe)" ( (binary_expression "uVar9 < 0xfffffffe" identifier < number_literal) )) (compound_statement "{\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }" { (expression_statement "*(uint *)(iVar8 + 0x38) = uVar9;" (assignment_expression "*(uint *)(iVar8 + 0x38) = uVar9" (pointer_expression "*(uint *)(iVar8 + 0x38)" * (cast_expression "(uint *)(iVar8 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x38)" ( (binary_expression "iVar8 + 0x38" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar7 != 1) {\n        return iVar12;\n      }" if (parenthesized_expression "(uVar7 != 1)" ( (binary_expression "uVar7 != 1" identifier != number_literal) )) (compound_statement "{\n        return iVar12;\n      }" { (return_statement "return iVar12;" return identifier ;) })) (goto_statement "goto LAB_0001a800;" goto statement_identifier ;) })) (if_statement "if (uVar7 != 1) {\n      return iVar12;\n    }" if (parenthesized_expression "(uVar7 != 1)" ( (binary_expression "uVar7 != 1" identifier != number_literal) )) (compound_statement "{\n      return iVar12;\n    }" { (return_statement "return iVar12;" return identifier ;) })) }))) (expression_statement "iVar5 = *(int *)(iVar12 + 0x48);" (assignment_expression "iVar5 = *(int *)(iVar12 + 0x48)" identifier = (pointer_expression "*(int *)(iVar12 + 0x48)" * (cast_expression "(int *)(iVar12 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x48)" ( (binary_expression "iVar12 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = iVar5;" (assignment_expression "param_1[5] = iVar5" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);" statement_identifier : (expression_statement "iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);" (assignment_expression "iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12)" identifier = (call_expression "FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12)" identifier (argument_list "(param_1[0xc],param_1 + 0xe,iVar12)" ( (subscript_expression "param_1[0xc]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xe" identifier + number_literal) , identifier )))) ;)) (if_statement "if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar4 = 0xc;" (assignment_expression "*puVar4 = 0xc" (pointer_expression "*puVar4" * identifier) = number_literal) ;) })) (return_statement "return iVar12;" return identifier ;) })))
(translation_unit "FTSENT * fts_read(FTS *sp)\n\n{\n  undefined *puVar1;\n  undefined2 extraout_var;\n  undefined2 extraout_var_00;\n  undefined2 extraout_var_01;\n  undefined3 extraout_var_02;\n  char *pcVar2;\n  _Bool _Var9;\n  ulong uVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  ushort uVar8;\n  int iVar6;\n  leaf_optimization lVar7;\n  uint uVar10;\n  size_t sVar11;\n  uint uVar12;\n  FTS *pFVar13;\n  size_t sVar14;\n  _ftsent *fts_1;\n  FTSENT *pFVar15;\n  undefined1 *puVar16;\n  FTSENT *pFVar17;\n  FTSENT *pFVar18;\n  \n  pFVar15 = sp->fts_cur;\n  if (pFVar15 == (FTSENT *)0x0) {\n    return (FTSENT *)0x0;\n  }\n  uVar10 = sp->fts_options;\n  if ((uVar10 & 0x4000) != 0) {\n    return (FTSENT *)0x0;\n  }\n  uVar8 = pFVar15->fts_instr;\n  pFVar15->fts_instr = 3;\n  if (uVar8 == 1) {\n    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    pFVar15->fts_info = uVar8;\n    return pFVar15;\n  }\n  uVar12 = (uint)pFVar15->fts_info;\n  pFVar18 = pFVar15;\n  if (uVar8 == 2) {\n    if (1 < uVar12 - 0xc) {\n      if (uVar12 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1);\n    pFVar15->fts_info = uVar8;\n    if (CONCAT22(extraout_var,uVar8) != 1) {\n      sp->fts_cur = pFVar15;\n      if (CONCAT22(extraout_var,uVar8) != 0xb) {\n        return pFVar15;\n      }\n      goto LAB_0001a888;\n    }\n    if (((uint)sp->fts_options & 4) == 0) {\n      iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n      pFVar15->fts_symfd = iVar6;\n      if (iVar6 < 0) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n        iVar6 = *piVar5;\n        pFVar15->fts_info = 7;\n        pFVar15->fts_errno = iVar6;\n        sp->fts_cur = pFVar15;\n        return pFVar15;\n      }\n      uVar10 = (uint)pFVar15->fts_info;\n      pFVar15->fts_flags = pFVar15->fts_flags | 2;\n      goto LAB_0001a7d8;\n    }\n    sp->fts_cur = pFVar15;\nLAB_0001a7f0:\n    if (pFVar15->fts_level != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar12 == 1) {\n      if (uVar8 == 4) {\n        uVar8 = pFVar15->fts_flags;\n      }\n      else {\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }\n      if ((uVar8 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);\n      }\n      if (sp->fts_child != (FTSENT *)0x0) {\n        fts_lfree(sp->fts_child);\n        sp->fts_child = (_ftsent *)0x0;\n      }\n      pFVar13 = (FTS *)sp->fts_options;\n      pFVar15->fts_info = 6;\nLAB_0001a5ac:\n      leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n      return pFVar15;\n    }\nLAB_0001a450:\n    do {\n      puVar1 = PTR_free_000333cc;\n      pFVar15 = pFVar18->fts_link;\n      if (pFVar15 == (FTSENT *)0x0) {\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }\n      sp->fts_cur = pFVar15;\n      (*(code *)puVar1)(pFVar18);\n      if (pFVar15->fts_level == 0) {\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }\n      pFVar18 = pFVar15;\n    } while (pFVar15->fts_instr == 4);\n    if (pFVar15->fts_instr == 2) {\n      uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)\n      ;\n      pFVar15->fts_info = uVar8;\n      if ((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)) {\n        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n        pFVar15->fts_symfd = iVar6;\n        if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }\n      }\n      else {\n        pFVar15->fts_instr = 3;\n      }\n    }\nLAB_0001a788:\n    puVar1 = PTR_memmove_000333d0;\n    pcVar2 = sp->fts_path;\n    sVar14 = pFVar15->fts_parent->fts_pathlen;\n    sVar11 = sVar14 - 1;\n    if (pFVar15->fts_parent->fts_path[sVar11] != '/') {\n      sVar11 = sVar14;\n    }\n    pcVar2[sVar11] = '/';\n    (*(code *)puVar1)(pcVar2 + sVar11 + 1,pFVar15 + 1,pFVar15->fts_namelen + 1);\n    uVar10 = (uint)pFVar15->fts_info;\nLAB_0001a7d8:\n    sp->fts_cur = pFVar15;\n    if (uVar10 != 0xb) {\nLAB_0001a7e4:\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    iVar6 = (int)pFVar15->fts_statp[0].st_size;\n    if (*(int *)&pFVar15->fts_statp[0].st_size != 0) {\nLAB_0001a898:\n      pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();\n      return pFVar15;\n    }\n    if (iVar6 != 2) {\n      if (iVar6 == 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a898;\n    }\n    pFVar18 = pFVar15->fts_parent;\n    pFVar13 = (FTS *)sp->fts_cwd_fd;\n    if ((pFVar18->fts_n_dirs_remaining == 0) && ((sp->fts_options & 0x18U) == 0x18)) {\n      lVar7 = leaf_optimization(pFVar18,(int)pFVar13);\n      if (lVar7 == NOSTAT_LEAF_OPTIMIZATION) {\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7e4;\n      }\n      pFVar13 = (FTS *)sp->fts_cwd_fd;\n    }\n    uVar8 = fts_stat(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    uVar10 = CONCAT22(extraout_var_00,uVar8);\n    uVar12 = pFVar15->fts_statp[0].st_mode;\n    pFVar15->fts_info = uVar8;\n    if ((uVar12 & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (pFVar15->fts_level != 0) {\n      uVar12 = pFVar18->fts_n_dirs_remaining - 1;\n      if (uVar12 < 0xfffffffe) {\n        pFVar18->fts_n_dirs_remaining = uVar12;\n      }\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar10 != 1) {\n      return pFVar15;\n    }\n  }\n  uVar3 = pFVar15->fts_statp[0].st_dev;\n  *(undefined4 *)&sp->fts_dev = 0;\n  *(ulong *)((int)&sp->fts_dev + 4) = uVar3;\nLAB_0001a800:\n  _Var9 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n  if (CONCAT31(extraout_var_02,_Var9) == 0) {\n    pFVar15 = (FTSENT *)0x0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return pFVar15;\n}\n\n" (function_definition "FTSENT * fts_read(FTS *sp)\n\n{\n  undefined *puVar1;\n  undefined2 extraout_var;\n  undefined2 extraout_var_00;\n  undefined2 extraout_var_01;\n  undefined3 extraout_var_02;\n  char *pcVar2;\n  _Bool _Var9;\n  ulong uVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  ushort uVar8;\n  int iVar6;\n  leaf_optimization lVar7;\n  uint uVar10;\n  size_t sVar11;\n  uint uVar12;\n  FTS *pFVar13;\n  size_t sVar14;\n  _ftsent *fts_1;\n  FTSENT *pFVar15;\n  undefined1 *puVar16;\n  FTSENT *pFVar17;\n  FTSENT *pFVar18;\n  \n  pFVar15 = sp->fts_cur;\n  if (pFVar15 == (FTSENT *)0x0) {\n    return (FTSENT *)0x0;\n  }\n  uVar10 = sp->fts_options;\n  if ((uVar10 & 0x4000) != 0) {\n    return (FTSENT *)0x0;\n  }\n  uVar8 = pFVar15->fts_instr;\n  pFVar15->fts_instr = 3;\n  if (uVar8 == 1) {\n    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    pFVar15->fts_info = uVar8;\n    return pFVar15;\n  }\n  uVar12 = (uint)pFVar15->fts_info;\n  pFVar18 = pFVar15;\n  if (uVar8 == 2) {\n    if (1 < uVar12 - 0xc) {\n      if (uVar12 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1);\n    pFVar15->fts_info = uVar8;\n    if (CONCAT22(extraout_var,uVar8) != 1) {\n      sp->fts_cur = pFVar15;\n      if (CONCAT22(extraout_var,uVar8) != 0xb) {\n        return pFVar15;\n      }\n      goto LAB_0001a888;\n    }\n    if (((uint)sp->fts_options & 4) == 0) {\n      iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n      pFVar15->fts_symfd = iVar6;\n      if (iVar6 < 0) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n        iVar6 = *piVar5;\n        pFVar15->fts_info = 7;\n        pFVar15->fts_errno = iVar6;\n        sp->fts_cur = pFVar15;\n        return pFVar15;\n      }\n      uVar10 = (uint)pFVar15->fts_info;\n      pFVar15->fts_flags = pFVar15->fts_flags | 2;\n      goto LAB_0001a7d8;\n    }\n    sp->fts_cur = pFVar15;\nLAB_0001a7f0:\n    if (pFVar15->fts_level != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar12 == 1) {\n      if (uVar8 == 4) {\n        uVar8 = pFVar15->fts_flags;\n      }\n      else {\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }\n      if ((uVar8 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);\n      }\n      if (sp->fts_child != (FTSENT *)0x0) {\n        fts_lfree(sp->fts_child);\n        sp->fts_child = (_ftsent *)0x0;\n      }\n      pFVar13 = (FTS *)sp->fts_options;\n      pFVar15->fts_info = 6;\nLAB_0001a5ac:\n      leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n      return pFVar15;\n    }\nLAB_0001a450:\n    do {\n      puVar1 = PTR_free_000333cc;\n      pFVar15 = pFVar18->fts_link;\n      if (pFVar15 == (FTSENT *)0x0) {\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }\n      sp->fts_cur = pFVar15;\n      (*(code *)puVar1)(pFVar18);\n      if (pFVar15->fts_level == 0) {\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }\n      pFVar18 = pFVar15;\n    } while (pFVar15->fts_instr == 4);\n    if (pFVar15->fts_instr == 2) {\n      uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)\n      ;\n      pFVar15->fts_info = uVar8;\n      if ((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)) {\n        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n        pFVar15->fts_symfd = iVar6;\n        if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }\n      }\n      else {\n        pFVar15->fts_instr = 3;\n      }\n    }\nLAB_0001a788:\n    puVar1 = PTR_memmove_000333d0;\n    pcVar2 = sp->fts_path;\n    sVar14 = pFVar15->fts_parent->fts_pathlen;\n    sVar11 = sVar14 - 1;\n    if (pFVar15->fts_parent->fts_path[sVar11] != '/') {\n      sVar11 = sVar14;\n    }\n    pcVar2[sVar11] = '/';\n    (*(code *)puVar1)(pcVar2 + sVar11 + 1,pFVar15 + 1,pFVar15->fts_namelen + 1);\n    uVar10 = (uint)pFVar15->fts_info;\nLAB_0001a7d8:\n    sp->fts_cur = pFVar15;\n    if (uVar10 != 0xb) {\nLAB_0001a7e4:\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    iVar6 = (int)pFVar15->fts_statp[0].st_size;\n    if (*(int *)&pFVar15->fts_statp[0].st_size != 0) {\nLAB_0001a898:\n      pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();\n      return pFVar15;\n    }\n    if (iVar6 != 2) {\n      if (iVar6 == 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a898;\n    }\n    pFVar18 = pFVar15->fts_parent;\n    pFVar13 = (FTS *)sp->fts_cwd_fd;\n    if ((pFVar18->fts_n_dirs_remaining == 0) && ((sp->fts_options & 0x18U) == 0x18)) {\n      lVar7 = leaf_optimization(pFVar18,(int)pFVar13);\n      if (lVar7 == NOSTAT_LEAF_OPTIMIZATION) {\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7e4;\n      }\n      pFVar13 = (FTS *)sp->fts_cwd_fd;\n    }\n    uVar8 = fts_stat(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    uVar10 = CONCAT22(extraout_var_00,uVar8);\n    uVar12 = pFVar15->fts_statp[0].st_mode;\n    pFVar15->fts_info = uVar8;\n    if ((uVar12 & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (pFVar15->fts_level != 0) {\n      uVar12 = pFVar18->fts_n_dirs_remaining - 1;\n      if (uVar12 < 0xfffffffe) {\n        pFVar18->fts_n_dirs_remaining = uVar12;\n      }\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar10 != 1) {\n      return pFVar15;\n    }\n  }\n  uVar3 = pFVar15->fts_statp[0].st_dev;\n  *(undefined4 *)&sp->fts_dev = 0;\n  *(ulong *)((int)&sp->fts_dev + 4) = uVar3;\nLAB_0001a800:\n  _Var9 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n  if (CONCAT31(extraout_var_02,_Var9) == 0) {\n    pFVar15 = (FTSENT *)0x0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return pFVar15;\n}" type_identifier (pointer_declarator "* fts_read(FTS *sp)" * (function_declarator "fts_read(FTS *sp)" identifier (parameter_list "(FTS *sp)" ( (parameter_declaration "FTS *sp" type_identifier (pointer_declarator "*sp" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined2 extraout_var;\n  undefined2 extraout_var_00;\n  undefined2 extraout_var_01;\n  undefined3 extraout_var_02;\n  char *pcVar2;\n  _Bool _Var9;\n  ulong uVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  ushort uVar8;\n  int iVar6;\n  leaf_optimization lVar7;\n  uint uVar10;\n  size_t sVar11;\n  uint uVar12;\n  FTS *pFVar13;\n  size_t sVar14;\n  _ftsent *fts_1;\n  FTSENT *pFVar15;\n  undefined1 *puVar16;\n  FTSENT *pFVar17;\n  FTSENT *pFVar18;\n  \n  pFVar15 = sp->fts_cur;\n  if (pFVar15 == (FTSENT *)0x0) {\n    return (FTSENT *)0x0;\n  }\n  uVar10 = sp->fts_options;\n  if ((uVar10 & 0x4000) != 0) {\n    return (FTSENT *)0x0;\n  }\n  uVar8 = pFVar15->fts_instr;\n  pFVar15->fts_instr = 3;\n  if (uVar8 == 1) {\n    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    pFVar15->fts_info = uVar8;\n    return pFVar15;\n  }\n  uVar12 = (uint)pFVar15->fts_info;\n  pFVar18 = pFVar15;\n  if (uVar8 == 2) {\n    if (1 < uVar12 - 0xc) {\n      if (uVar12 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1);\n    pFVar15->fts_info = uVar8;\n    if (CONCAT22(extraout_var,uVar8) != 1) {\n      sp->fts_cur = pFVar15;\n      if (CONCAT22(extraout_var,uVar8) != 0xb) {\n        return pFVar15;\n      }\n      goto LAB_0001a888;\n    }\n    if (((uint)sp->fts_options & 4) == 0) {\n      iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n      pFVar15->fts_symfd = iVar6;\n      if (iVar6 < 0) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n        iVar6 = *piVar5;\n        pFVar15->fts_info = 7;\n        pFVar15->fts_errno = iVar6;\n        sp->fts_cur = pFVar15;\n        return pFVar15;\n      }\n      uVar10 = (uint)pFVar15->fts_info;\n      pFVar15->fts_flags = pFVar15->fts_flags | 2;\n      goto LAB_0001a7d8;\n    }\n    sp->fts_cur = pFVar15;\nLAB_0001a7f0:\n    if (pFVar15->fts_level != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar12 == 1) {\n      if (uVar8 == 4) {\n        uVar8 = pFVar15->fts_flags;\n      }\n      else {\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }\n      if ((uVar8 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);\n      }\n      if (sp->fts_child != (FTSENT *)0x0) {\n        fts_lfree(sp->fts_child);\n        sp->fts_child = (_ftsent *)0x0;\n      }\n      pFVar13 = (FTS *)sp->fts_options;\n      pFVar15->fts_info = 6;\nLAB_0001a5ac:\n      leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n      return pFVar15;\n    }\nLAB_0001a450:\n    do {\n      puVar1 = PTR_free_000333cc;\n      pFVar15 = pFVar18->fts_link;\n      if (pFVar15 == (FTSENT *)0x0) {\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }\n      sp->fts_cur = pFVar15;\n      (*(code *)puVar1)(pFVar18);\n      if (pFVar15->fts_level == 0) {\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }\n      pFVar18 = pFVar15;\n    } while (pFVar15->fts_instr == 4);\n    if (pFVar15->fts_instr == 2) {\n      uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)\n      ;\n      pFVar15->fts_info = uVar8;\n      if ((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)) {\n        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n        pFVar15->fts_symfd = iVar6;\n        if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }\n      }\n      else {\n        pFVar15->fts_instr = 3;\n      }\n    }\nLAB_0001a788:\n    puVar1 = PTR_memmove_000333d0;\n    pcVar2 = sp->fts_path;\n    sVar14 = pFVar15->fts_parent->fts_pathlen;\n    sVar11 = sVar14 - 1;\n    if (pFVar15->fts_parent->fts_path[sVar11] != '/') {\n      sVar11 = sVar14;\n    }\n    pcVar2[sVar11] = '/';\n    (*(code *)puVar1)(pcVar2 + sVar11 + 1,pFVar15 + 1,pFVar15->fts_namelen + 1);\n    uVar10 = (uint)pFVar15->fts_info;\nLAB_0001a7d8:\n    sp->fts_cur = pFVar15;\n    if (uVar10 != 0xb) {\nLAB_0001a7e4:\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    iVar6 = (int)pFVar15->fts_statp[0].st_size;\n    if (*(int *)&pFVar15->fts_statp[0].st_size != 0) {\nLAB_0001a898:\n      pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();\n      return pFVar15;\n    }\n    if (iVar6 != 2) {\n      if (iVar6 == 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a898;\n    }\n    pFVar18 = pFVar15->fts_parent;\n    pFVar13 = (FTS *)sp->fts_cwd_fd;\n    if ((pFVar18->fts_n_dirs_remaining == 0) && ((sp->fts_options & 0x18U) == 0x18)) {\n      lVar7 = leaf_optimization(pFVar18,(int)pFVar13);\n      if (lVar7 == NOSTAT_LEAF_OPTIMIZATION) {\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7e4;\n      }\n      pFVar13 = (FTS *)sp->fts_cwd_fd;\n    }\n    uVar8 = fts_stat(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    uVar10 = CONCAT22(extraout_var_00,uVar8);\n    uVar12 = pFVar15->fts_statp[0].st_mode;\n    pFVar15->fts_info = uVar8;\n    if ((uVar12 & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (pFVar15->fts_level != 0) {\n      uVar12 = pFVar18->fts_n_dirs_remaining - 1;\n      if (uVar12 < 0xfffffffe) {\n        pFVar18->fts_n_dirs_remaining = uVar12;\n      }\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar10 != 1) {\n      return pFVar15;\n    }\n  }\n  uVar3 = pFVar15->fts_statp[0].st_dev;\n  *(undefined4 *)&sp->fts_dev = 0;\n  *(ulong *)((int)&sp->fts_dev + 4) = uVar3;\nLAB_0001a800:\n  _Var9 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n  if (CONCAT31(extraout_var_02,_Var9) == 0) {\n    pFVar15 = (FTSENT *)0x0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return pFVar15;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined2 extraout_var;" type_identifier identifier ;) (declaration "undefined2 extraout_var_00;" type_identifier identifier ;) (declaration "undefined2 extraout_var_01;" type_identifier identifier ;) (declaration "undefined3 extraout_var_02;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "_Bool _Var9;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "ushort uVar8;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "leaf_optimization lVar7;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "FTS *pFVar13;" type_identifier (pointer_declarator "*pFVar13" * identifier) ;) (declaration "size_t sVar14;" primitive_type identifier ;) (declaration "_ftsent *fts_1;" type_identifier (pointer_declarator "*fts_1" * identifier) ;) (declaration "FTSENT *pFVar15;" type_identifier (pointer_declarator "*pFVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "FTSENT *pFVar17;" type_identifier (pointer_declarator "*pFVar17" * identifier) ;) (declaration "FTSENT *pFVar18;" type_identifier (pointer_declarator "*pFVar18" * identifier) ;) (expression_statement "pFVar15 = sp->fts_cur;" (assignment_expression "pFVar15 = sp->fts_cur" identifier = (field_expression "sp->fts_cur" identifier -> field_identifier)) ;) (if_statement "if (pFVar15 == (FTSENT *)0x0) {\n    return (FTSENT *)0x0;\n  }" if (parenthesized_expression "(pFVar15 == (FTSENT *)0x0)" ( (binary_expression "pFVar15 == (FTSENT *)0x0" identifier == (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (FTSENT *)0x0;\n  }" { (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uVar10 = sp->fts_options;" (assignment_expression "uVar10 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (if_statement "if ((uVar10 & 0x4000) != 0) {\n    return (FTSENT *)0x0;\n  }" if (parenthesized_expression "((uVar10 & 0x4000) != 0)" ( (binary_expression "(uVar10 & 0x4000) != 0" (parenthesized_expression "(uVar10 & 0x4000)" ( (binary_expression "uVar10 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return (FTSENT *)0x0;\n  }" { (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uVar8 = pFVar15->fts_instr;" (assignment_expression "uVar8 = pFVar15->fts_instr" identifier = (field_expression "pFVar15->fts_instr" identifier -> field_identifier)) ;) (expression_statement "pFVar15->fts_instr = 3;" (assignment_expression "pFVar15->fts_instr = 3" (field_expression "pFVar15->fts_instr" identifier -> field_identifier) = number_literal) ;) (if_statement "if (uVar8 == 1) {\n    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    pFVar15->fts_info = uVar8;\n    return pFVar15;\n  }" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    pFVar15->fts_info = uVar8;\n    return pFVar15;\n  }" { (expression_statement "uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);" (assignment_expression "uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0)" identifier = (call_expression "fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0)" identifier (argument_list "((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,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(pFVar15,0)" identifier (argument_list "(pFVar15,0)" ( identifier , number_literal ))) , (cast_expression "(FTS *)0x0" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "pFVar15->fts_info = uVar8;" (assignment_expression "pFVar15->fts_info = uVar8" (field_expression "pFVar15->fts_info" identifier -> field_identifier) = identifier) ;) (return_statement "return pFVar15;" return identifier ;) })) (expression_statement "uVar12 = (uint)pFVar15->fts_info;" (assignment_expression "uVar12 = (uint)pFVar15->fts_info" identifier = (cast_expression "(uint)pFVar15->fts_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pFVar15->fts_info" identifier -> field_identifier))) ;) (expression_statement "pFVar18 = pFVar15;" (assignment_expression "pFVar18 = pFVar15" identifier = identifier) ;) (if_statement "if (uVar8 == 2) {\n    if (1 < uVar12 - 0xc) {\n      if (uVar12 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1);\n    pFVar15->fts_info = uVar8;\n    if (CONCAT22(extraout_var,uVar8) != 1) {\n      sp->fts_cur = pFVar15;\n      if (CONCAT22(extraout_var,uVar8) != 0xb) {\n        return pFVar15;\n      }\n      goto LAB_0001a888;\n    }\n    if (((uint)sp->fts_options & 4) == 0) {\n      iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n      pFVar15->fts_symfd = iVar6;\n      if (iVar6 < 0) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n        iVar6 = *piVar5;\n        pFVar15->fts_info = 7;\n        pFVar15->fts_errno = iVar6;\n        sp->fts_cur = pFVar15;\n        return pFVar15;\n      }\n      uVar10 = (uint)pFVar15->fts_info;\n      pFVar15->fts_flags = pFVar15->fts_flags | 2;\n      goto LAB_0001a7d8;\n    }\n    sp->fts_cur = pFVar15;\nLAB_0001a7f0:\n    if (pFVar15->fts_level != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar12 == 1) {\n      if (uVar8 == 4) {\n        uVar8 = pFVar15->fts_flags;\n      }\n      else {\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }\n      if ((uVar8 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);\n      }\n      if (sp->fts_child != (FTSENT *)0x0) {\n        fts_lfree(sp->fts_child);\n        sp->fts_child = (_ftsent *)0x0;\n      }\n      pFVar13 = (FTS *)sp->fts_options;\n      pFVar15->fts_info = 6;\nLAB_0001a5ac:\n      leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n      return pFVar15;\n    }\nLAB_0001a450:\n    do {\n      puVar1 = PTR_free_000333cc;\n      pFVar15 = pFVar18->fts_link;\n      if (pFVar15 == (FTSENT *)0x0) {\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }\n      sp->fts_cur = pFVar15;\n      (*(code *)puVar1)(pFVar18);\n      if (pFVar15->fts_level == 0) {\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }\n      pFVar18 = pFVar15;\n    } while (pFVar15->fts_instr == 4);\n    if (pFVar15->fts_instr == 2) {\n      uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)\n      ;\n      pFVar15->fts_info = uVar8;\n      if ((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)) {\n        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n        pFVar15->fts_symfd = iVar6;\n        if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }\n      }\n      else {\n        pFVar15->fts_instr = 3;\n      }\n    }\nLAB_0001a788:\n    puVar1 = PTR_memmove_000333d0;\n    pcVar2 = sp->fts_path;\n    sVar14 = pFVar15->fts_parent->fts_pathlen;\n    sVar11 = sVar14 - 1;\n    if (pFVar15->fts_parent->fts_path[sVar11] != '/') {\n      sVar11 = sVar14;\n    }\n    pcVar2[sVar11] = '/';\n    (*(code *)puVar1)(pcVar2 + sVar11 + 1,pFVar15 + 1,pFVar15->fts_namelen + 1);\n    uVar10 = (uint)pFVar15->fts_info;\nLAB_0001a7d8:\n    sp->fts_cur = pFVar15;\n    if (uVar10 != 0xb) {\nLAB_0001a7e4:\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    iVar6 = (int)pFVar15->fts_statp[0].st_size;\n    if (*(int *)&pFVar15->fts_statp[0].st_size != 0) {\nLAB_0001a898:\n      pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();\n      return pFVar15;\n    }\n    if (iVar6 != 2) {\n      if (iVar6 == 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a898;\n    }\n    pFVar18 = pFVar15->fts_parent;\n    pFVar13 = (FTS *)sp->fts_cwd_fd;\n    if ((pFVar18->fts_n_dirs_remaining == 0) && ((sp->fts_options & 0x18U) == 0x18)) {\n      lVar7 = leaf_optimization(pFVar18,(int)pFVar13);\n      if (lVar7 == NOSTAT_LEAF_OPTIMIZATION) {\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7e4;\n      }\n      pFVar13 = (FTS *)sp->fts_cwd_fd;\n    }\n    uVar8 = fts_stat(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    uVar10 = CONCAT22(extraout_var_00,uVar8);\n    uVar12 = pFVar15->fts_statp[0].st_mode;\n    pFVar15->fts_info = uVar8;\n    if ((uVar12 & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (pFVar15->fts_level != 0) {\n      uVar12 = pFVar18->fts_n_dirs_remaining - 1;\n      if (uVar12 < 0xfffffffe) {\n        pFVar18->fts_n_dirs_remaining = uVar12;\n      }\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar10 != 1) {\n      return pFVar15;\n    }\n  }" if (parenthesized_expression "(uVar8 == 2)" ( (binary_expression "uVar8 == 2" identifier == number_literal) )) (compound_statement "{\n    if (1 < uVar12 - 0xc) {\n      if (uVar12 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1);\n    pFVar15->fts_info = uVar8;\n    if (CONCAT22(extraout_var,uVar8) != 1) {\n      sp->fts_cur = pFVar15;\n      if (CONCAT22(extraout_var,uVar8) != 0xb) {\n        return pFVar15;\n      }\n      goto LAB_0001a888;\n    }\n    if (((uint)sp->fts_options & 4) == 0) {\n      iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n      pFVar15->fts_symfd = iVar6;\n      if (iVar6 < 0) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n        iVar6 = *piVar5;\n        pFVar15->fts_info = 7;\n        pFVar15->fts_errno = iVar6;\n        sp->fts_cur = pFVar15;\n        return pFVar15;\n      }\n      uVar10 = (uint)pFVar15->fts_info;\n      pFVar15->fts_flags = pFVar15->fts_flags | 2;\n      goto LAB_0001a7d8;\n    }\n    sp->fts_cur = pFVar15;\nLAB_0001a7f0:\n    if (pFVar15->fts_level != 0) goto LAB_0001a800;\n  }" { (if_statement "if (1 < uVar12 - 0xc) {\n      if (uVar12 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }" if (parenthesized_expression "(1 < uVar12 - 0xc)" ( (binary_expression "1 < uVar12 - 0xc" number_literal < (binary_expression "uVar12 - 0xc" identifier - number_literal)) )) (compound_statement "{\n      if (uVar12 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }" { (if_statement "if (uVar12 == 1) goto LAB_0001a554;" if (parenthesized_expression "(uVar12 == 1)" ( (binary_expression "uVar12 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0001a554;" goto statement_identifier ;)) (goto_statement "goto LAB_0001a450;" goto statement_identifier ;) })) (expression_statement "uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1);" (assignment_expression "uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)" identifier = (call_expression "fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)" identifier (argument_list "((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)" ( (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(pFVar15,0)" identifier (argument_list "(pFVar15,0)" ( identifier , number_literal ))) , (cast_expression "(FTS *)0x1" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "pFVar15->fts_info = uVar8;" (assignment_expression "pFVar15->fts_info = uVar8" (field_expression "pFVar15->fts_info" identifier -> field_identifier) = identifier) ;) (if_statement "if (CONCAT22(extraout_var,uVar8) != 1) {\n      sp->fts_cur = pFVar15;\n      if (CONCAT22(extraout_var,uVar8) != 0xb) {\n        return pFVar15;\n      }\n      goto LAB_0001a888;\n    }" if (parenthesized_expression "(CONCAT22(extraout_var,uVar8) != 1)" ( (binary_expression "CONCAT22(extraout_var,uVar8) != 1" (call_expression "CONCAT22(extraout_var,uVar8)" identifier (argument_list "(extraout_var,uVar8)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n      sp->fts_cur = pFVar15;\n      if (CONCAT22(extraout_var,uVar8) != 0xb) {\n        return pFVar15;\n      }\n      goto LAB_0001a888;\n    }" { (expression_statement "sp->fts_cur = pFVar15;" (assignment_expression "sp->fts_cur = pFVar15" (field_expression "sp->fts_cur" identifier -> field_identifier) = identifier) ;) (if_statement "if (CONCAT22(extraout_var,uVar8) != 0xb) {\n        return pFVar15;\n      }" if (parenthesized_expression "(CONCAT22(extraout_var,uVar8) != 0xb)" ( (binary_expression "CONCAT22(extraout_var,uVar8) != 0xb" (call_expression "CONCAT22(extraout_var,uVar8)" identifier (argument_list "(extraout_var,uVar8)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n        return pFVar15;\n      }" { (return_statement "return pFVar15;" return identifier ;) })) (goto_statement "goto LAB_0001a888;" goto statement_identifier ;) })) (if_statement "if (((uint)sp->fts_options & 4) == 0) {\n      iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n      pFVar15->fts_symfd = iVar6;\n      if (iVar6 < 0) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n        iVar6 = *piVar5;\n        pFVar15->fts_info = 7;\n        pFVar15->fts_errno = iVar6;\n        sp->fts_cur = pFVar15;\n        return pFVar15;\n      }\n      uVar10 = (uint)pFVar15->fts_info;\n      pFVar15->fts_flags = pFVar15->fts_flags | 2;\n      goto LAB_0001a7d8;\n    }" if (parenthesized_expression "(((uint)sp->fts_options & 4) == 0)" ( (binary_expression "((uint)sp->fts_options & 4) == 0" (parenthesized_expression "((uint)sp->fts_options & 4)" ( (binary_expression "(uint)sp->fts_options & 4" (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      iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n      pFVar15->fts_symfd = iVar6;\n      if (iVar6 < 0) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n        iVar6 = *piVar5;\n        pFVar15->fts_info = 7;\n        pFVar15->fts_errno = iVar6;\n        sp->fts_cur = pFVar15;\n        return pFVar15;\n      }\n      uVar10 = (uint)pFVar15->fts_info;\n      pFVar15->fts_flags = pFVar15->fts_flags | 2;\n      goto LAB_0001a7d8;\n    }" { (expression_statement "iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74));" (assignment_expression "iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74))" identifier = (call_expression "diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74))" identifier (argument_list "((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                      (FTS *)(PTR_fdopendir_00033108 + 0x1d74))" ( (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 "(char *)sp->fts_options" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_options" identifier -> field_identifier)) , (cast_expression "(FTS *)(PTR_fdopendir_00033108 + 0x1d74)" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x1d74)" ( (binary_expression "PTR_fdopendir_00033108 + 0x1d74" identifier + number_literal) ))) )))) ;) (expression_statement "pFVar15->fts_symfd = iVar6;" (assignment_expression "pFVar15->fts_symfd = iVar6" (field_expression "pFVar15->fts_symfd" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar6 < 0) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n        iVar6 = *piVar5;\n        pFVar15->fts_info = 7;\n        pFVar15->fts_errno = iVar6;\n        sp->fts_cur = pFVar15;\n        return pFVar15;\n      }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n        iVar6 = *piVar5;\n        pFVar15->fts_info = 7;\n        pFVar15->fts_errno = iVar6;\n        sp->fts_cur = pFVar15;\n        return pFVar15;\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar6 = *piVar5;" (assignment_expression "iVar6 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "pFVar15->fts_info = 7;" (assignment_expression "pFVar15->fts_info = 7" (field_expression "pFVar15->fts_info" identifier -> field_identifier) = number_literal) ;) (expression_statement "pFVar15->fts_errno = iVar6;" (assignment_expression "pFVar15->fts_errno = iVar6" (field_expression "pFVar15->fts_errno" identifier -> field_identifier) = identifier) ;) (expression_statement "sp->fts_cur = pFVar15;" (assignment_expression "sp->fts_cur = pFVar15" (field_expression "sp->fts_cur" identifier -> field_identifier) = identifier) ;) (return_statement "return pFVar15;" return identifier ;) })) (expression_statement "uVar10 = (uint)pFVar15->fts_info;" (assignment_expression "uVar10 = (uint)pFVar15->fts_info" identifier = (cast_expression "(uint)pFVar15->fts_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pFVar15->fts_info" identifier -> field_identifier))) ;) (expression_statement "pFVar15->fts_flags = pFVar15->fts_flags | 2;" (assignment_expression "pFVar15->fts_flags = pFVar15->fts_flags | 2" (field_expression "pFVar15->fts_flags" identifier -> field_identifier) = (binary_expression "pFVar15->fts_flags | 2" (field_expression "pFVar15->fts_flags" identifier -> field_identifier) | number_literal)) ;) (goto_statement "goto LAB_0001a7d8;" goto statement_identifier ;) })) (expression_statement "sp->fts_cur = pFVar15;" (assignment_expression "sp->fts_cur = pFVar15" (field_expression "sp->fts_cur" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_0001a7f0:\n    if (pFVar15->fts_level != 0) goto LAB_0001a800;" statement_identifier : (if_statement "if (pFVar15->fts_level != 0) goto LAB_0001a800;" if (parenthesized_expression "(pFVar15->fts_level != 0)" ( (binary_expression "pFVar15->fts_level != 0" (field_expression "pFVar15->fts_level" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_0001a800;" goto statement_identifier ;))) }) (else_clause "else {\n    if (uVar12 == 1) {\n      if (uVar8 == 4) {\n        uVar8 = pFVar15->fts_flags;\n      }\n      else {\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }\n      if ((uVar8 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);\n      }\n      if (sp->fts_child != (FTSENT *)0x0) {\n        fts_lfree(sp->fts_child);\n        sp->fts_child = (_ftsent *)0x0;\n      }\n      pFVar13 = (FTS *)sp->fts_options;\n      pFVar15->fts_info = 6;\nLAB_0001a5ac:\n      leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n      return pFVar15;\n    }\nLAB_0001a450:\n    do {\n      puVar1 = PTR_free_000333cc;\n      pFVar15 = pFVar18->fts_link;\n      if (pFVar15 == (FTSENT *)0x0) {\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }\n      sp->fts_cur = pFVar15;\n      (*(code *)puVar1)(pFVar18);\n      if (pFVar15->fts_level == 0) {\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }\n      pFVar18 = pFVar15;\n    } while (pFVar15->fts_instr == 4);\n    if (pFVar15->fts_instr == 2) {\n      uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)\n      ;\n      pFVar15->fts_info = uVar8;\n      if ((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)) {\n        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n        pFVar15->fts_symfd = iVar6;\n        if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }\n      }\n      else {\n        pFVar15->fts_instr = 3;\n      }\n    }\nLAB_0001a788:\n    puVar1 = PTR_memmove_000333d0;\n    pcVar2 = sp->fts_path;\n    sVar14 = pFVar15->fts_parent->fts_pathlen;\n    sVar11 = sVar14 - 1;\n    if (pFVar15->fts_parent->fts_path[sVar11] != '/') {\n      sVar11 = sVar14;\n    }\n    pcVar2[sVar11] = '/';\n    (*(code *)puVar1)(pcVar2 + sVar11 + 1,pFVar15 + 1,pFVar15->fts_namelen + 1);\n    uVar10 = (uint)pFVar15->fts_info;\nLAB_0001a7d8:\n    sp->fts_cur = pFVar15;\n    if (uVar10 != 0xb) {\nLAB_0001a7e4:\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    iVar6 = (int)pFVar15->fts_statp[0].st_size;\n    if (*(int *)&pFVar15->fts_statp[0].st_size != 0) {\nLAB_0001a898:\n      pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();\n      return pFVar15;\n    }\n    if (iVar6 != 2) {\n      if (iVar6 == 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a898;\n    }\n    pFVar18 = pFVar15->fts_parent;\n    pFVar13 = (FTS *)sp->fts_cwd_fd;\n    if ((pFVar18->fts_n_dirs_remaining == 0) && ((sp->fts_options & 0x18U) == 0x18)) {\n      lVar7 = leaf_optimization(pFVar18,(int)pFVar13);\n      if (lVar7 == NOSTAT_LEAF_OPTIMIZATION) {\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7e4;\n      }\n      pFVar13 = (FTS *)sp->fts_cwd_fd;\n    }\n    uVar8 = fts_stat(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    uVar10 = CONCAT22(extraout_var_00,uVar8);\n    uVar12 = pFVar15->fts_statp[0].st_mode;\n    pFVar15->fts_info = uVar8;\n    if ((uVar12 & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (pFVar15->fts_level != 0) {\n      uVar12 = pFVar18->fts_n_dirs_remaining - 1;\n      if (uVar12 < 0xfffffffe) {\n        pFVar18->fts_n_dirs_remaining = uVar12;\n      }\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar10 != 1) {\n      return pFVar15;\n    }\n  }" else (compound_statement "{\n    if (uVar12 == 1) {\n      if (uVar8 == 4) {\n        uVar8 = pFVar15->fts_flags;\n      }\n      else {\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }\n      if ((uVar8 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);\n      }\n      if (sp->fts_child != (FTSENT *)0x0) {\n        fts_lfree(sp->fts_child);\n        sp->fts_child = (_ftsent *)0x0;\n      }\n      pFVar13 = (FTS *)sp->fts_options;\n      pFVar15->fts_info = 6;\nLAB_0001a5ac:\n      leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n      return pFVar15;\n    }\nLAB_0001a450:\n    do {\n      puVar1 = PTR_free_000333cc;\n      pFVar15 = pFVar18->fts_link;\n      if (pFVar15 == (FTSENT *)0x0) {\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }\n      sp->fts_cur = pFVar15;\n      (*(code *)puVar1)(pFVar18);\n      if (pFVar15->fts_level == 0) {\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }\n      pFVar18 = pFVar15;\n    } while (pFVar15->fts_instr == 4);\n    if (pFVar15->fts_instr == 2) {\n      uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)\n      ;\n      pFVar15->fts_info = uVar8;\n      if ((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)) {\n        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n        pFVar15->fts_symfd = iVar6;\n        if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }\n      }\n      else {\n        pFVar15->fts_instr = 3;\n      }\n    }\nLAB_0001a788:\n    puVar1 = PTR_memmove_000333d0;\n    pcVar2 = sp->fts_path;\n    sVar14 = pFVar15->fts_parent->fts_pathlen;\n    sVar11 = sVar14 - 1;\n    if (pFVar15->fts_parent->fts_path[sVar11] != '/') {\n      sVar11 = sVar14;\n    }\n    pcVar2[sVar11] = '/';\n    (*(code *)puVar1)(pcVar2 + sVar11 + 1,pFVar15 + 1,pFVar15->fts_namelen + 1);\n    uVar10 = (uint)pFVar15->fts_info;\nLAB_0001a7d8:\n    sp->fts_cur = pFVar15;\n    if (uVar10 != 0xb) {\nLAB_0001a7e4:\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    iVar6 = (int)pFVar15->fts_statp[0].st_size;\n    if (*(int *)&pFVar15->fts_statp[0].st_size != 0) {\nLAB_0001a898:\n      pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();\n      return pFVar15;\n    }\n    if (iVar6 != 2) {\n      if (iVar6 == 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a898;\n    }\n    pFVar18 = pFVar15->fts_parent;\n    pFVar13 = (FTS *)sp->fts_cwd_fd;\n    if ((pFVar18->fts_n_dirs_remaining == 0) && ((sp->fts_options & 0x18U) == 0x18)) {\n      lVar7 = leaf_optimization(pFVar18,(int)pFVar13);\n      if (lVar7 == NOSTAT_LEAF_OPTIMIZATION) {\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7e4;\n      }\n      pFVar13 = (FTS *)sp->fts_cwd_fd;\n    }\n    uVar8 = fts_stat(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);\n    uVar10 = CONCAT22(extraout_var_00,uVar8);\n    uVar12 = pFVar15->fts_statp[0].st_mode;\n    pFVar15->fts_info = uVar8;\n    if ((uVar12 & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (pFVar15->fts_level != 0) {\n      uVar12 = pFVar18->fts_n_dirs_remaining - 1;\n      if (uVar12 < 0xfffffffe) {\n        pFVar18->fts_n_dirs_remaining = uVar12;\n      }\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar10 != 1) {\n      return pFVar15;\n    }\n  }" { (if_statement "if (uVar12 == 1) {\n      if (uVar8 == 4) {\n        uVar8 = pFVar15->fts_flags;\n      }\n      else {\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }\n      if ((uVar8 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);\n      }\n      if (sp->fts_child != (FTSENT *)0x0) {\n        fts_lfree(sp->fts_child);\n        sp->fts_child = (_ftsent *)0x0;\n      }\n      pFVar13 = (FTS *)sp->fts_options;\n      pFVar15->fts_info = 6;\nLAB_0001a5ac:\n      leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n      return pFVar15;\n    }" if (parenthesized_expression "(uVar12 == 1)" ( (binary_expression "uVar12 == 1" identifier == number_literal) )) (compound_statement "{\n      if (uVar8 == 4) {\n        uVar8 = pFVar15->fts_flags;\n      }\n      else {\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }\n      if ((uVar8 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);\n      }\n      if (sp->fts_child != (FTSENT *)0x0) {\n        fts_lfree(sp->fts_child);\n        sp->fts_child = (_ftsent *)0x0;\n      }\n      pFVar13 = (FTS *)sp->fts_options;\n      pFVar15->fts_info = 6;\nLAB_0001a5ac:\n      leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);\n      return pFVar15;\n    }" { (if_statement "if (uVar8 == 4) {\n        uVar8 = pFVar15->fts_flags;\n      }\n      else {\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }" if (parenthesized_expression "(uVar8 == 4)" ( (binary_expression "uVar8 == 4" identifier == number_literal) )) (compound_statement "{\n        uVar8 = pFVar15->fts_flags;\n      }" { (expression_statement "uVar8 = pFVar15->fts_flags;" (assignment_expression "uVar8 = pFVar15->fts_flags" identifier = (field_expression "pFVar15->fts_flags" identifier -> field_identifier)) ;) }) (else_clause "else {\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }" else (compound_statement "{\nLAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }\n        uVar8 = pFVar15->fts_flags;\n      }" { (labeled_statement "LAB_0001a554:\n        if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }" statement_identifier : (if_statement "if (((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))) {\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }" if (parenthesized_expression "(((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev))))" ( (binary_expression "((uVar10 & 0x40) == 0) ||\n           ((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))" (parenthesized_expression "((uVar10 & 0x40) == 0)" ( (binary_expression "(uVar10 & 0x40) == 0" (parenthesized_expression "(uVar10 & 0x40)" ( (binary_expression "uVar10 & 0x40" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)))" ( (parenthesized_expression "(*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev))" ( (binary_expression "*(int *)&sp->fts_dev == 0 && ((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)" (binary_expression "*(int *)&sp->fts_dev == 0" (pointer_expression "*(int *)&sp->fts_dev" * (cast_expression "(int *)&sp->fts_dev" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sp->fts_dev" & (field_expression "sp->fts_dev" identifier -> field_identifier)))) == number_literal) && (parenthesized_expression "((ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev)" ( (binary_expression "(ulong)sp->fts_dev == pFVar15->fts_statp[0].st_dev" (cast_expression "(ulong)sp->fts_dev" ( (type_descriptor "ulong" type_identifier) ) (field_expression "sp->fts_dev" identifier -> field_identifier)) == (field_expression "pFVar15->fts_statp[0].st_dev" (subscript_expression "pFVar15->fts_statp[0]" (field_expression "pFVar15->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ))) )) ))) )) (compound_statement "{\n          if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }\n          pFVar15 = pFVar18;\n          sp->fts_child = (_ftsent *)0x0;\n          goto LAB_0001a788;\n        }" { (if_statement "if (sp->fts_child == (FTSENT *)0x0) {\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }" if (parenthesized_expression "(sp->fts_child == (FTSENT *)0x0)" ( (binary_expression "sp->fts_child == (FTSENT *)0x0" (field_expression "sp->fts_child" identifier -> field_identifier) == (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);\n            sp->fts_child = pFVar18;\n            if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }" { (labeled_statement "LAB_0001a8e4:\n            pFVar18 = fts_build(sp,3);" statement_identifier : (expression_statement "pFVar18 = fts_build(sp,3);" (assignment_expression "pFVar18 = fts_build(sp,3)" identifier = (call_expression "fts_build(sp,3)" identifier (argument_list "(sp,3)" ( identifier , number_literal )))) ;)) (expression_statement "sp->fts_child = pFVar18;" (assignment_expression "sp->fts_child = pFVar18" (field_expression "sp->fts_child" identifier -> field_identifier) = identifier) ;) (if_statement "if (pFVar18 == (FTSENT *)0x0) {\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }" if (parenthesized_expression "(pFVar18 == (FTSENT *)0x0)" ( (binary_expression "pFVar18 == (FTSENT *)0x0" identifier == (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pFVar13 = (FTS *)sp->fts_options;\n              if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }\n              if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }\n              goto LAB_0001a5ac;\n            }" { (expression_statement "pFVar13 = (FTS *)sp->fts_options;" (assignment_expression "pFVar13 = (FTS *)sp->fts_options" identifier = (cast_expression "(FTS *)sp->fts_options" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_options" identifier -> field_identifier))) ;) (if_statement "if (((uint)pFVar13 & 0x4000) != 0) {\n                return (FTSENT *)0x0;\n              }" if (parenthesized_expression "(((uint)pFVar13 & 0x4000) != 0)" ( (binary_expression "((uint)pFVar13 & 0x4000) != 0" (parenthesized_expression "((uint)pFVar13 & 0x4000)" ( (binary_expression "(uint)pFVar13 & 0x4000" (cast_expression "(uint)pFVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                return (FTSENT *)0x0;\n              }" { (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if ((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)) {\n                pFVar15->fts_info = 7;\n              }" if (parenthesized_expression "((pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4))" ( (binary_expression "(pFVar15->fts_errno != 0) && (pFVar15->fts_info != 4)" (parenthesized_expression "(pFVar15->fts_errno != 0)" ( (binary_expression "pFVar15->fts_errno != 0" (field_expression "pFVar15->fts_errno" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "(pFVar15->fts_info != 4)" ( (binary_expression "pFVar15->fts_info != 4" (field_expression "pFVar15->fts_info" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n                pFVar15->fts_info = 7;\n              }" { (expression_statement "pFVar15->fts_info = 7;" (assignment_expression "pFVar15->fts_info = 7" (field_expression "pFVar15->fts_info" identifier -> field_identifier) = number_literal) ;) })) (goto_statement "goto LAB_0001a5ac;" goto statement_identifier ;) })) }) (else_clause "else {\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }" else (compound_statement "{\n            if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }\n            iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);\n            if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            pFVar18 = sp->fts_child;\n            pFVar15->fts_errno = *piVar5;\n            pFVar15->fts_flags = pFVar15->fts_flags | 1;\n            for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }\n          }" { (if_statement "if ((uVar10 & 0x2000) != 0) {\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }" if (parenthesized_expression "((uVar10 & 0x2000) != 0)" ( (binary_expression "(uVar10 & 0x2000) != 0" (parenthesized_expression "(uVar10 & 0x2000)" ( (binary_expression "uVar10 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              sp->fts_options = uVar10 & 0xffffdfff;\n              fts_lfree(sp->fts_child);\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a8e4;\n            }" { (expression_statement "sp->fts_options = uVar10 & 0xffffdfff;" (assignment_expression "sp->fts_options = uVar10 & 0xffffdfff" (field_expression "sp->fts_options" identifier -> field_identifier) = (binary_expression "uVar10 & 0xffffdfff" identifier & number_literal)) ;) (expression_statement "fts_lfree(sp->fts_child);" (call_expression "fts_lfree(sp->fts_child)" identifier (argument_list "(sp->fts_child)" ( (field_expression "sp->fts_child" identifier -> field_identifier) ))) ;) (expression_statement "sp->fts_child = (_ftsent *)0x0;" (assignment_expression "sp->fts_child = (_ftsent *)0x0" (field_expression "sp->fts_child" identifier -> field_identifier) = (cast_expression "(_ftsent *)0x0" ( (type_descriptor "_ftsent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001a8e4;" goto statement_identifier ;) })) (expression_statement "iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath);" (assignment_expression "iVar6 = fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath)" identifier = (call_expression "fts_safe_changedir(sp,pFVar15,-1,pFVar15->fts_accpath)" identifier (argument_list "(sp,pFVar15,-1,pFVar15->fts_accpath)" ( identifier , identifier , number_literal , (field_expression "pFVar15->fts_accpath" identifier -> field_identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              pFVar15 = sp->fts_child;\n              sp->fts_child = (_ftsent *)0x0;\n              goto LAB_0001a788;\n            }" { (expression_statement "pFVar15 = sp->fts_child;" (assignment_expression "pFVar15 = sp->fts_child" identifier = (field_expression "sp->fts_child" identifier -> field_identifier)) ;) (expression_statement "sp->fts_child = (_ftsent *)0x0;" (assignment_expression "sp->fts_child = (_ftsent *)0x0" (field_expression "sp->fts_child" identifier -> field_identifier) = (cast_expression "(_ftsent *)0x0" ( (type_descriptor "_ftsent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001a788;" goto statement_identifier ;) })) (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pFVar18 = sp->fts_child;" (assignment_expression "pFVar18 = sp->fts_child" identifier = (field_expression "sp->fts_child" identifier -> field_identifier)) ;) (expression_statement "pFVar15->fts_errno = *piVar5;" (assignment_expression "pFVar15->fts_errno = *piVar5" (field_expression "pFVar15->fts_errno" identifier -> field_identifier) = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "pFVar15->fts_flags = pFVar15->fts_flags | 1;" (assignment_expression "pFVar15->fts_flags = pFVar15->fts_flags | 1" (field_expression "pFVar15->fts_flags" identifier -> field_identifier) = (binary_expression "pFVar15->fts_flags | 1" (field_expression "pFVar15->fts_flags" identifier -> field_identifier) | number_literal)) ;) (for_statement "for (pFVar15 = pFVar18; pFVar15 != (FTSENT *)0x0; pFVar15 = pFVar15->fts_link) {\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }" for ( (assignment_expression "pFVar15 = pFVar18" identifier = identifier) ; (binary_expression "pFVar15 != (FTSENT *)0x0" identifier != (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pFVar15 = pFVar15->fts_link" identifier = (field_expression "pFVar15->fts_link" identifier -> field_identifier)) ) (compound_statement "{\n              pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;\n            }" { (expression_statement "pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath;" (assignment_expression "pFVar15->fts_accpath = pFVar15->fts_parent->fts_accpath" (field_expression "pFVar15->fts_accpath" identifier -> field_identifier) = (field_expression "pFVar15->fts_parent->fts_accpath" (field_expression "pFVar15->fts_parent" identifier -> field_identifier) -> field_identifier)) ;) })) }))) (expression_statement "pFVar15 = pFVar18;" (assignment_expression "pFVar15 = pFVar18" identifier = identifier) ;) (expression_statement "sp->fts_child = (_ftsent *)0x0;" (assignment_expression "sp->fts_child = (_ftsent *)0x0" (field_expression "sp->fts_child" identifier -> field_identifier) = (cast_expression "(_ftsent *)0x0" ( (type_descriptor "_ftsent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001a788;" goto statement_identifier ;) }))) (expression_statement "uVar8 = pFVar15->fts_flags;" (assignment_expression "uVar8 = pFVar15->fts_flags" identifier = (field_expression "pFVar15->fts_flags" identifier -> field_identifier)) ;) }))) (if_statement "if ((uVar8 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);\n      }" if (parenthesized_expression "((uVar8 & 2) != 0)" ( (binary_expression "(uVar8 & 2) != 0" (parenthesized_expression "(uVar8 & 2)" ( (binary_expression "uVar8 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);\n      }" { (expression_statement "(*(code *)PTR_close_000332c0)(pFVar15->fts_symfd);" (call_expression "(*(code *)PTR_close_000332c0)(pFVar15->fts_symfd)" (parenthesized_expression "(*(code *)PTR_close_000332c0)" ( (pointer_expression "*(code *)PTR_close_000332c0" * (cast_expression "(code *)PTR_close_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar15->fts_symfd)" ( (field_expression "pFVar15->fts_symfd" identifier -> field_identifier) ))) ;) })) (if_statement "if (sp->fts_child != (FTSENT *)0x0) {\n        fts_lfree(sp->fts_child);\n        sp->fts_child = (_ftsent *)0x0;\n      }" if (parenthesized_expression "(sp->fts_child != (FTSENT *)0x0)" ( (binary_expression "sp->fts_child != (FTSENT *)0x0" (field_expression "sp->fts_child" identifier -> field_identifier) != (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        fts_lfree(sp->fts_child);\n        sp->fts_child = (_ftsent *)0x0;\n      }" { (expression_statement "fts_lfree(sp->fts_child);" (call_expression "fts_lfree(sp->fts_child)" identifier (argument_list "(sp->fts_child)" ( (field_expression "sp->fts_child" identifier -> field_identifier) ))) ;) (expression_statement "sp->fts_child = (_ftsent *)0x0;" (assignment_expression "sp->fts_child = (_ftsent *)0x0" (field_expression "sp->fts_child" identifier -> field_identifier) = (cast_expression "(_ftsent *)0x0" ( (type_descriptor "_ftsent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pFVar13 = (FTS *)sp->fts_options;" (assignment_expression "pFVar13 = (FTS *)sp->fts_options" identifier = (cast_expression "(FTS *)sp->fts_options" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_options" identifier -> field_identifier))) ;) (expression_statement "pFVar15->fts_info = 6;" (assignment_expression "pFVar15->fts_info = 6" (field_expression "pFVar15->fts_info" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_0001a5ac:\n      leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);" statement_identifier : (expression_statement "leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);" (call_expression "leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15)" identifier (argument_list "(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15)" ( 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 *)pFVar15" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (return_statement "return pFVar15;" return identifier ;) })) (labeled_statement "LAB_0001a450:\n    do {\n      puVar1 = PTR_free_000333cc;\n      pFVar15 = pFVar18->fts_link;\n      if (pFVar15 == (FTSENT *)0x0) {\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }\n      sp->fts_cur = pFVar15;\n      (*(code *)puVar1)(pFVar18);\n      if (pFVar15->fts_level == 0) {\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }\n      pFVar18 = pFVar15;\n    } while (pFVar15->fts_instr == 4);" statement_identifier : (do_statement "do {\n      puVar1 = PTR_free_000333cc;\n      pFVar15 = pFVar18->fts_link;\n      if (pFVar15 == (FTSENT *)0x0) {\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }\n      sp->fts_cur = pFVar15;\n      (*(code *)puVar1)(pFVar18);\n      if (pFVar15->fts_level == 0) {\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }\n      pFVar18 = pFVar15;\n    } while (pFVar15->fts_instr == 4);" do (compound_statement "{\n      puVar1 = PTR_free_000333cc;\n      pFVar15 = pFVar18->fts_link;\n      if (pFVar15 == (FTSENT *)0x0) {\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }\n      sp->fts_cur = pFVar15;\n      (*(code *)puVar1)(pFVar18);\n      if (pFVar15->fts_level == 0) {\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }\n      pFVar18 = pFVar15;\n    }" { (expression_statement "puVar1 = PTR_free_000333cc;" (assignment_expression "puVar1 = PTR_free_000333cc" identifier = identifier) ;) (expression_statement "pFVar15 = pFVar18->fts_link;" (assignment_expression "pFVar15 = pFVar18->fts_link" identifier = (field_expression "pFVar18->fts_link" identifier -> field_identifier)) ;) (if_statement "if (pFVar15 == (FTSENT *)0x0) {\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }" if (parenthesized_expression "(pFVar15 == (FTSENT *)0x0)" ( (binary_expression "pFVar15 == (FTSENT *)0x0" identifier == (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        fts_1 = pFVar18->fts_parent;\n        if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }\n        puVar1 = PTR_free_000333cc;\n        sp->fts_cur = fts_1;\n        (*(code *)puVar1)(pFVar18);\n        if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }\n        if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }\n        goto LAB_0001a898;\n      }" { (expression_statement "fts_1 = pFVar18->fts_parent;" (assignment_expression "fts_1 = pFVar18->fts_parent" identifier = (field_expression "pFVar18->fts_parent" identifier -> field_identifier)) ;) (if_statement "if (fts_1->fts_dirp != (DIR *)0x0) {\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }" if (parenthesized_expression "(fts_1->fts_dirp != (DIR *)0x0)" ( (binary_expression "fts_1->fts_dirp != (DIR *)0x0" (field_expression "fts_1->fts_dirp" identifier -> field_identifier) != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          sVar11 = fts_1->fts_pathlen;\n          sp->fts_cur = fts_1;\n          sp->fts_path[sVar11] = '\0';\n          pFVar15 = fts_build(sp,3);\n          if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }\n          if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }\n          fts_1 = pFVar18->fts_parent;\n        }" { (expression_statement "sVar11 = fts_1->fts_pathlen;" (assignment_expression "sVar11 = fts_1->fts_pathlen" identifier = (field_expression "fts_1->fts_pathlen" identifier -> field_identifier)) ;) (expression_statement "sp->fts_cur = fts_1;" (assignment_expression "sp->fts_cur = fts_1" (field_expression "sp->fts_cur" identifier -> field_identifier) = identifier) ;) (expression_statement "sp->fts_path[sVar11] = '\0';" (assignment_expression "sp->fts_path[sVar11] = '\0'" (subscript_expression "sp->fts_path[sVar11]" (field_expression "sp->fts_path" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pFVar15 = fts_build(sp,3);" (assignment_expression "pFVar15 = fts_build(sp,3)" identifier = (call_expression "fts_build(sp,3)" identifier (argument_list "(sp,3)" ( identifier , number_literal )))) ;) (if_statement "if (pFVar15 != (FTSENT *)0x0) {\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }" if (parenthesized_expression "(pFVar15 != (FTSENT *)0x0)" ( (binary_expression "pFVar15 != (FTSENT *)0x0" identifier != (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*(code *)PTR_free_000333cc)(pFVar18);\n            goto LAB_0001a788;\n          }" { (expression_statement "(*(code *)PTR_free_000333cc)(pFVar18);" (call_expression "(*(code *)PTR_free_000333cc)(pFVar18)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar18)" ( identifier ))) ;) (goto_statement "goto LAB_0001a788;" goto statement_identifier ;) })) (if_statement "if ((sp->fts_options & 0x4000U) != 0) {\n            return (FTSENT *)0x0;\n          }" if (parenthesized_expression "((sp->fts_options & 0x4000U) != 0)" ( (binary_expression "(sp->fts_options & 0x4000U) != 0" (parenthesized_expression "(sp->fts_options & 0x4000U)" ( (binary_expression "sp->fts_options & 0x4000U" (field_expression "sp->fts_options" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            return (FTSENT *)0x0;\n          }" { (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "fts_1 = pFVar18->fts_parent;" (assignment_expression "fts_1 = pFVar18->fts_parent" identifier = (field_expression "pFVar18->fts_parent" identifier -> field_identifier)) ;) })) (expression_statement "puVar1 = PTR_free_000333cc;" (assignment_expression "puVar1 = PTR_free_000333cc" identifier = identifier) ;) (expression_statement "sp->fts_cur = fts_1;" (assignment_expression "sp->fts_cur = fts_1" (field_expression "sp->fts_cur" identifier -> field_identifier) = identifier) ;) (expression_statement "(*(code *)puVar1)(pFVar18);" (call_expression "(*(code *)puVar1)(pFVar18)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar18)" ( identifier ))) ;) (if_statement "if (fts_1->fts_level == -1) {\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }" if (parenthesized_expression "(fts_1->fts_level == -1)" ( (binary_expression "fts_1->fts_level == -1" (field_expression "fts_1->fts_level" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_000333cc)(fts_1);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          sp->fts_cur = (_ftsent *)0x0;\n          return (FTSENT *)0x0;\n        }" { (expression_statement "(*(code *)PTR_free_000333cc)(fts_1);" (call_expression "(*(code *)PTR_free_000333cc)(fts_1)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fts_1)" ( identifier ))) ;) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "sp->fts_cur = (_ftsent *)0x0;" (assignment_expression "sp->fts_cur = (_ftsent *)0x0" (field_expression "sp->fts_cur" identifier -> field_identifier) = (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) ;) })) (if_statement "if (fts_1->fts_info != 0xb) {\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }" if (parenthesized_expression "(fts_1->fts_info != 0xb)" ( (binary_expression "fts_1->fts_info != 0xb" (field_expression "fts_1->fts_info" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n          sp->fts_path[fts_1->fts_pathlen] = '\0';\n          if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }\n          if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }\nLAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }\n          return (FTSENT *)0x0;\n        }" { (expression_statement "sp->fts_path[fts_1->fts_pathlen] = '\0';" (assignment_expression "sp->fts_path[fts_1->fts_pathlen] = '\0'" (subscript_expression "sp->fts_path[fts_1->fts_pathlen]" (field_expression "sp->fts_path" identifier -> field_identifier) [ (field_expression "fts_1->fts_pathlen" identifier -> field_identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (fts_1->fts_level == 0) {\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }" if (parenthesized_expression "(fts_1->fts_level == 0)" ( (binary_expression "fts_1->fts_level == 0" (field_expression "fts_1->fts_level" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            iVar6 = restore_initial_cwd(sp);\n            if (iVar6 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n            uVar10 = sp->fts_options;\n            fts_1->fts_errno = *piVar5;\n            sp->fts_options = uVar10 | 0x4000;\n            if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }\n            pFVar13 = (FTS *)sp->fts_options;\n          }" { (expression_statement "iVar6 = restore_initial_cwd(sp);" (assignment_expression "iVar6 = restore_initial_cwd(sp)" identifier = (call_expression "restore_initial_cwd(sp)" identifier (argument_list "(sp)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) goto LAB_0001a4d0;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a4d0;" goto statement_identifier ;)) (labeled_statement "LAB_0001a9fc:\n            piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();" statement_identifier : (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "uVar10 = sp->fts_options;" (assignment_expression "uVar10 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (expression_statement "fts_1->fts_errno = *piVar5;" (assignment_expression "fts_1->fts_errno = *piVar5" (field_expression "fts_1->fts_errno" identifier -> field_identifier) = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "sp->fts_options = uVar10 | 0x4000;" (assignment_expression "sp->fts_options = uVar10 | 0x4000" (field_expression "sp->fts_options" identifier -> field_identifier) = (binary_expression "uVar10 | 0x4000" identifier | number_literal)) ;) (if_statement "if (fts_1->fts_info == 2) {\n              return (FTSENT *)0x0;\n            }" if (parenthesized_expression "(fts_1->fts_info == 2)" ( (binary_expression "fts_1->fts_info == 2" (field_expression "fts_1->fts_info" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              return (FTSENT *)0x0;\n            }" { (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pFVar13 = (FTS *)sp->fts_options;" (assignment_expression "pFVar13 = (FTS *)sp->fts_options" identifier = (cast_expression "(FTS *)sp->fts_options" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_options" identifier -> field_identifier))) ;) }) (else_clause "else {\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }" else (compound_statement "{\n            if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }\nLAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;\n            if (fts_1->fts_info == 2) goto LAB_0001a50c;\n          }" { (if_statement "if ((fts_1->fts_flags & 2) == 0) {\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }\n            else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }" if (parenthesized_expression "((fts_1->fts_flags & 2) == 0)" ( (binary_expression "(fts_1->fts_flags & 2) == 0" (parenthesized_expression "(fts_1->fts_flags & 2)" ( (binary_expression "fts_1->fts_flags & 2" (field_expression "fts_1->fts_flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;\n            }" { (if_statement "if (((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)) goto LAB_0001a9fc;" if (parenthesized_expression "(((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0))" ( (binary_expression "((fts_1->fts_flags & 1) == 0) &&\n                 (iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)" (parenthesized_expression "((fts_1->fts_flags & 1) == 0)" ( (binary_expression "(fts_1->fts_flags & 1) == 0" (parenthesized_expression "(fts_1->fts_flags & 1)" ( (binary_expression "fts_1->fts_flags & 1" (field_expression "fts_1->fts_flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0)" ( (comma_expression "iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            ), iVar6 != 0" (assignment_expression "iVar6 = fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            )" identifier = (call_expression "fts_safe_changedir(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            )" identifier (argument_list "(sp,fts_1->fts_parent,-1,PTR_fdopendir_00033108 + 0x1d70\n                                            )" ( identifier , (field_expression "fts_1->fts_parent" identifier -> field_identifier) , number_literal , (binary_expression "PTR_fdopendir_00033108 + 0x1d70" identifier + number_literal) )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001a9fc;" goto statement_identifier ;)) }) (else_clause "else {\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }" else (compound_statement "{\n              iVar6 = fts_1->fts_symfd;\n              if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }\n              (*(code *)PTR_close_000332c0)(iVar6);\n            }" { (expression_statement "iVar6 = fts_1->fts_symfd;" (assignment_expression "iVar6 = fts_1->fts_symfd" identifier = (field_expression "fts_1->fts_symfd" identifier -> field_identifier)) ;) (if_statement "if ((sp->fts_options & 4U) == 0) {\n                if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\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_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }\n              }" { (if_statement "if ((sp->fts_options & 0x200U) == 0) {\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }\n                else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }" if (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) )) (compound_statement "{\n                  iVar6 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }\n                }" { (expression_statement "iVar6 = (*(code *)PTR_fchdir_000332f4)();" (assignment_expression "iVar6 = (*(code *)PTR_fchdir_000332f4)()" identifier = (call_expression "(*(code *)PTR_fchdir_000332f4)()" (parenthesized_expression "(*(code *)PTR_fchdir_000332f4)" ( (pointer_expression "*(code *)PTR_fchdir_000332f4" * (cast_expression "(code *)PTR_fchdir_000332f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0) {\n                    iVar6 = fts_1->fts_symfd;\n                  }\n                  else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar6 = fts_1->fts_symfd;\n                  }" { (expression_statement "iVar6 = fts_1->fts_symfd;" (assignment_expression "iVar6 = fts_1->fts_symfd" identifier = (field_expression "fts_1->fts_symfd" identifier -> field_identifier)) ;) }) (else_clause "else {\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }" else (compound_statement "{\n                    piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n                    uVar10 = sp->fts_options;\n                    iVar6 = fts_1->fts_symfd;\n                    fts_1->fts_errno = *piVar5;\n                    sp->fts_options = uVar10 | 0x4000;\n                  }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar10 = sp->fts_options;" (assignment_expression "uVar10 = sp->fts_options" identifier = (field_expression "sp->fts_options" identifier -> field_identifier)) ;) (expression_statement "iVar6 = fts_1->fts_symfd;" (assignment_expression "iVar6 = fts_1->fts_symfd" identifier = (field_expression "fts_1->fts_symfd" identifier -> field_identifier)) ;) (expression_statement "fts_1->fts_errno = *piVar5;" (assignment_expression "fts_1->fts_errno = *piVar5" (field_expression "fts_1->fts_errno" identifier -> field_identifier) = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "sp->fts_options = uVar10 | 0x4000;" (assignment_expression "sp->fts_options = uVar10 | 0x4000" (field_expression "sp->fts_options" identifier -> field_identifier) = (binary_expression "uVar10 | 0x4000" identifier | number_literal)) ;) }))) }) (else_clause "else {\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }" else (compound_statement "{\n                  cwd_advance_fd(sp,iVar6,true);\n                  iVar6 = fts_1->fts_symfd;\n                }" { (expression_statement "cwd_advance_fd(sp,iVar6,true);" (call_expression "cwd_advance_fd(sp,iVar6,true)" identifier (argument_list "(sp,iVar6,true)" ( identifier , identifier , true ))) ;) (expression_statement "iVar6 = fts_1->fts_symfd;" (assignment_expression "iVar6 = fts_1->fts_symfd" identifier = (field_expression "fts_1->fts_symfd" identifier -> field_identifier)) ;) }))) })) (expression_statement "(*(code *)PTR_close_000332c0)(iVar6);" (call_expression "(*(code *)PTR_close_000332c0)(iVar6)" (parenthesized_expression "(*(code *)PTR_close_000332c0)" ( (pointer_expression "*(code *)PTR_close_000332c0" * (cast_expression "(code *)PTR_close_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier ))) ;) }))) (labeled_statement "LAB_0001a4d0:\n            pFVar13 = (FTS *)sp->fts_options;" statement_identifier : (expression_statement "pFVar13 = (FTS *)sp->fts_options;" (assignment_expression "pFVar13 = (FTS *)sp->fts_options" identifier = (cast_expression "(FTS *)sp->fts_options" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_options" identifier -> field_identifier))) ;)) (if_statement "if (fts_1->fts_info == 2) goto LAB_0001a50c;" if (parenthesized_expression "(fts_1->fts_info == 2)" ( (binary_expression "fts_1->fts_info == 2" (field_expression "fts_1->fts_info" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0001a50c;" goto statement_identifier ;)) }))) (if_statement "if (fts_1->fts_errno == 0) {\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }\n          else {\n            fts_1->fts_info = 7;\n          }" if (parenthesized_expression "(fts_1->fts_errno == 0)" ( (binary_expression "fts_1->fts_errno == 0" (field_expression "fts_1->fts_errno" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            fts_1->fts_info = 6;\n            leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);\n            pFVar13 = (FTS *)sp->fts_options;\n          }" { (expression_statement "fts_1->fts_info = 6;" (assignment_expression "fts_1->fts_info = 6" (field_expression "fts_1->fts_info" identifier -> field_identifier) = number_literal) ;) (expression_statement "leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1);" (call_expression "leave_dir(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1)" identifier (argument_list "(pFVar13,(FTSENT *)&sp->fts_cycle,(FTS *)fts_1)" ( 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 *)fts_1" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "pFVar13 = (FTS *)sp->fts_options;" (assignment_expression "pFVar13 = (FTS *)sp->fts_options" identifier = (cast_expression "(FTS *)sp->fts_options" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_options" identifier -> field_identifier))) ;) }) (else_clause "else {\n            fts_1->fts_info = 7;\n          }" else (compound_statement "{\n            fts_1->fts_info = 7;\n          }" { (expression_statement "fts_1->fts_info = 7;" (assignment_expression "fts_1->fts_info = 7" (field_expression "fts_1->fts_info" identifier -> field_identifier) = number_literal) ;) }))) (labeled_statement "LAB_0001a50c:\n          if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }" statement_identifier : (if_statement "if (((uint)pFVar13 & 0x4000) == 0) {\n            return fts_1;\n          }" if (parenthesized_expression "(((uint)pFVar13 & 0x4000) == 0)" ( (binary_expression "((uint)pFVar13 & 0x4000) == 0" (parenthesized_expression "((uint)pFVar13 & 0x4000)" ( (binary_expression "(uint)pFVar13 & 0x4000" (cast_expression "(uint)pFVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            return fts_1;\n          }" { (return_statement "return fts_1;" return identifier ;) }))) (return_statement "return (FTSENT *)0x0;" return (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (goto_statement "goto LAB_0001a898;" goto statement_identifier ;) })) (expression_statement "sp->fts_cur = pFVar15;" (assignment_expression "sp->fts_cur = pFVar15" (field_expression "sp->fts_cur" identifier -> field_identifier) = identifier) ;) (expression_statement "(*(code *)puVar1)(pFVar18);" (call_expression "(*(code *)puVar1)(pFVar18)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar18)" ( identifier ))) ;) (if_statement "if (pFVar15->fts_level == 0) {\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }" if (parenthesized_expression "(pFVar15->fts_level == 0)" ( (binary_expression "pFVar15->fts_level == 0" (field_expression "pFVar15->fts_level" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        iVar6 = restore_initial_cwd(sp);\n        if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }\n        if ((sp->fts_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }\n        puVar1 = PTR_memmove_000333d0;\n        pFVar17 = pFVar15 + 1;\n        pcVar2 = sp->fts_path;\n        pFVar15->fts_pathlen = pFVar15->fts_namelen;\n        (*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);\n        pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);\n        if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }\n        pcVar2 = sp->fts_path;\n        pFVar13 = (FTS *)sp->fts_options;\n        pFVar15->fts_path = pcVar2;\n        pFVar15->fts_accpath = pcVar2;\n        setup_dir(pFVar13,(FTS *)&sp->fts_cycle);\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7d8;\n      }" { (expression_statement "iVar6 = restore_initial_cwd(sp);" (assignment_expression "iVar6 = restore_initial_cwd(sp)" identifier = (call_expression "restore_initial_cwd(sp)" identifier (argument_list "(sp)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          sp->fts_options = sp->fts_options | 0x4000;\n          return (FTSENT *)0x0;\n        }" { (expression_statement "sp->fts_options = sp->fts_options | 0x4000;" (assignment_expression "sp->fts_options = sp->fts_options | 0x4000" (field_expression "sp->fts_options" identifier -> field_identifier) = (binary_expression "sp->fts_options | 0x4000" (field_expression "sp->fts_options" identifier -> field_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_options & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }" if (parenthesized_expression "((sp->fts_options & 0x102U) == 0)" ( (binary_expression "(sp->fts_options & 0x102U) == 0" (parenthesized_expression "(sp->fts_options & 0x102U)" ( (binary_expression "sp->fts_options & 0x102U" (field_expression "sp->fts_options" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_000333cc)();\n        }" { (expression_statement "(*(code *)PTR_free_000333cc)();" (call_expression "(*(code *)PTR_free_000333cc)()" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }) (else_clause "else if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }" else (if_statement "if ((sp->fts_cycle).ht != (Hash_table *)0x0) {\n          hash_free((sp->fts_cycle).ht);\n        }" if (parenthesized_expression "((sp->fts_cycle).ht != (Hash_table *)0x0)" ( (binary_expression "(sp->fts_cycle).ht != (Hash_table *)0x0" (field_expression "(sp->fts_cycle).ht" (parenthesized_expression "(sp->fts_cycle)" ( (field_expression "sp->fts_cycle" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(Hash_table *)0x0" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          hash_free((sp->fts_cycle).ht);\n        }" { (expression_statement "hash_free((sp->fts_cycle).ht);" (call_expression "hash_free((sp->fts_cycle).ht)" identifier (argument_list "((sp->fts_cycle).ht)" ( (field_expression "(sp->fts_cycle).ht" (parenthesized_expression "(sp->fts_cycle)" ( (field_expression "sp->fts_cycle" identifier -> field_identifier) )) . field_identifier) ))) ;) })))) (expression_statement "puVar1 = PTR_memmove_000333d0;" (assignment_expression "puVar1 = PTR_memmove_000333d0" identifier = identifier) ;) (expression_statement "pFVar17 = pFVar15 + 1;" (assignment_expression "pFVar17 = pFVar15 + 1" identifier = (binary_expression "pFVar15 + 1" identifier + number_literal)) ;) (expression_statement "pcVar2 = sp->fts_path;" (assignment_expression "pcVar2 = sp->fts_path" identifier = (field_expression "sp->fts_path" identifier -> field_identifier)) ;) (expression_statement "pFVar15->fts_pathlen = pFVar15->fts_namelen;" (assignment_expression "pFVar15->fts_pathlen = pFVar15->fts_namelen" (field_expression "pFVar15->fts_pathlen" identifier -> field_identifier) = (field_expression "pFVar15->fts_namelen" identifier -> field_identifier)) ;) (expression_statement "(*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1);" (call_expression "(*(code *)puVar1)(pcVar2,pFVar17,pFVar15->fts_namelen + 1)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar2,pFVar17,pFVar15->fts_namelen + 1)" ( identifier , identifier , (binary_expression "pFVar15->fts_namelen + 1" (field_expression "pFVar15->fts_namelen" identifier -> field_identifier) + number_literal) ))) ;) (expression_statement "pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f);" (assignment_expression "pFVar18 = (FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f)" identifier = (cast_expression "(FTSENT *)(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f)" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strrchr_00033308)(pFVar17,0x2f)" (parenthesized_expression "(*(code *)PTR_strrchr_00033308)" ( (pointer_expression "*(code *)PTR_strrchr_00033308" * (cast_expression "(code *)PTR_strrchr_00033308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar17,0x2f)" ( identifier , number_literal ))))) ;) (if_statement "if ((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))) {\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }" if (parenthesized_expression "((pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0'))))" ( (binary_expression "(pFVar18 != (FTSENT *)0x0) &&\n           ((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))" (parenthesized_expression "(pFVar18 != (FTSENT *)0x0)" ( (binary_expression "pFVar18 != (FTSENT *)0x0" identifier != (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')))" ( (parenthesized_expression "(pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0'))" ( (binary_expression "pFVar17 != pFVar18 || (*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')" (binary_expression "pFVar17 != pFVar18" identifier != identifier) || (parenthesized_expression "(*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0')" ( (binary_expression "*(char *)((int)&pFVar15[1].fts_cycle + 1) != '\0'" (pointer_expression "*(char *)((int)&pFVar15[1].fts_cycle + 1)" * (cast_expression "(char *)((int)&pFVar15[1].fts_cycle + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar15[1].fts_cycle + 1)" ( (binary_expression "(int)&pFVar15[1].fts_cycle + 1" (cast_expression "(int)&pFVar15[1].fts_cycle" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar15[1].fts_cycle" & (field_expression "pFVar15[1].fts_cycle" (subscript_expression "pFVar15[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);\n          sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);\n          (*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);\n          pFVar15->fts_namelen = sVar11;\n        }" { (expression_statement "puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1);" (assignment_expression "puVar16 = (undefined1 *)((int)&pFVar18->fts_cycle + 1)" identifier = (cast_expression "(undefined1 *)((int)&pFVar18->fts_cycle + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar18->fts_cycle + 1)" ( (binary_expression "(int)&pFVar18->fts_cycle + 1" (cast_expression "(int)&pFVar18->fts_cycle" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar18->fts_cycle" & (field_expression "pFVar18->fts_cycle" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "sVar11 = (*(code *)PTR_strlen_00033354)(puVar16);" (assignment_expression "sVar11 = (*(code *)PTR_strlen_00033354)(puVar16)" identifier = (call_expression "(*(code *)PTR_strlen_00033354)(puVar16)" (parenthesized_expression "(*(code *)PTR_strlen_00033354)" ( (pointer_expression "*(code *)PTR_strlen_00033354" * (cast_expression "(code *)PTR_strlen_00033354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1);" (call_expression "(*(code *)PTR_memmove_000333d0)(pFVar17,puVar16,sVar11 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_000333d0)" ( (pointer_expression "*(code *)PTR_memmove_000333d0" * (cast_expression "(code *)PTR_memmove_000333d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar17,puVar16,sVar11 + 1)" ( identifier , identifier , (binary_expression "sVar11 + 1" identifier + number_literal) ))) ;) (expression_statement "pFVar15->fts_namelen = sVar11;" (assignment_expression "pFVar15->fts_namelen = sVar11" (field_expression "pFVar15->fts_namelen" identifier -> field_identifier) = identifier) ;) })) (expression_statement "pcVar2 = sp->fts_path;" (assignment_expression "pcVar2 = sp->fts_path" identifier = (field_expression "sp->fts_path" identifier -> field_identifier)) ;) (expression_statement "pFVar13 = (FTS *)sp->fts_options;" (assignment_expression "pFVar13 = (FTS *)sp->fts_options" identifier = (cast_expression "(FTS *)sp->fts_options" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_options" identifier -> field_identifier))) ;) (expression_statement "pFVar15->fts_path = pcVar2;" (assignment_expression "pFVar15->fts_path = pcVar2" (field_expression "pFVar15->fts_path" identifier -> field_identifier) = identifier) ;) (expression_statement "pFVar15->fts_accpath = pcVar2;" (assignment_expression "pFVar15->fts_accpath = pcVar2" (field_expression "pFVar15->fts_accpath" identifier -> field_identifier) = identifier) ;) (expression_statement "setup_dir(pFVar13,(FTS *)&sp->fts_cycle);" (call_expression "setup_dir(pFVar13,(FTS *)&sp->fts_cycle)" identifier (argument_list "(pFVar13,(FTS *)&sp->fts_cycle)" ( identifier , (cast_expression "(FTS *)&sp->fts_cycle" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sp->fts_cycle" & (field_expression "sp->fts_cycle" identifier -> field_identifier))) ))) ;) (expression_statement "uVar10 = (uint)pFVar15->fts_info;" (assignment_expression "uVar10 = (uint)pFVar15->fts_info" identifier = (cast_expression "(uint)pFVar15->fts_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pFVar15->fts_info" identifier -> field_identifier))) ;) (goto_statement "goto LAB_0001a7d8;" goto statement_identifier ;) })) (expression_statement "pFVar18 = pFVar15;" (assignment_expression "pFVar18 = pFVar15" identifier = identifier) ;) }) while (parenthesized_expression "(pFVar15->fts_instr == 4)" ( (binary_expression "pFVar15->fts_instr == 4" (field_expression "pFVar15->fts_instr" identifier -> field_identifier) == number_literal) )) ;)) (if_statement "if (pFVar15->fts_instr == 2) {\n      uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)\n      ;\n      pFVar15->fts_info = uVar8;\n      if ((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)) {\n        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n        pFVar15->fts_symfd = iVar6;\n        if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }\n      }\n      else {\n        pFVar15->fts_instr = 3;\n      }\n    }" if (parenthesized_expression "(pFVar15->fts_instr == 2)" ( (binary_expression "pFVar15->fts_instr == 2" (field_expression "pFVar15->fts_instr" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)\n      ;\n      pFVar15->fts_info = uVar8;\n      if ((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)) {\n        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n        pFVar15->fts_symfd = iVar6;\n        if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }\n      }\n      else {\n        pFVar15->fts_instr = 3;\n      }\n    }" { (expression_statement "uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)\n      ;" (assignment_expression "uVar8 = fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)" identifier = (call_expression "fts_stat((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)" identifier (argument_list "((FTS *)sp->fts_cwd_fd,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x1)" ( (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(pFVar15,0)" identifier (argument_list "(pFVar15,0)" ( identifier , number_literal ))) , (cast_expression "(FTS *)0x1" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "pFVar15->fts_info = uVar8;" (assignment_expression "pFVar15->fts_info = uVar8" (field_expression "pFVar15->fts_info" identifier -> field_identifier) = identifier) ;) (if_statement "if ((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)) {\n        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n        pFVar15->fts_symfd = iVar6;\n        if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }\n      }\n      else {\n        pFVar15->fts_instr = 3;\n      }" if (parenthesized_expression "((CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0))" ( (binary_expression "(CONCAT22(extraout_var_01,uVar8) == 1) && (((uint)sp->fts_options & 4) == 0)" (parenthesized_expression "(CONCAT22(extraout_var_01,uVar8) == 1)" ( (binary_expression "CONCAT22(extraout_var_01,uVar8) == 1" (call_expression "CONCAT22(extraout_var_01,uVar8)" identifier (argument_list "(extraout_var_01,uVar8)" ( identifier , identifier ))) == number_literal) )) && (parenthesized_expression "(((uint)sp->fts_options & 4) == 0)" ( (binary_expression "((uint)sp->fts_options & 4) == 0" (parenthesized_expression "((uint)sp->fts_options & 4)" ( (binary_expression "(uint)sp->fts_options & 4" (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        iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));\n        pFVar15->fts_symfd = iVar6;\n        if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }\n      }" { (expression_statement "iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74));" (assignment_expression "iVar6 = diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74))" identifier = (call_expression "diropen((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74))" identifier (argument_list "((FTS *)sp->fts_cwd_fd,(char *)sp->fts_options,\n                        (FTS *)(PTR_fdopendir_00033108 + 0x1d74))" ( (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 "(char *)sp->fts_options" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_options" identifier -> field_identifier)) , (cast_expression "(FTS *)(PTR_fdopendir_00033108 + 0x1d74)" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x1d74)" ( (binary_expression "PTR_fdopendir_00033108 + 0x1d74" identifier + number_literal) ))) )))) ;) (expression_statement "pFVar15->fts_symfd = iVar6;" (assignment_expression "pFVar15->fts_symfd = iVar6" (field_expression "pFVar15->fts_symfd" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar6 < 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }\n        else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n          piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();\n          iVar6 = *piVar5;\n          pFVar15->fts_info = 7;\n          pFVar15->fts_errno = iVar6;\n          pFVar15->fts_instr = 3;\n        }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar6 = *piVar5;" (assignment_expression "iVar6 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "pFVar15->fts_info = 7;" (assignment_expression "pFVar15->fts_info = 7" (field_expression "pFVar15->fts_info" identifier -> field_identifier) = number_literal) ;) (expression_statement "pFVar15->fts_errno = iVar6;" (assignment_expression "pFVar15->fts_errno = iVar6" (field_expression "pFVar15->fts_errno" identifier -> field_identifier) = identifier) ;) (expression_statement "pFVar15->fts_instr = 3;" (assignment_expression "pFVar15->fts_instr = 3" (field_expression "pFVar15->fts_instr" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }" else (compound_statement "{\n          pFVar15->fts_flags = pFVar15->fts_flags | 2;\n          pFVar15->fts_instr = 3;\n        }" { (expression_statement "pFVar15->fts_flags = pFVar15->fts_flags | 2;" (assignment_expression "pFVar15->fts_flags = pFVar15->fts_flags | 2" (field_expression "pFVar15->fts_flags" identifier -> field_identifier) = (binary_expression "pFVar15->fts_flags | 2" (field_expression "pFVar15->fts_flags" identifier -> field_identifier) | number_literal)) ;) (expression_statement "pFVar15->fts_instr = 3;" (assignment_expression "pFVar15->fts_instr = 3" (field_expression "pFVar15->fts_instr" identifier -> field_identifier) = number_literal) ;) }))) }) (else_clause "else {\n        pFVar15->fts_instr = 3;\n      }" else (compound_statement "{\n        pFVar15->fts_instr = 3;\n      }" { (expression_statement "pFVar15->fts_instr = 3;" (assignment_expression "pFVar15->fts_instr = 3" (field_expression "pFVar15->fts_instr" identifier -> field_identifier) = number_literal) ;) }))) })) (labeled_statement "LAB_0001a788:\n    puVar1 = PTR_memmove_000333d0;" statement_identifier : (expression_statement "puVar1 = PTR_memmove_000333d0;" (assignment_expression "puVar1 = PTR_memmove_000333d0" identifier = identifier) ;)) (expression_statement "pcVar2 = sp->fts_path;" (assignment_expression "pcVar2 = sp->fts_path" identifier = (field_expression "sp->fts_path" identifier -> field_identifier)) ;) (expression_statement "sVar14 = pFVar15->fts_parent->fts_pathlen;" (assignment_expression "sVar14 = pFVar15->fts_parent->fts_pathlen" identifier = (field_expression "pFVar15->fts_parent->fts_pathlen" (field_expression "pFVar15->fts_parent" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "sVar11 = sVar14 - 1;" (assignment_expression "sVar11 = sVar14 - 1" identifier = (binary_expression "sVar14 - 1" identifier - number_literal)) ;) (if_statement "if (pFVar15->fts_parent->fts_path[sVar11] != '/') {\n      sVar11 = sVar14;\n    }" if (parenthesized_expression "(pFVar15->fts_parent->fts_path[sVar11] != '/')" ( (binary_expression "pFVar15->fts_parent->fts_path[sVar11] != '/'" (subscript_expression "pFVar15->fts_parent->fts_path[sVar11]" (field_expression "pFVar15->fts_parent->fts_path" (field_expression "pFVar15->fts_parent" identifier -> field_identifier) -> field_identifier) [ identifier ]) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n      sVar11 = sVar14;\n    }" { (expression_statement "sVar11 = sVar14;" (assignment_expression "sVar11 = sVar14" identifier = identifier) ;) })) (expression_statement "pcVar2[sVar11] = '/';" (assignment_expression "pcVar2[sVar11] = '/'" (subscript_expression "pcVar2[sVar11]" identifier [ identifier ]) = (char_literal "'/'" ' character ')) ;) (expression_statement "(*(code *)puVar1)(pcVar2 + sVar11 + 1,pFVar15 + 1,pFVar15->fts_namelen + 1);" (call_expression "(*(code *)puVar1)(pcVar2 + sVar11 + 1,pFVar15 + 1,pFVar15->fts_namelen + 1)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar2 + sVar11 + 1,pFVar15 + 1,pFVar15->fts_namelen + 1)" ( (binary_expression "pcVar2 + sVar11 + 1" (binary_expression "pcVar2 + sVar11" identifier + identifier) + number_literal) , (binary_expression "pFVar15 + 1" identifier + number_literal) , (binary_expression "pFVar15->fts_namelen + 1" (field_expression "pFVar15->fts_namelen" identifier -> field_identifier) + number_literal) ))) ;) (expression_statement "uVar10 = (uint)pFVar15->fts_info;" (assignment_expression "uVar10 = (uint)pFVar15->fts_info" identifier = (cast_expression "(uint)pFVar15->fts_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pFVar15->fts_info" identifier -> field_identifier))) ;) (labeled_statement "LAB_0001a7d8:\n    sp->fts_cur = pFVar15;" statement_identifier : (expression_statement "sp->fts_cur = pFVar15;" (assignment_expression "sp->fts_cur = pFVar15" (field_expression "sp->fts_cur" identifier -> field_identifier) = identifier) ;)) (if_statement "if (uVar10 != 0xb) {\nLAB_0001a7e4:\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a7f0;\n    }" if (parenthesized_expression "(uVar10 != 0xb)" ( (binary_expression "uVar10 != 0xb" identifier != number_literal) )) (compound_statement "{\nLAB_0001a7e4:\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a7f0;\n    }" { (labeled_statement "LAB_0001a7e4:\n      if (uVar10 != 1) {\n        return pFVar15;\n      }" statement_identifier : (if_statement "if (uVar10 != 1) {\n        return pFVar15;\n      }" if (parenthesized_expression "(uVar10 != 1)" ( (binary_expression "uVar10 != 1" identifier != number_literal) )) (compound_statement "{\n        return pFVar15;\n      }" { (return_statement "return pFVar15;" return identifier ;) }))) (goto_statement "goto LAB_0001a7f0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a888:\n    iVar6 = (int)pFVar15->fts_statp[0].st_size;" statement_identifier : (expression_statement "iVar6 = (int)pFVar15->fts_statp[0].st_size;" (assignment_expression "iVar6 = (int)pFVar15->fts_statp[0].st_size" identifier = (cast_expression "(int)pFVar15->fts_statp[0].st_size" ( (type_descriptor "int" primitive_type) ) (field_expression "pFVar15->fts_statp[0].st_size" (subscript_expression "pFVar15->fts_statp[0]" (field_expression "pFVar15->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier))) ;)) (if_statement "if (*(int *)&pFVar15->fts_statp[0].st_size != 0) {\nLAB_0001a898:\n      pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();\n      return pFVar15;\n    }" if (parenthesized_expression "(*(int *)&pFVar15->fts_statp[0].st_size != 0)" ( (binary_expression "*(int *)&pFVar15->fts_statp[0].st_size != 0" (pointer_expression "*(int *)&pFVar15->fts_statp[0].st_size" * (cast_expression "(int *)&pFVar15->fts_statp[0].st_size" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar15->fts_statp[0].st_size" & (field_expression "pFVar15->fts_statp[0].st_size" (subscript_expression "pFVar15->fts_statp[0]" (field_expression "pFVar15->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) != number_literal) )) (compound_statement "{\nLAB_0001a898:\n      pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();\n      return pFVar15;\n    }" { (labeled_statement "LAB_0001a898:\n      pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();" statement_identifier : (expression_statement "pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)();" (assignment_expression "pFVar15 = (FTSENT *)(*(code *)PTR_abort_000332d0)()" identifier = (cast_expression "(FTSENT *)(*(code *)PTR_abort_000332d0)()" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_abort_000332d0)()" (parenthesized_expression "(*(code *)PTR_abort_000332d0)" ( (pointer_expression "*(code *)PTR_abort_000332d0" * (cast_expression "(code *)PTR_abort_000332d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (return_statement "return pFVar15;" return identifier ;) })) (if_statement "if (iVar6 != 2) {\n      if (iVar6 == 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a898;\n    }" if (parenthesized_expression "(iVar6 != 2)" ( (binary_expression "iVar6 != 2" identifier != number_literal) )) (compound_statement "{\n      if (iVar6 == 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a898;\n    }" { (if_statement "if (iVar6 == 1) {\n        return pFVar15;\n      }" if (parenthesized_expression "(iVar6 == 1)" ( (binary_expression "iVar6 == 1" identifier == number_literal) )) (compound_statement "{\n        return pFVar15;\n      }" { (return_statement "return pFVar15;" return identifier ;) })) (goto_statement "goto LAB_0001a898;" goto statement_identifier ;) })) (expression_statement "pFVar18 = pFVar15->fts_parent;" (assignment_expression "pFVar18 = pFVar15->fts_parent" identifier = (field_expression "pFVar15->fts_parent" identifier -> field_identifier)) ;) (expression_statement "pFVar13 = (FTS *)sp->fts_cwd_fd;" (assignment_expression "pFVar13 = (FTS *)sp->fts_cwd_fd" identifier = (cast_expression "(FTS *)sp->fts_cwd_fd" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_cwd_fd" identifier -> field_identifier))) ;) (if_statement "if ((pFVar18->fts_n_dirs_remaining == 0) && ((sp->fts_options & 0x18U) == 0x18)) {\n      lVar7 = leaf_optimization(pFVar18,(int)pFVar13);\n      if (lVar7 == NOSTAT_LEAF_OPTIMIZATION) {\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7e4;\n      }\n      pFVar13 = (FTS *)sp->fts_cwd_fd;\n    }" if (parenthesized_expression "((pFVar18->fts_n_dirs_remaining == 0) && ((sp->fts_options & 0x18U) == 0x18))" ( (binary_expression "(pFVar18->fts_n_dirs_remaining == 0) && ((sp->fts_options & 0x18U) == 0x18)" (parenthesized_expression "(pFVar18->fts_n_dirs_remaining == 0)" ( (binary_expression "pFVar18->fts_n_dirs_remaining == 0" (field_expression "pFVar18->fts_n_dirs_remaining" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "((sp->fts_options & 0x18U) == 0x18)" ( (binary_expression "(sp->fts_options & 0x18U) == 0x18" (parenthesized_expression "(sp->fts_options & 0x18U)" ( (binary_expression "sp->fts_options & 0x18U" (field_expression "sp->fts_options" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      lVar7 = leaf_optimization(pFVar18,(int)pFVar13);\n      if (lVar7 == NOSTAT_LEAF_OPTIMIZATION) {\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7e4;\n      }\n      pFVar13 = (FTS *)sp->fts_cwd_fd;\n    }" { (expression_statement "lVar7 = leaf_optimization(pFVar18,(int)pFVar13);" (assignment_expression "lVar7 = leaf_optimization(pFVar18,(int)pFVar13)" identifier = (call_expression "leaf_optimization(pFVar18,(int)pFVar13)" identifier (argument_list "(pFVar18,(int)pFVar13)" ( identifier , (cast_expression "(int)pFVar13" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (lVar7 == NOSTAT_LEAF_OPTIMIZATION) {\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7e4;\n      }" if (parenthesized_expression "(lVar7 == NOSTAT_LEAF_OPTIMIZATION)" ( (binary_expression "lVar7 == NOSTAT_LEAF_OPTIMIZATION" identifier == identifier) )) (compound_statement "{\n        uVar10 = (uint)pFVar15->fts_info;\n        goto LAB_0001a7e4;\n      }" { (expression_statement "uVar10 = (uint)pFVar15->fts_info;" (assignment_expression "uVar10 = (uint)pFVar15->fts_info" identifier = (cast_expression "(uint)pFVar15->fts_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pFVar15->fts_info" identifier -> field_identifier))) ;) (goto_statement "goto LAB_0001a7e4;" goto statement_identifier ;) })) (expression_statement "pFVar13 = (FTS *)sp->fts_cwd_fd;" (assignment_expression "pFVar13 = (FTS *)sp->fts_cwd_fd" identifier = (cast_expression "(FTS *)sp->fts_cwd_fd" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sp->fts_cwd_fd" identifier -> field_identifier))) ;) })) (expression_statement "uVar8 = fts_stat(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0);" (assignment_expression "uVar8 = fts_stat(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0)" identifier = (call_expression "fts_stat(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0)" identifier (argument_list "(pFVar13,(FTSENT *)&sp->fts_options,SUB41(pFVar15,0),(FTS *)0x0)" ( 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(pFVar15,0)" identifier (argument_list "(pFVar15,0)" ( identifier , number_literal ))) , (cast_expression "(FTS *)0x0" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "uVar10 = CONCAT22(extraout_var_00,uVar8);" (assignment_expression "uVar10 = CONCAT22(extraout_var_00,uVar8)" identifier = (call_expression "CONCAT22(extraout_var_00,uVar8)" identifier (argument_list "(extraout_var_00,uVar8)" ( identifier , identifier )))) ;) (expression_statement "uVar12 = pFVar15->fts_statp[0].st_mode;" (assignment_expression "uVar12 = pFVar15->fts_statp[0].st_mode" identifier = (field_expression "pFVar15->fts_statp[0].st_mode" (subscript_expression "pFVar15->fts_statp[0]" (field_expression "pFVar15->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "pFVar15->fts_info = uVar8;" (assignment_expression "pFVar15->fts_info = uVar8" (field_expression "pFVar15->fts_info" identifier -> field_identifier) = identifier) ;) (if_statement "if ((uVar12 & 0xf000) != 0x4000) goto LAB_0001a7e4;" if (parenthesized_expression "((uVar12 & 0xf000) != 0x4000)" ( (binary_expression "(uVar12 & 0xf000) != 0x4000" (parenthesized_expression "(uVar12 & 0xf000)" ( (binary_expression "uVar12 & 0xf000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a7e4;" goto statement_identifier ;)) (if_statement "if (pFVar15->fts_level != 0) {\n      uVar12 = pFVar18->fts_n_dirs_remaining - 1;\n      if (uVar12 < 0xfffffffe) {\n        pFVar18->fts_n_dirs_remaining = uVar12;\n      }\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a800;\n    }" if (parenthesized_expression "(pFVar15->fts_level != 0)" ( (binary_expression "pFVar15->fts_level != 0" (field_expression "pFVar15->fts_level" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      uVar12 = pFVar18->fts_n_dirs_remaining - 1;\n      if (uVar12 < 0xfffffffe) {\n        pFVar18->fts_n_dirs_remaining = uVar12;\n      }\n      if (uVar10 != 1) {\n        return pFVar15;\n      }\n      goto LAB_0001a800;\n    }" { (expression_statement "uVar12 = pFVar18->fts_n_dirs_remaining - 1;" (assignment_expression "uVar12 = pFVar18->fts_n_dirs_remaining - 1" identifier = (binary_expression "pFVar18->fts_n_dirs_remaining - 1" (field_expression "pFVar18->fts_n_dirs_remaining" identifier -> field_identifier) - number_literal)) ;) (if_statement "if (uVar12 < 0xfffffffe) {\n        pFVar18->fts_n_dirs_remaining = uVar12;\n      }" if (parenthesized_expression "(uVar12 < 0xfffffffe)" ( (binary_expression "uVar12 < 0xfffffffe" identifier < number_literal) )) (compound_statement "{\n        pFVar18->fts_n_dirs_remaining = uVar12;\n      }" { (expression_statement "pFVar18->fts_n_dirs_remaining = uVar12;" (assignment_expression "pFVar18->fts_n_dirs_remaining = uVar12" (field_expression "pFVar18->fts_n_dirs_remaining" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (uVar10 != 1) {\n        return pFVar15;\n      }" if (parenthesized_expression "(uVar10 != 1)" ( (binary_expression "uVar10 != 1" identifier != number_literal) )) (compound_statement "{\n        return pFVar15;\n      }" { (return_statement "return pFVar15;" return identifier ;) })) (goto_statement "goto LAB_0001a800;" goto statement_identifier ;) })) (if_statement "if (uVar10 != 1) {\n      return pFVar15;\n    }" if (parenthesized_expression "(uVar10 != 1)" ( (binary_expression "uVar10 != 1" identifier != number_literal) )) (compound_statement "{\n      return pFVar15;\n    }" { (return_statement "return pFVar15;" return identifier ;) })) }))) (expression_statement "uVar3 = pFVar15->fts_statp[0].st_dev;" (assignment_expression "uVar3 = pFVar15->fts_statp[0].st_dev" identifier = (field_expression "pFVar15->fts_statp[0].st_dev" (subscript_expression "pFVar15->fts_statp[0]" (field_expression "pFVar15->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "*(undefined4 *)&sp->fts_dev = 0;" (assignment_expression "*(undefined4 *)&sp->fts_dev = 0" (pointer_expression "*(undefined4 *)&sp->fts_dev" * (cast_expression "(undefined4 *)&sp->fts_dev" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sp->fts_dev" & (field_expression "sp->fts_dev" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(ulong *)((int)&sp->fts_dev + 4) = uVar3;" (assignment_expression "*(ulong *)((int)&sp->fts_dev + 4) = uVar3" (pointer_expression "*(ulong *)((int)&sp->fts_dev + 4)" * (cast_expression "(ulong *)((int)&sp->fts_dev + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&sp->fts_dev + 4)" ( (binary_expression "(int)&sp->fts_dev + 4" (cast_expression "(int)&sp->fts_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&sp->fts_dev" & (field_expression "sp->fts_dev" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0001a800:\n  _Var9 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);" statement_identifier : (expression_statement "_Var9 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15);" (assignment_expression "_Var9 = enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15)" identifier = (call_expression "enter_dir((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15)" identifier (argument_list "((FTS *)sp->fts_options,(FTSENT *)&sp->fts_cycle,(FTS *)pFVar15)" ( (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 *)pFVar15" ( (type_descriptor "FTS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (CONCAT31(extraout_var_02,_Var9) == 0) {\n    pFVar15 = (FTSENT *)0x0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }" if (parenthesized_expression "(CONCAT31(extraout_var_02,_Var9) == 0)" ( (binary_expression "CONCAT31(extraout_var_02,_Var9) == 0" (call_expression "CONCAT31(extraout_var_02,_Var9)" identifier (argument_list "(extraout_var_02,_Var9)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n    pFVar15 = (FTSENT *)0x0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }" { (expression_statement "pFVar15 = (FTSENT *)0x0;" (assignment_expression "pFVar15 = (FTSENT *)0x0" identifier = (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar4 = 0xc;" (assignment_expression "*puVar4 = 0xc" (pointer_expression "*puVar4" * identifier) = number_literal) ;) })) (return_statement "return pFVar15;" return identifier ;) })))
(translation_unit "int fts_read(int *param_1)\n\n{\n  short sVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined2 uVar6;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  \n  iVar12 = *param_1;\n  if (iVar12 == 0) {\n    return 0;\n  }\n  uVar7 = param_1[0xc];\n  if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }\n  sVar1 = *(short *)(iVar12 + 0x40);\n  *(undefined2 *)(iVar12 + 0x40) = 3;\n  if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }\n  uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);\n  iVar5 = iVar12;\n  if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }\n  iVar5 = *(int *)(iVar12 + 0x48);\n  param_1[4] = 0;\n  param_1[5] = iVar5;\nLAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);\n  if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return iVar12;\n}\n\n" (function_definition "int fts_read(int *param_1)\n\n{\n  short sVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined2 uVar6;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  \n  iVar12 = *param_1;\n  if (iVar12 == 0) {\n    return 0;\n  }\n  uVar7 = param_1[0xc];\n  if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }\n  sVar1 = *(short *)(iVar12 + 0x40);\n  *(undefined2 *)(iVar12 + 0x40) = 3;\n  if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }\n  uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);\n  iVar5 = iVar12;\n  if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }\n  iVar5 = *(int *)(iVar12 + 0x48);\n  param_1[4] = 0;\n  param_1[5] = iVar5;\nLAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);\n  if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return iVar12;\n}" primitive_type (function_declarator "fts_read(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  short sVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined2 uVar6;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  \n  iVar12 = *param_1;\n  if (iVar12 == 0) {\n    return 0;\n  }\n  uVar7 = param_1[0xc];\n  if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }\n  sVar1 = *(short *)(iVar12 + 0x40);\n  *(undefined2 *)(iVar12 + 0x40) = 3;\n  if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }\n  uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);\n  iVar5 = iVar12;\n  if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }\n  iVar5 = *(int *)(iVar12 + 0x48);\n  param_1[4] = 0;\n  param_1[5] = iVar5;\nLAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);\n  if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return iVar12;\n}" { (declaration "short sVar1;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined2 uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (expression_statement "iVar12 = *param_1;" (assignment_expression "iVar12 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar12 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (if_statement "if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }" if (parenthesized_expression "((uVar7 & 0x4000) != 0)" ( (binary_expression "(uVar7 & 0x4000) != 0" (parenthesized_expression "(uVar7 & 0x4000)" ( (binary_expression "uVar7 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "sVar1 = *(short *)(iVar12 + 0x40);" (assignment_expression "sVar1 = *(short *)(iVar12 + 0x40)" identifier = (pointer_expression "*(short *)(iVar12 + 0x40)" * (cast_expression "(short *)(iVar12 + 0x40)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" * (cast_expression "(undefined2 *)(iVar12 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }" if (parenthesized_expression "(sVar1 == 1)" ( (binary_expression "sVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }" { (expression_statement "uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);" (assignment_expression "uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0)" identifier = (call_expression "FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0)" identifier (argument_list "(param_1[8],param_1 + 0xc,iVar12,0)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = uVar6;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = uVar6" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = identifier) ;) (return_statement "return iVar12;" return identifier ;) })) (expression_statement "uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar9 = (uint)*(ushort *)(iVar12 + 0x3c)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iVar12;" (assignment_expression "iVar5 = iVar12" identifier = identifier) ;) (if_statement "if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }" if (parenthesized_expression "(sVar1 == 2)" ( (binary_expression "sVar1 == 2" identifier == number_literal) )) (compound_statement "{\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }" { (if_statement "if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }" if (parenthesized_expression "(1 < uVar9 - 0xc)" ( (binary_expression "1 < uVar9 - 0xc" number_literal < (binary_expression "uVar9 - 0xc" identifier - number_literal)) )) (compound_statement "{\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }" { (if_statement "if (uVar9 == 1) goto LAB_0001a554;" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0001a554;" goto statement_identifier ;)) (goto_statement "goto LAB_0001a450;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);" (assignment_expression "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" identifier = (call_expression "FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" identifier (argument_list "(param_1[8],param_1 + 0xc,iVar12,1)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(short *)(iVar12 + 0x3c) = (short)iVar5;" (assignment_expression "*(short *)(iVar12 + 0x3c) = (short)iVar5" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = (cast_expression "(short)iVar5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }" if (parenthesized_expression "(iVar5 != 1)" ( (binary_expression "iVar5 != 1" identifier != number_literal) )) (compound_statement "{\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }" { (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (iVar5 != 0xb) {\n        return iVar12;\n      }" if (parenthesized_expression "(iVar5 != 0xb)" ( (binary_expression "iVar5 != 0xb" identifier != number_literal) )) (compound_statement "{\n        return iVar12;\n      }" { (return_statement "return iVar12;" return identifier ;) })) (goto_statement "goto LAB_0001a888;" goto statement_identifier ;) })) (if_statement "if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\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      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }" { (expression_statement "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);" (assignment_expression "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" identifier = (call_expression "FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" identifier (argument_list "(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (subscript_expression "param_1[0xc]" identifier [ number_literal ]) , (binary_expression "PTR_fdopendir_00033108 + 0x1d74" identifier + number_literal) )))) ;) (expression_statement "*(int *)(iVar12 + 0x24) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x24) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x24)" * (cast_expression "(int *)(iVar12 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar10 = *puVar4;" (assignment_expression "uVar10 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = uVar10;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = uVar10" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" * (cast_expression "(undefined4 *)(iVar12 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return iVar12;" return identifier ;) })) (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;" (assignment_expression "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_0001a7d8;" goto statement_identifier ;) })) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (labeled_statement "LAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;" statement_identifier : (if_statement "if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;" if (parenthesized_expression "(*(int *)(iVar12 + 0x30) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x30) != 0" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0001a800;" goto statement_identifier ;))) }) (else_clause "else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }" else (compound_statement "{\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }" { (if_statement "if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (compound_statement "{\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }" { (if_statement "if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" if (parenthesized_expression "(sVar1 == 4)" ( (binary_expression "sVar1 == 4" identifier == number_literal) )) (compound_statement "{\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" { (expression_statement "uVar2 = *(ushort *)(iVar12 + 0x3e);" (assignment_expression "uVar2 = *(ushort *)(iVar12 + 0x3e)" identifier = (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) ))))) ;) }) (else_clause "else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" else (compound_statement "{\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" { (labeled_statement "LAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }" statement_identifier : (if_statement "if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }" if (parenthesized_expression "(((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))" ( (binary_expression "((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48))))" (parenthesized_expression "((uVar7 & 0x40) == 0)" ( (binary_expression "(uVar7 & 0x40) == 0" (parenthesized_expression "(uVar7 & 0x40)" ( (binary_expression "uVar7 & 0x40" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48))))" ( (parenthesized_expression "(param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))" ( (binary_expression "param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48))" (binary_expression "param_1[4] == 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(param_1[5] == *(int *)(iVar12 + 0x48))" ( (binary_expression "param_1[5] == *(int *)(iVar12 + 0x48)" (subscript_expression "param_1[5]" identifier [ number_literal ]) == (pointer_expression "*(int *)(iVar12 + 0x48)" * (cast_expression "(int *)(iVar12 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x48)" ( (binary_expression "iVar12 + 0x48" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }" { (if_statement "if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }" if (parenthesized_expression "(param_1[1] == 0)" ( (binary_expression "param_1[1] == 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }" { (labeled_statement "LAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);" statement_identifier : (expression_statement "iVar5 = FUN_000190b8(param_1,3);" (assignment_expression "iVar5 = FUN_000190b8(param_1,3)" identifier = (call_expression "FUN_000190b8(param_1,3)" identifier (argument_list "(param_1,3)" ( identifier , number_literal )))) ;)) (expression_statement "param_1[1] = iVar5;" (assignment_expression "param_1[1] = iVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }" { (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (if_statement "if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }" if (parenthesized_expression "((uVar7 & 0x4000) != 0)" ( (binary_expression "(uVar7 & 0x4000) != 0" (parenthesized_expression "(uVar7 & 0x4000)" ( (binary_expression "uVar7 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }" if (parenthesized_expression "((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4))" ( (binary_expression "(*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)" (parenthesized_expression "(*(int *)(iVar12 + 0x20) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x20) != 0" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(short *)(iVar12 + 0x3c) != 4)" ( (binary_expression "*(short *)(iVar12 + 0x3c) != 4" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }" { (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_0001a5ac;" goto statement_identifier ;) })) }) (else_clause "else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }" else (compound_statement "{\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }" { (if_statement "if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }" if (parenthesized_expression "((uVar7 & 0x2000) != 0)" ( (binary_expression "(uVar7 & 0x2000) != 0" (parenthesized_expression "(uVar7 & 0x2000)" ( (binary_expression "uVar7 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }" { (expression_statement "param_1[0xc] = uVar7 & 0xffffdfff;" (assignment_expression "param_1[0xc] = uVar7 & 0xffffdfff" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar7 & 0xffffdfff" identifier & number_literal)) ;) (expression_statement "FUN_0001831c();" (call_expression "FUN_0001831c()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0001a8e4;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));" (assignment_expression "iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18))" identifier = (call_expression "FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18))" identifier (argument_list "(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18))" ( identifier , identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }" { (expression_statement "iVar12 = param_1[1];" (assignment_expression "iVar12 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0001a788;" goto statement_identifier ;) })) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar5 = param_1[1];" (assignment_expression "iVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = *puVar4;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = *puVar4" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" * (cast_expression "(undefined4 *)(iVar12 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;" (assignment_expression "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar12 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) | number_literal)) ;) (for_statement "for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }" for ( (assignment_expression "iVar12 = iVar5" identifier = identifier) ; (binary_expression "iVar12 != 0" identifier != number_literal) ; (assignment_expression "iVar12 = *(int *)(iVar12 + 8)" identifier = (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ) (compound_statement "{\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }" { (expression_statement "*(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);" (assignment_expression "*(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18)" (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(iVar12 + 4) + 0x18)" * (cast_expression "(undefined4 *)(*(int *)(iVar12 + 4) + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar12 + 4) + 0x18)" ( (binary_expression "*(int *)(iVar12 + 4) + 0x18" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) })) }))) (expression_statement "iVar12 = iVar5;" (assignment_expression "iVar12 = iVar5" identifier = identifier) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0001a788;" goto statement_identifier ;) }))) (expression_statement "uVar2 = *(ushort *)(iVar12 + 0x3e);" (assignment_expression "uVar2 = *(ushort *)(iVar12 + 0x3e)" identifier = (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) ))))) ;) }))) (if_statement "if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }" { (expression_statement "(*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));" (call_expression "(*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24))" (parenthesized_expression "(*(code *)PTR_close_000332c0)" ( (pointer_expression "*(code *)PTR_close_000332c0" * (cast_expression "(code *)PTR_close_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar12 + 0x24))" ( (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) )))) ))) ;) })) (if_statement "if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }" if (parenthesized_expression "(param_1[1] != 0)" ( (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_0001831c();\n        param_1[1] = 0;\n      }" { (expression_statement "FUN_0001831c();" (call_expression "FUN_0001831c()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 6;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 6" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);" statement_identifier : (expression_statement "FUN_00018f84(uVar7,param_1 + 0xe,iVar12);" (call_expression "FUN_00018f84(uVar7,param_1 + 0xe,iVar12)" identifier (argument_list "(uVar7,param_1 + 0xe,iVar12)" ( identifier , (binary_expression "param_1 + 0xe" identifier + number_literal) , identifier ))) ;)) (return_statement "return iVar12;" return identifier ;) })) (labeled_statement "LAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);" statement_identifier : (do_statement "do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);" do (compound_statement "{\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    }" { (expression_statement "puVar3 = PTR_free_000333cc;" (assignment_expression "puVar3 = PTR_free_000333cc" identifier = identifier) ;) (expression_statement "iVar12 = *(int *)(iVar5 + 8);" (assignment_expression "iVar12 = *(int *)(iVar5 + 8)" identifier = (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }" { (expression_statement "iVar12 = *(int *)(iVar5 + 4);" (assignment_expression "iVar12 = *(int *)(iVar5 + 4)" identifier = (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }" if (parenthesized_expression "(*(int *)(iVar12 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar12 + 0xc) != 0" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }" { (expression_statement "iVar8 = *(int *)(iVar12 + 0x28);" (assignment_expression "iVar8 = *(int *)(iVar12 + 0x28)" identifier = (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(undefined1 *)(param_1[6] + iVar8) = 0;" (assignment_expression "*(undefined1 *)(param_1[6] + iVar8) = 0" (pointer_expression "*(undefined1 *)(param_1[6] + iVar8)" * (cast_expression "(undefined1 *)(param_1[6] + iVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + iVar8)" ( (binary_expression "param_1[6] + iVar8" (subscript_expression "param_1[6]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (expression_statement "iVar12 = FUN_000190b8(param_1,3);" (assignment_expression "iVar12 = FUN_000190b8(param_1,3)" identifier = (call_expression "FUN_000190b8(param_1,3)" identifier (argument_list "(param_1,3)" ( identifier , number_literal )))) ;) (if_statement "if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }" { (expression_statement "(*(code *)PTR_free_000333cc)(iVar5);" (call_expression "(*(code *)PTR_free_000333cc)(iVar5)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (goto_statement "goto LAB_0001a788;" goto statement_identifier ;) })) (if_statement "if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }" if (parenthesized_expression "((param_1[0xc] & 0x4000U) != 0)" ( (binary_expression "(param_1[0xc] & 0x4000U) != 0" (parenthesized_expression "(param_1[0xc] & 0x4000U)" ( (binary_expression "param_1[0xc] & 0x4000U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = *(int *)(iVar5 + 4);" (assignment_expression "iVar12 = *(int *)(iVar5 + 4)" identifier = (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "puVar3 = PTR_free_000333cc;" (assignment_expression "puVar3 = PTR_free_000333cc" identifier = identifier) ;) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar3)(iVar5);" (call_expression "(*(code *)puVar3)(iVar5)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }" if (parenthesized_expression "(*(int *)(iVar12 + 0x30) == -1)" ( (binary_expression "*(int *)(iVar12 + 0x30) == -1" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }" { (expression_statement "(*(code *)PTR_free_000333cc)(iVar12);" (call_expression "(*(code *)PTR_free_000333cc)(iVar12)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier ))) ;) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }" if (parenthesized_expression "(*(short *)(iVar12 + 0x3c) != 0xb)" ( (binary_expression "*(short *)(iVar12 + 0x3c) != 0xb" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }" { (expression_statement "*(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;" (assignment_expression "*(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0" (pointer_expression "*(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28))" * (cast_expression "(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + *(int *)(iVar12 + 0x28))" ( (binary_expression "param_1[6] + *(int *)(iVar12 + 0x28)" (subscript_expression "param_1[6]" identifier [ number_literal ]) + (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) )))) = number_literal) ;) (if_statement "if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }" if (parenthesized_expression "(*(int *)(iVar12 + 0x30) == 0)" ( (binary_expression "*(int *)(iVar12 + 0x30) == 0" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }" { (expression_statement "iVar5 = FUN_00018728(param_1);" (assignment_expression "iVar5 = FUN_00018728(param_1)" identifier = (call_expression "FUN_00018728(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0001a4d0;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a4d0;" goto statement_identifier ;)) (labeled_statement "LAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" statement_identifier : (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = *puVar4;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = *puVar4" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" * (cast_expression "(undefined4 *)(iVar12 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "param_1[0xc] = uVar7 | 0x4000;" (assignment_expression "param_1[0xc] = uVar7 | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar7 | 0x4000" identifier | number_literal)) ;) (if_statement "if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }" if (parenthesized_expression "(*(short *)(iVar12 + 0x3c) == 2)" ( (binary_expression "*(short *)(iVar12 + 0x3c) == 2" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }" else (compound_statement "{\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }" { (if_statement "if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }" if (parenthesized_expression "((*(ushort *)(iVar12 + 0x3e) & 2) == 0)" ( (binary_expression "(*(ushort *)(iVar12 + 0x3e) & 2) == 0" (parenthesized_expression "(*(ushort *)(iVar12 + 0x3e) & 2)" ( (binary_expression "*(ushort *)(iVar12 + 0x3e) & 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }" { (if_statement "if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;" if (parenthesized_expression "(((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))" ( (binary_expression "((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0)" (parenthesized_expression "((*(ushort *)(iVar12 + 0x3e) & 1) == 0)" ( (binary_expression "(*(ushort *)(iVar12 + 0x3e) & 1) == 0" (parenthesized_expression "(*(ushort *)(iVar12 + 0x3e) & 1)" ( (binary_expression "*(ushort *)(iVar12 + 0x3e) & 1" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0)" ( (comma_expression "iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0" (assignment_expression "iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70)" identifier = (call_expression "FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70)" identifier (argument_list "(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70)" ( identifier , (pointer_expression "*(undefined4 *)(iVar12 + 4)" * (cast_expression "(undefined4 *)(iVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) , number_literal , (binary_expression "PTR_fdopendir_00033108 + 0x1d70" identifier + number_literal) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001a9fc;" goto statement_identifier ;)) }) (else_clause "else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }" else (compound_statement "{\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }" { (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\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[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }" { (if_statement "if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }" if (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) )) (compound_statement "{\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }" { (expression_statement "iVar5 = (*(code *)PTR_fchdir_000332f4)();" (assignment_expression "iVar5 = (*(code *)PTR_fchdir_000332f4)()" identifier = (call_expression "(*(code *)PTR_fchdir_000332f4)()" (parenthesized_expression "(*(code *)PTR_fchdir_000332f4)" ( (pointer_expression "*(code *)PTR_fchdir_000332f4" * (cast_expression "(code *)PTR_fchdir_000332f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }" { (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }" else (compound_statement "{\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = *puVar4;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = *puVar4" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" * (cast_expression "(undefined4 *)(iVar12 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "param_1[0xc] = uVar7 | 0x4000;" (assignment_expression "param_1[0xc] = uVar7 | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar7 | 0x4000" identifier | number_literal)) ;) }))) }) (else_clause "else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }" else (compound_statement "{\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }" { (expression_statement "FUN_00018658(param_1,uVar10,1);" (call_expression "FUN_00018658(param_1,uVar10,1)" identifier (argument_list "(param_1,uVar10,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) }))) })) (expression_statement "(*(code *)PTR_close_000332c0)(uVar10);" (call_expression "(*(code *)PTR_close_000332c0)(uVar10)" (parenthesized_expression "(*(code *)PTR_close_000332c0)" ( (pointer_expression "*(code *)PTR_close_000332c0" * (cast_expression "(code *)PTR_close_000332c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10)" ( identifier ))) ;) }))) (labeled_statement "LAB_0001a4d0:\n            uVar7 = param_1[0xc];" statement_identifier : (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;)) (if_statement "if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;" if (parenthesized_expression "(*(short *)(iVar12 + 0x3c) == 2)" ( (binary_expression "*(short *)(iVar12 + 0x3c) == 2" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001a50c;" goto statement_identifier ;)) }))) (if_statement "if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }" if (parenthesized_expression "(*(int *)(iVar12 + 0x20) == 0)" ( (binary_expression "*(int *)(iVar12 + 0x20) == 0" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }" { (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 6;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 6" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00018f84(uVar7,param_1 + 0xe,iVar12);" (call_expression "FUN_00018f84(uVar7,param_1 + 0xe,iVar12)" identifier (argument_list "(uVar7,param_1 + 0xe,iVar12)" ( identifier , (binary_expression "param_1 + 0xe" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }" else (compound_statement "{\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }" { (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }" statement_identifier : (if_statement "if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }" if (parenthesized_expression "((uVar7 & 0x4000) == 0)" ( (binary_expression "(uVar7 & 0x4000) == 0" (parenthesized_expression "(uVar7 & 0x4000)" ( (binary_expression "uVar7 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            return iVar12;\n          }" { (return_statement "return iVar12;" return identifier ;) }))) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_0001a898;" goto statement_identifier ;) })) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar3)(iVar5);" (call_expression "(*(code *)puVar3)(iVar5)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 0x30) == 0)" ( (binary_expression "*(int *)(iVar12 + 0x30) == 0" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }" { (expression_statement "iVar5 = FUN_00018728(param_1);" (assignment_expression "iVar5 = FUN_00018728(param_1)" identifier = (call_expression "FUN_00018728(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }" { (expression_statement "param_1[0xc] = param_1[0xc] | 0x4000;" (assignment_expression "param_1[0xc] = param_1[0xc] | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "param_1[0xc] | 0x4000" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) | number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }" if (parenthesized_expression "((param_1[0xc] & 0x102U) == 0)" ( (binary_expression "(param_1[0xc] & 0x102U) == 0" (parenthesized_expression "(param_1[0xc] & 0x102U)" ( (binary_expression "param_1[0xc] & 0x102U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_000333cc)();\n        }" { (expression_statement "(*(code *)PTR_free_000333cc)();" (call_expression "(*(code *)PTR_free_000333cc)()" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }) (else_clause "else if (param_1[0xe] != 0) {\n          hash_free();\n        }" else (if_statement "if (param_1[0xe] != 0) {\n          hash_free();\n        }" if (parenthesized_expression "(param_1[0xe] != 0)" ( (binary_expression "param_1[0xe] != 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          hash_free();\n        }" { (expression_statement "hash_free();" (call_expression "hash_free()" identifier (argument_list "()" ( ))) ;) })))) (expression_statement "puVar3 = PTR_memmove_000333d0;" (assignment_expression "puVar3 = PTR_memmove_000333d0" identifier = identifier) ;) (expression_statement "iVar8 = iVar12 + 0xe8;" (assignment_expression "iVar8 = iVar12 + 0xe8" identifier = (binary_expression "iVar12 + 0xe8" identifier + number_literal)) ;) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);" (assignment_expression "*(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34)" (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);" (call_expression "(*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1)" ( identifier , identifier , (binary_expression "*(int *)(iVar12 + 0x34) + 1" (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);" (assignment_expression "iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f)" identifier = (call_expression "(*(code *)PTR_strrchr_00033308)(iVar8,0x2f)" (parenthesized_expression "(*(code *)PTR_strrchr_00033308)" ( (pointer_expression "*(code *)PTR_strrchr_00033308" * (cast_expression "(code *)PTR_strrchr_00033308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }" if (parenthesized_expression "((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0'))))" ( (binary_expression "(iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))" ( (parenthesized_expression "(iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0'))" ( (binary_expression "iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')" (binary_expression "iVar8 != iVar5" identifier != identifier) || (parenthesized_expression "(*(char *)(iVar12 + 0xe9) != '\0')" ( (binary_expression "*(char *)(iVar12 + 0xe9) != '\0'" (pointer_expression "*(char *)(iVar12 + 0xe9)" * (cast_expression "(char *)(iVar12 + 0xe9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe9)" ( (binary_expression "iVar12 + 0xe9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }" { (expression_statement "iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);" (assignment_expression "iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1)" identifier = (call_expression "(*(code *)PTR_strlen_00033354)(iVar5 + 1)" (parenthesized_expression "(*(code *)PTR_strlen_00033354)" ( (pointer_expression "*(code *)PTR_strlen_00033354" * (cast_expression "(code *)PTR_strlen_00033354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);" (call_expression "(*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_000333d0)" ( (pointer_expression "*(code *)PTR_memmove_000333d0" * (cast_expression "(code *)PTR_memmove_000333d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8,iVar5 + 1,iVar11 + 1)" ( identifier , (binary_expression "iVar5 + 1" identifier + number_literal) , (binary_expression "iVar11 + 1" identifier + number_literal) ))) ;) (expression_statement "*(int *)(iVar12 + 0x34) = iVar11;" (assignment_expression "*(int *)(iVar12 + 0x34) = iVar11" (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = param_1[0xc];" (assignment_expression "iVar8 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar12 + 0x1c) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x1c) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x1c)" * (cast_expression "(int *)(iVar12 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar12 + 0x18) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x18) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x18)" * (cast_expression "(int *)(iVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00018abc(iVar8,param_1 + 0xe);" (call_expression "FUN_00018abc(iVar8,param_1 + 0xe)" identifier (argument_list "(iVar8,param_1 + 0xe)" ( identifier , (binary_expression "param_1 + 0xe" identifier + number_literal) ))) ;) (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001a7d8;" goto statement_identifier ;) })) (expression_statement "iVar5 = iVar12;" (assignment_expression "iVar5 = iVar12" identifier = identifier) ;) }) while (parenthesized_expression "(*(short *)(iVar12 + 0x40) == 4)" ( (binary_expression "*(short *)(iVar12 + 0x40) == 4" (pointer_expression "*(short *)(iVar12 + 0x40)" * (cast_expression "(short *)(iVar12 + 0x40)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) == number_literal) )) ;)) (if_statement "if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }" if (parenthesized_expression "(*(short *)(iVar12 + 0x40) == 2)" ( (binary_expression "*(short *)(iVar12 + 0x40) == 2" (pointer_expression "*(short *)(iVar12 + 0x40)" * (cast_expression "(short *)(iVar12 + 0x40)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }" { (expression_statement "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);" (assignment_expression "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" identifier = (call_expression "FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" identifier (argument_list "(param_1[8],param_1 + 0xc,iVar12,1)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(short *)(iVar12 + 0x3c) = (short)iVar5;" (assignment_expression "*(short *)(iVar12 + 0x3c) = (short)iVar5" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = (cast_expression "(short)iVar5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }" if (parenthesized_expression "((iVar5 == 1) && ((param_1[0xc] & 4U) == 0))" ( (binary_expression "(iVar5 == 1) && ((param_1[0xc] & 4U) == 0)" (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) && (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        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }" { (expression_statement "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);" (assignment_expression "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" identifier = (call_expression "FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" identifier (argument_list "(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" ( (subscript_expression "param_1[8]" identifier [ number_literal ]) , (subscript_expression "param_1[0xc]" identifier [ number_literal ]) , (binary_expression "PTR_fdopendir_00033108 + 0x1d74" identifier + number_literal) )))) ;) (expression_statement "*(int *)(iVar12 + 0x24) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x24) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x24)" * (cast_expression "(int *)(iVar12 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar10 = *puVar4;" (assignment_expression "uVar10 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" * (cast_expression "(undefined2 *)(iVar12 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = uVar10;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = uVar10" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" * (cast_expression "(undefined4 *)(iVar12 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" * (cast_expression "(undefined2 *)(iVar12 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" else (compound_statement "{\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" { (expression_statement "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;" (assignment_expression "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" * (cast_expression "(ushort *)(iVar12 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3e)" ( (binary_expression "iVar12 + 0x3e" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" * (cast_expression "(undefined2 *)(iVar12 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }" else (compound_statement "{\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }" { (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" * (cast_expression "(undefined2 *)(iVar12 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) = number_literal) ;) }))) })) (labeled_statement "LAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;" statement_identifier : (expression_statement "puVar3 = PTR_memmove_000333d0;" (assignment_expression "puVar3 = PTR_memmove_000333d0" identifier = identifier) ;)) (expression_statement "iVar8 = param_1[6];" (assignment_expression "iVar8 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);" (assignment_expression "iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28)" identifier = (pointer_expression "*(int *)(*(int *)(iVar12 + 4) + 0x28)" * (cast_expression "(int *)(*(int *)(iVar12 + 4) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar12 + 4) + 0x28)" ( (binary_expression "*(int *)(iVar12 + 4) + 0x28" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = iVar11 + -1;" (assignment_expression "iVar5 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (if_statement "if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/')" ( (binary_expression "*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/'" (pointer_expression "*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5)" * (cast_expression "(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5)" ( (binary_expression "*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5" (pointer_expression "*(int *)(*(int *)(iVar12 + 4) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar12 + 4) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar12 + 4) + 0x1c)" ( (binary_expression "*(int *)(iVar12 + 4) + 0x1c" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) + number_literal) )))) + identifier) )))) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n      iVar5 = iVar11;\n    }" { (expression_statement "iVar5 = iVar11;" (assignment_expression "iVar5 = iVar11" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)(iVar8 + iVar5) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar8 + iVar5) = 0x2f" (pointer_expression "*(undefined1 *)(iVar8 + iVar5)" * (cast_expression "(undefined1 *)(iVar8 + iVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar5)" ( (binary_expression "iVar8 + iVar5" identifier + identifier) )))) = number_literal) ;) (expression_statement "(*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);" (call_expression "(*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1)" ( (binary_expression "(undefined1 *)(iVar8 + iVar5) + 1" (cast_expression "(undefined1 *)(iVar8 + iVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar5)" ( (binary_expression "iVar8 + iVar5" identifier + identifier) ))) + number_literal) , (binary_expression "iVar12 + 0xe8" identifier + number_literal) , (binary_expression "*(int *)(iVar12 + 0x34) + 1" (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0001a7d8:\n    *param_1 = iVar12;" statement_identifier : (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" * identifier) = identifier) ;)) (if_statement "if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }" if (parenthesized_expression "(uVar7 != 0xb)" ( (binary_expression "uVar7 != 0xb" identifier != number_literal) )) (compound_statement "{\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }" { (labeled_statement "LAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }" statement_identifier : (if_statement "if (uVar7 != 1) {\n        return iVar12;\n      }" if (parenthesized_expression "(uVar7 != 1)" ( (binary_expression "uVar7 != 1" identifier != number_literal) )) (compound_statement "{\n        return iVar12;\n      }" { (return_statement "return iVar12;" return identifier ;) }))) (goto_statement "goto LAB_0001a7f0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }" statement_identifier : (if_statement "if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }" if (parenthesized_expression "(*(int *)(iVar12 + 0x80) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x80) != 0" (pointer_expression "*(int *)(iVar12 + 0x80)" * (cast_expression "(int *)(iVar12 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x80)" ( (binary_expression "iVar12 + 0x80" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }" { (labeled_statement "LAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();" statement_identifier : (expression_statement "iVar12 = (*(code *)PTR_abort_000332d0)();" (assignment_expression "iVar12 = (*(code *)PTR_abort_000332d0)()" identifier = (call_expression "(*(code *)PTR_abort_000332d0)()" (parenthesized_expression "(*(code *)PTR_abort_000332d0)" ( (pointer_expression "*(code *)PTR_abort_000332d0" * (cast_expression "(code *)PTR_abort_000332d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return iVar12;" return identifier ;) }))) (if_statement "if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }" if (parenthesized_expression "(*(int *)(iVar12 + 0x84) != 2)" ( (binary_expression "*(int *)(iVar12 + 0x84) != 2" (pointer_expression "*(int *)(iVar12 + 0x84)" * (cast_expression "(int *)(iVar12 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x84)" ( (binary_expression "iVar12 + 0x84" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }" { (if_statement "if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 0x84) == 1)" ( (binary_expression "*(int *)(iVar12 + 0x84) == 1" (pointer_expression "*(int *)(iVar12 + 0x84)" * (cast_expression "(int *)(iVar12 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x84)" ( (binary_expression "iVar12 + 0x84" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        return iVar12;\n      }" { (return_statement "return iVar12;" return identifier ;) })) (goto_statement "goto LAB_0001a898;" goto statement_identifier ;) })) (expression_statement "iVar8 = *(int *)(iVar12 + 4);" (assignment_expression "iVar8 = *(int *)(iVar12 + 4)" identifier = (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = param_1[8];" (assignment_expression "iVar5 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (if_statement "if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }" if (parenthesized_expression "((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18))" ( (binary_expression "(*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)" (parenthesized_expression "(*(int *)(iVar8 + 0x38) == 0)" ( (binary_expression "*(int *)(iVar8 + 0x38) == 0" (pointer_expression "*(int *)(iVar8 + 0x38)" * (cast_expression "(int *)(iVar8 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x38)" ( (binary_expression "iVar8 + 0x38" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((param_1[0xc] & 0x18U) == 0x18)" ( (binary_expression "(param_1[0xc] & 0x18U) == 0x18" (parenthesized_expression "(param_1[0xc] & 0x18U)" ( (binary_expression "param_1[0xc] & 0x18U" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }" { (expression_statement "iVar5 = FUN_000185a4(iVar8,iVar5);" (assignment_expression "iVar5 = FUN_000185a4(iVar8,iVar5)" identifier = (call_expression "FUN_000185a4(iVar8,iVar5)" identifier (argument_list "(iVar8,iVar5)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }" if (parenthesized_expression "(iVar5 == 2)" ( (binary_expression "iVar5 == 2" identifier == number_literal) )) (compound_statement "{\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }" { (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001a7e4;" goto statement_identifier ;) })) (expression_statement "iVar5 = param_1[8];" (assignment_expression "iVar5 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) })) (expression_statement "uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);" (assignment_expression "uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0)" identifier = (call_expression "FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0)" identifier (argument_list "(iVar5,param_1 + 0xc,iVar12,0)" ( identifier , (binary_expression "param_1 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(short *)(iVar12 + 0x3c) = (short)uVar7;" (assignment_expression "*(short *)(iVar12 + 0x3c) = (short)uVar7" (pointer_expression "*(short *)(iVar12 + 0x3c)" * (cast_expression "(short *)(iVar12 + 0x3c)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = (cast_expression "(short)uVar7" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;" if (parenthesized_expression "((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(iVar12 + 0x60) & 0xf000)" ( (binary_expression "*(uint *)(iVar12 + 0x60) & 0xf000" (pointer_expression "*(uint *)(iVar12 + 0x60)" * (cast_expression "(uint *)(iVar12 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x60)" ( (binary_expression "iVar12 + 0x60" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a7e4;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }" if (parenthesized_expression "(*(int *)(iVar12 + 0x30) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x30) != 0" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }" { (expression_statement "uVar9 = *(int *)(iVar8 + 0x38) - 1;" (assignment_expression "uVar9 = *(int *)(iVar8 + 0x38) - 1" identifier = (binary_expression "*(int *)(iVar8 + 0x38) - 1" (pointer_expression "*(int *)(iVar8 + 0x38)" * (cast_expression "(int *)(iVar8 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x38)" ( (binary_expression "iVar8 + 0x38" identifier + number_literal) )))) - number_literal)) ;) (if_statement "if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }" if (parenthesized_expression "(uVar9 < 0xfffffffe)" ( (binary_expression "uVar9 < 0xfffffffe" identifier < number_literal) )) (compound_statement "{\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }" { (expression_statement "*(uint *)(iVar8 + 0x38) = uVar9;" (assignment_expression "*(uint *)(iVar8 + 0x38) = uVar9" (pointer_expression "*(uint *)(iVar8 + 0x38)" * (cast_expression "(uint *)(iVar8 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x38)" ( (binary_expression "iVar8 + 0x38" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar7 != 1) {\n        return iVar12;\n      }" if (parenthesized_expression "(uVar7 != 1)" ( (binary_expression "uVar7 != 1" identifier != number_literal) )) (compound_statement "{\n        return iVar12;\n      }" { (return_statement "return iVar12;" return identifier ;) })) (goto_statement "goto LAB_0001a800;" goto statement_identifier ;) })) (if_statement "if (uVar7 != 1) {\n      return iVar12;\n    }" if (parenthesized_expression "(uVar7 != 1)" ( (binary_expression "uVar7 != 1" identifier != number_literal) )) (compound_statement "{\n      return iVar12;\n    }" { (return_statement "return iVar12;" return identifier ;) })) }))) (expression_statement "iVar5 = *(int *)(iVar12 + 0x48);" (assignment_expression "iVar5 = *(int *)(iVar12 + 0x48)" identifier = (pointer_expression "*(int *)(iVar12 + 0x48)" * (cast_expression "(int *)(iVar12 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x48)" ( (binary_expression "iVar12 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = iVar5;" (assignment_expression "param_1[5] = iVar5" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);" statement_identifier : (expression_statement "iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);" (assignment_expression "iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12)" identifier = (call_expression "FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12)" identifier (argument_list "(param_1[0xc],param_1 + 0xe,iVar12)" ( (subscript_expression "param_1[0xc]" identifier [ number_literal ]) , (binary_expression "param_1 + 0xe" identifier + number_literal) , identifier )))) ;)) (if_statement "if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" ( (pointer_expression "*(code *)PTR___errno_location_00033330" * (cast_expression "(code *)PTR___errno_location_00033330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar4 = 0xc;" (assignment_expression "*puVar4 = 0xc" (pointer_expression "*puVar4" * identifier) = number_literal) ;) })) (return_statement "return iVar12;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (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 { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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 (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (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 = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_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) ;) (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 IDENT = (pointer_expression * 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (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) )))) = (binary_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 * IDENT) = IDENT) ;) (labeled_statement 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) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT & LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , (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 ])) ;) (expression_statement (assignment_expression (subscript_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 = (subscript_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 * 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)) ;) (for_statement for ( (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 { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (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 IDENT & LIT) )) != 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) )))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;)) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (do_statement do (compound_statement { (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 (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) ))))) ;) (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 (subscript_expression IDENT [ LIT ]) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (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 ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (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 (pointer_expression * IDENT) = IDENT) ;) (expression_statement (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 (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 ( IDENT ))) ;) (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) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = 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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement 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 = (subscript_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 * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | LIT)) ;) (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 { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (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) )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (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 ]) & 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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (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 = (subscript_expression IDENT [ LIT ])) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (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 ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (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) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_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) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (return_statement return IDENT ;) }))) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (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 (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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) )))) = (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 , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) ))) )) (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 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 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 = (subscript_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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) ;)) (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 (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_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) ;) (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 IDENT = (pointer_expression * 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 (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 (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 (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 (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) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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) )))) + LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + IDENT) )))) != (char_literal ' character ')) )) (compound_statement { (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 + IDENT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) + LIT) , (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 = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement 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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;)) (return_statement return 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 { (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 { (return_statement return IDENT ;) })) (goto_statement goto 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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != 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 = (binary_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 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 IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (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 = 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 * IDENT) = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "int fts_read(int *param_1)\n\n{\n  short sVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined2 uVar6;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  \n  iVar12 = *param_1;\n  if (iVar12 == 0) {\n    return 0;\n  }\n  uVar7 = param_1[0xc];\n  if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }\n  sVar1 = *(short *)(iVar12 + 0x40);\n  *(undefined2 *)(iVar12 + 0x40) = 3;\n  if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }\n  uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);\n  iVar5 = iVar12;\n  if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }\n  iVar5 = *(int *)(iVar12 + 0x48);\n  param_1[4] = 0;\n  param_1[5] = iVar5;\nLAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);\n  if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return iVar12;\n}" (primitive_type "int") (function_declarator "fts_read(int *param_1)" (identifier "fts_read") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  short sVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined2 uVar6;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  \n  iVar12 = *param_1;\n  if (iVar12 == 0) {\n    return 0;\n  }\n  uVar7 = param_1[0xc];\n  if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }\n  sVar1 = *(short *)(iVar12 + 0x40);\n  *(undefined2 *)(iVar12 + 0x40) = 3;\n  if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }\n  uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);\n  iVar5 = iVar12;\n  if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }\n  iVar5 = *(int *)(iVar12 + 0x48);\n  param_1[4] = 0;\n  param_1[5] = iVar5;\nLAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);\n  if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }\n  return iVar12;\n}" ({ "{") (declaration "short sVar1;" (sized_type_specifier "short" (short "short")) (identifier "sVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined2 uVar6;" (type_identifier "undefined2") (identifier "uVar6") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (expression_statement "iVar12 = *param_1;" (assignment_expression "iVar12 = *param_1" (identifier "iVar12") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (iVar12 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" (identifier "uVar7") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if ((uVar7 & 0x4000) != 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "((uVar7 & 0x4000) != 0)" (( "(") (binary_expression "(uVar7 & 0x4000) != 0" (parenthesized_expression "(uVar7 & 0x4000)" (( "(") (binary_expression "uVar7 & 0x4000" (identifier "uVar7") (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "sVar1 = *(short *)(iVar12 + 0x40);" (assignment_expression "sVar1 = *(short *)(iVar12 + 0x40)" (identifier "sVar1") (= "=") (pointer_expression "*(short *)(iVar12 + 0x40)" (* "*") (cast_expression "(short *)(iVar12 + 0x40)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x40)" (( "(") (binary_expression "iVar12 + 0x40" (identifier "iVar12") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x40)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x40)" (( "(") (binary_expression "iVar12 + 0x40" (identifier "iVar12") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "3")) (; ";")) (if_statement "if (sVar1 == 1) {\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }" (if "if") (parenthesized_expression "(sVar1 == 1)" (( "(") (binary_expression "sVar1 == 1" (identifier "sVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);\n    *(undefined2 *)(iVar12 + 0x3c) = uVar6;\n    return iVar12;\n  }" ({ "{") (expression_statement "uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);" (assignment_expression "uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0)" (identifier "uVar6") (= "=") (call_expression "FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0)" (identifier "FUN_000187c0") (argument_list "(param_1[8],param_1 + 0xc,iVar12,0)" (( "(") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (, ",") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar12") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = uVar6;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = uVar6" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (expression_statement "uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar9 = (uint)*(ushort *)(iVar12 + 0x3c)" (identifier "uVar9") (= "=") (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar12 + 0x3c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "iVar5 = iVar12;" (assignment_expression "iVar5 = iVar12" (identifier "iVar5") (= "=") (identifier "iVar12")) (; ";")) (if_statement "if (sVar1 == 2) {\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }\n  else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }" (if "if") (parenthesized_expression "(sVar1 == 2)" (( "(") (binary_expression "sVar1 == 2" (identifier "sVar1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }\n    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n    *(short *)(iVar12 + 0x3c) = (short)iVar5;\n    if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }\n    if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }\n    *param_1 = iVar12;\nLAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;\n  }" ({ "{") (if_statement "if (1 < uVar9 - 0xc) {\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }" (if "if") (parenthesized_expression "(1 < uVar9 - 0xc)" (( "(") (binary_expression "1 < uVar9 - 0xc" (number_literal "1") (< "<") (binary_expression "uVar9 - 0xc" (identifier "uVar9") (- "-") (number_literal "0xc"))) () ")")) (compound_statement "{\n      if (uVar9 == 1) goto LAB_0001a554;\n      goto LAB_0001a450;\n    }" ({ "{") (if_statement "if (uVar9 == 1) goto LAB_0001a554;" (if "if") (parenthesized_expression "(uVar9 == 1)" (( "(") (binary_expression "uVar9 == 1" (identifier "uVar9") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0001a554;" (goto "goto") (statement_identifier "LAB_0001a554") (; ";"))) (goto_statement "goto LAB_0001a450;" (goto "goto") (statement_identifier "LAB_0001a450") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);" (assignment_expression "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" (identifier "iVar5") (= "=") (call_expression "FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" (identifier "FUN_000187c0") (argument_list "(param_1[8],param_1 + 0xc,iVar12,1)" (( "(") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (, ",") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar12") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "*(short *)(iVar12 + 0x3c) = (short)iVar5;" (assignment_expression "*(short *)(iVar12 + 0x3c) = (short)iVar5" (pointer_expression "*(short *)(iVar12 + 0x3c)" (* "*") (cast_expression "(short *)(iVar12 + 0x3c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (cast_expression "(short)iVar5" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar5 != 1) {\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }" (if "if") (parenthesized_expression "(iVar5 != 1)" (( "(") (binary_expression "iVar5 != 1" (identifier "iVar5") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      *param_1 = iVar12;\n      if (iVar5 != 0xb) {\n        return iVar12;\n      }\n      goto LAB_0001a888;\n    }" ({ "{") (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar12")) (; ";")) (if_statement "if (iVar5 != 0xb) {\n        return iVar12;\n      }" (if "if") (parenthesized_expression "(iVar5 != 0xb)" (( "(") (binary_expression "iVar5 != 0xb" (identifier "iVar5") (!= "!=") (number_literal "0xb")) () ")")) (compound_statement "{\n        return iVar12;\n      }" ({ "{") (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (goto_statement "goto LAB_0001a888;" (goto "goto") (statement_identifier "LAB_0001a888") (; ";")) (} "}"))) (if_statement "if ((param_1[0xc] & 4U) == 0) {\n      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\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      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n      *(int *)(iVar12 + 0x24) = iVar5;\n      if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }\n      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n      goto LAB_0001a7d8;\n    }" ({ "{") (expression_statement "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);" (assignment_expression "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" (identifier "iVar5") (= "=") (call_expression "FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" (identifier "FUN_00018b70") (argument_list "(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" (( "(") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (, ",") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (, ",") (binary_expression "PTR_fdopendir_00033108 + 0x1d74" (identifier "PTR_fdopendir_00033108") (+ "+") (number_literal "0x1d74")) () ")")))) (; ";")) (expression_statement "*(int *)(iVar12 + 0x24) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x24) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x24)" (* "*") (cast_expression "(int *)(iVar12 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 < 0) {\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n        uVar10 = *puVar4;\n        *(undefined2 *)(iVar12 + 0x3c) = 7;\n        *(undefined4 *)(iVar12 + 0x20) = uVar10;\n        *param_1 = iVar12;\n        return iVar12;\n      }" ({ "{") (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033330" (* "*") (cast_expression "(code *)PTR___errno_location_00033330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033330"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar10 = *puVar4;" (assignment_expression "uVar10 = *puVar4" (identifier "uVar10") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "7")) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = uVar10;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = uVar10" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar12")) (; ";")) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" (identifier "uVar7") (= "=") (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar12 + 0x3c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;" (assignment_expression "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar12 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3e)" (( "(") (binary_expression "iVar12 + 0x3e" (identifier "iVar12") (+ "+") (number_literal "0x3e")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar12 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3e)" (( "(") (binary_expression "iVar12 + 0x3e" (identifier "iVar12") (+ "+") (number_literal "0x3e")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_0001a7d8;" (goto "goto") (statement_identifier "LAB_0001a7d8") (; ";")) (} "}"))) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar12")) (; ";")) (labeled_statement "LAB_0001a7f0:\n    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;" (statement_identifier "LAB_0001a7f0") (: ":") (if_statement "if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x30) != 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0x30) != 0" (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a800;" (goto "goto") (statement_identifier "LAB_0001a800") (; ";")))) (} "}")) (else_clause "else {\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }" (else "else") (compound_statement "{\n    if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }\nLAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);\n    if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }\nLAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;\n    iVar8 = param_1[6];\n    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);\n    iVar5 = iVar11 + -1;\n    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }\n    *(undefined1 *)(iVar8 + iVar5) = 0x2f;\n    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);\n    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\nLAB_0001a7d8:\n    *param_1 = iVar12;\n    if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }\nLAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }\n    if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }\n    iVar8 = *(int *)(iVar12 + 4);\n    iVar5 = param_1[8];\n    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }\n    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);\n    *(short *)(iVar12 + 0x3c) = (short)uVar7;\n    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;\n    if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }\n    if (uVar7 != 1) {\n      return iVar12;\n    }\n  }" ({ "{") (if_statement "if (uVar9 == 1) {\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }" (if "if") (parenthesized_expression "(uVar9 == 1)" (( "(") (binary_expression "uVar9 == 1" (identifier "uVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }\n      if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }\n      uVar7 = param_1[0xc];\n      *(undefined2 *)(iVar12 + 0x3c) = 6;\nLAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n      return iVar12;\n    }" ({ "{") (if_statement "if (sVar1 == 4) {\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }\n      else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" (if "if") (parenthesized_expression "(sVar1 == 4)" (( "(") (binary_expression "sVar1 == 4" (identifier "sVar1") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" ({ "{") (expression_statement "uVar2 = *(ushort *)(iVar12 + 0x3e);" (assignment_expression "uVar2 = *(ushort *)(iVar12 + 0x3e)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(iVar12 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar12 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3e)" (( "(") (binary_expression "iVar12 + 0x3e" (identifier "iVar12") (+ "+") (number_literal "0x3e")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" (else "else") (compound_statement "{\nLAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }\n        uVar2 = *(ushort *)(iVar12 + 0x3e);\n      }" ({ "{") (labeled_statement "LAB_0001a554:\n        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }" (statement_identifier "LAB_0001a554") (: ":") (if_statement "if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))\n        {\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }" (if "if") (parenthesized_expression "(((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))" (( "(") (binary_expression "((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48))))" (parenthesized_expression "((uVar7 & 0x40) == 0)" (( "(") (binary_expression "(uVar7 & 0x40) == 0" (parenthesized_expression "(uVar7 & 0x40)" (( "(") (binary_expression "uVar7 & 0x40" (identifier "uVar7") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48))))" (( "(") (parenthesized_expression "(param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))" (( "(") (binary_expression "param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48))" (binary_expression "param_1[4] == 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(param_1[5] == *(int *)(iVar12 + 0x48))" (( "(") (binary_expression "param_1[5] == *(int *)(iVar12 + 0x48)" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (== "==") (pointer_expression "*(int *)(iVar12 + 0x48)" (* "*") (cast_expression "(int *)(iVar12 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x48)" (( "(") (binary_expression "iVar12 + 0x48" (identifier "iVar12") (+ "+") (number_literal "0x48")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }\n          iVar12 = iVar5;\n          param_1[1] = 0;\n          goto LAB_0001a788;\n        }" ({ "{") (if_statement "if (param_1[1] == 0) {\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }\n          else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }" (if "if") (parenthesized_expression "(param_1[1] == 0)" (( "(") (binary_expression "param_1[1] == 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);\n            param_1[1] = iVar5;\n            if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }\n          }" ({ "{") (labeled_statement "LAB_0001a8e4:\n            iVar5 = FUN_000190b8(param_1,3);" (statement_identifier "LAB_0001a8e4") (: ":") (expression_statement "iVar5 = FUN_000190b8(param_1,3);" (assignment_expression "iVar5 = FUN_000190b8(param_1,3)" (identifier "iVar5") (= "=") (call_expression "FUN_000190b8(param_1,3)" (identifier "FUN_000190b8") (argument_list "(param_1,3)" (( "(") (identifier "param_1") (, ",") (number_literal "3") () ")")))) (; ";"))) (expression_statement "param_1[1] = iVar5;" (assignment_expression "param_1[1] = iVar5" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 == 0) {\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar7 = param_1[0xc];\n              if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }\n              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }\n              goto LAB_0001a5ac;\n            }" ({ "{") (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" (identifier "uVar7") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if ((uVar7 & 0x4000) != 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "((uVar7 & 0x4000) != 0)" (( "(") (binary_expression "(uVar7 & 0x4000) != 0" (parenthesized_expression "(uVar7 & 0x4000)" (( "(") (binary_expression "uVar7 & 0x4000" (identifier "uVar7") (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }" (if "if") (parenthesized_expression "((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4))" (( "(") (binary_expression "(*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)" (parenthesized_expression "(*(int *)(iVar12 + 0x20) != 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0x20) != 0" (pointer_expression "*(int *)(iVar12 + 0x20)" (* "*") (cast_expression "(int *)(iVar12 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(short *)(iVar12 + 0x3c) != 4)" (( "(") (binary_expression "*(short *)(iVar12 + 0x3c) != 4" (pointer_expression "*(short *)(iVar12 + 0x3c)" (* "*") (cast_expression "(short *)(iVar12 + 0x3c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (!= "!=") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n                *(undefined2 *)(iVar12 + 0x3c) = 7;\n              }" ({ "{") (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "7")) (; ";")) (} "}"))) (goto_statement "goto LAB_0001a5ac;" (goto "goto") (statement_identifier "LAB_0001a5ac") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }" (else "else") (compound_statement "{\n            if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }\n            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));\n            if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            iVar5 = param_1[1];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;\n            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }\n          }" ({ "{") (if_statement "if ((uVar7 & 0x2000) != 0) {\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }" (if "if") (parenthesized_expression "((uVar7 & 0x2000) != 0)" (( "(") (binary_expression "(uVar7 & 0x2000) != 0" (parenthesized_expression "(uVar7 & 0x2000)" (( "(") (binary_expression "uVar7 & 0x2000" (identifier "uVar7") (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              param_1[0xc] = uVar7 & 0xffffdfff;\n              FUN_0001831c();\n              param_1[1] = 0;\n              goto LAB_0001a8e4;\n            }" ({ "{") (expression_statement "param_1[0xc] = uVar7 & 0xffffdfff;" (assignment_expression "param_1[0xc] = uVar7 & 0xffffdfff" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "uVar7 & 0xffffdfff" (identifier "uVar7") (& "&") (number_literal "0xffffdfff"))) (; ";")) (expression_statement "FUN_0001831c();" (call_expression "FUN_0001831c()" (identifier "FUN_0001831c") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001a8e4;" (goto "goto") (statement_identifier "LAB_0001a8e4") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));" (assignment_expression "iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18))" (identifier "iVar5") (= "=") (call_expression "FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18))" (identifier "FUN_00018bcc") (argument_list "(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18))" (( "(") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (number_literal "0xffffffff") (, ",") (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar12 = param_1[1];\n              param_1[1] = 0;\n              goto LAB_0001a788;\n            }" ({ "{") (expression_statement "iVar12 = param_1[1];" (assignment_expression "iVar12 = param_1[1]" (identifier "iVar12") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001a788;" (goto "goto") (statement_identifier "LAB_0001a788") (; ";")) (} "}"))) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033330" (* "*") (cast_expression "(code *)PTR___errno_location_00033330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033330"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar5 = param_1[1];" (assignment_expression "iVar5 = param_1[1]" (identifier "iVar5") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = *puVar4;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = *puVar4" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;" (assignment_expression "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar12 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3e)" (( "(") (binary_expression "iVar12 + 0x3e" (identifier "iVar12") (+ "+") (number_literal "0x3e")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar12 + 0x3e) | 1" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar12 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3e)" (( "(") (binary_expression "iVar12 + 0x3e" (identifier "iVar12") (+ "+") (number_literal "0x3e")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (for_statement "for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }" (for "for") (( "(") (assignment_expression "iVar12 = iVar5" (identifier "iVar12") (= "=") (identifier "iVar5")) (; ";") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar12 = *(int *)(iVar12 + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar12 + 8)" (* "*") (cast_expression "(int *)(iVar12 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")"))))) () ")") (compound_statement "{\n              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);\n            }" ({ "{") (expression_statement "*(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);" (assignment_expression "*(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18)" (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(*(int *)(iVar12 + 4) + 0x18)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar12 + 4) + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar12 + 4) + 0x18)" (( "(") (binary_expression "*(int *)(iVar12 + 4) + 0x18" (pointer_expression "*(int *)(iVar12 + 4)" (* "*") (cast_expression "(int *)(iVar12 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar12 = iVar5;" (assignment_expression "iVar12 = iVar5" (identifier "iVar12") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001a788;" (goto "goto") (statement_identifier "LAB_0001a788") (; ";")) (} "}")))) (expression_statement "uVar2 = *(ushort *)(iVar12 + 0x3e);" (assignment_expression "uVar2 = *(ushort *)(iVar12 + 0x3e)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(iVar12 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar12 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3e)" (( "(") (binary_expression "iVar12 + 0x3e" (identifier "iVar12") (+ "+") (number_literal "0x3e")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((uVar2 & 2) != 0) {\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }" (if "if") (parenthesized_expression "((uVar2 & 2) != 0)" (( "(") (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" (( "(") (binary_expression "uVar2 & 2" (identifier "uVar2") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));\n      }" ({ "{") (expression_statement "(*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));" (call_expression "(*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24))" (parenthesized_expression "(*(code *)PTR_close_000332c0)" (( "(") (pointer_expression "*(code *)PTR_close_000332c0" (* "*") (cast_expression "(code *)PTR_close_000332c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_000332c0"))) () ")")) (argument_list "(*(undefined4 *)(iVar12 + 0x24))" (( "(") (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")")))) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[1] != 0) {\n        FUN_0001831c();\n        param_1[1] = 0;\n      }" (if "if") (parenthesized_expression "(param_1[1] != 0)" (( "(") (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0001831c();\n        param_1[1] = 0;\n      }" ({ "{") (expression_statement "FUN_0001831c();" (call_expression "FUN_0001831c()" (identifier "FUN_0001831c") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" (identifier "uVar7") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 6;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 6" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "6")) (; ";")) (labeled_statement "LAB_0001a5ac:\n      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);" (statement_identifier "LAB_0001a5ac") (: ":") (expression_statement "FUN_00018f84(uVar7,param_1 + 0xe,iVar12);" (call_expression "FUN_00018f84(uVar7,param_1 + 0xe,iVar12)" (identifier "FUN_00018f84") (argument_list "(uVar7,param_1 + 0xe,iVar12)" (( "(") (identifier "uVar7") (, ",") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) (, ",") (identifier "iVar12") () ")"))) (; ";"))) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (labeled_statement "LAB_0001a450:\n    do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);" (statement_identifier "LAB_0001a450") (: ":") (do_statement "do {\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    } while (*(short *)(iVar12 + 0x40) == 4);" (do "do") (compound_statement "{\n      puVar3 = PTR_free_000333cc;\n      iVar12 = *(int *)(iVar5 + 8);\n      if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }\n      *param_1 = iVar12;\n      (*(code *)puVar3)(iVar5);\n      if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }\n      iVar5 = iVar12;\n    }" ({ "{") (expression_statement "puVar3 = PTR_free_000333cc;" (assignment_expression "puVar3 = PTR_free_000333cc" (identifier "puVar3") (= "=") (identifier "PTR_free_000333cc")) (; ";")) (expression_statement "iVar12 = *(int *)(iVar5 + 8);" (assignment_expression "iVar12 = *(int *)(iVar5 + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar12 == 0) {\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar12 = *(int *)(iVar5 + 4);\n        if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }\n        puVar3 = PTR_free_000333cc;\n        *param_1 = iVar12;\n        (*(code *)puVar3)(iVar5);\n        if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }\n        if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }\n        goto LAB_0001a898;\n      }" ({ "{") (expression_statement "iVar12 = *(int *)(iVar5 + 4);" (assignment_expression "iVar12 = *(int *)(iVar5 + 4)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar12 + 0xc) != 0) {\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0xc) != 0" (pointer_expression "*(int *)(iVar12 + 0xc)" (* "*") (cast_expression "(int *)(iVar12 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = *(int *)(iVar12 + 0x28);\n          *param_1 = iVar12;\n          *(undefined1 *)(param_1[6] + iVar8) = 0;\n          iVar12 = FUN_000190b8(param_1,3);\n          if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }\n          if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }\n          iVar12 = *(int *)(iVar5 + 4);\n        }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar12 + 0x28);" (assignment_expression "iVar8 = *(int *)(iVar12 + 0x28)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar12 + 0x28)" (* "*") (cast_expression "(int *)(iVar12 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x28)" (( "(") (binary_expression "iVar12 + 0x28" (identifier "iVar12") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(undefined1 *)(param_1[6] + iVar8) = 0;" (assignment_expression "*(undefined1 *)(param_1[6] + iVar8) = 0" (pointer_expression "*(undefined1 *)(param_1[6] + iVar8)" (* "*") (cast_expression "(undefined1 *)(param_1[6] + iVar8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[6] + iVar8)" (( "(") (binary_expression "param_1[6] + iVar8" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "iVar8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar12 = FUN_000190b8(param_1,3);" (assignment_expression "iVar12 = FUN_000190b8(param_1,3)" (identifier "iVar12") (= "=") (call_expression "FUN_000190b8(param_1,3)" (identifier "FUN_000190b8") (argument_list "(param_1,3)" (( "(") (identifier "param_1") (, ",") (number_literal "3") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (*(code *)PTR_free_000333cc)(iVar5);\n            goto LAB_0001a788;\n          }" ({ "{") (expression_statement "(*(code *)PTR_free_000333cc)(iVar5);" (call_expression "(*(code *)PTR_free_000333cc)(iVar5)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" (( "(") (pointer_expression "*(code *)PTR_free_000333cc" (* "*") (cast_expression "(code *)PTR_free_000333cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000333cc"))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (goto_statement "goto LAB_0001a788;" (goto "goto") (statement_identifier "LAB_0001a788") (; ";")) (} "}"))) (if_statement "if ((param_1[0xc] & 0x4000U) != 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "((param_1[0xc] & 0x4000U) != 0)" (( "(") (binary_expression "(param_1[0xc] & 0x4000U) != 0" (parenthesized_expression "(param_1[0xc] & 0x4000U)" (( "(") (binary_expression "param_1[0xc] & 0x4000U" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (& "&") (number_literal "0x4000U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(iVar5 + 4);" (assignment_expression "iVar12 = *(int *)(iVar5 + 4)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar3 = PTR_free_000333cc;" (assignment_expression "puVar3 = PTR_free_000333cc" (identifier "puVar3") (= "=") (identifier "PTR_free_000333cc")) (; ";")) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "(*(code *)puVar3)(iVar5);" (call_expression "(*(code *)puVar3)(iVar5)" (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 "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar12 + 0x30) == -1) {\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x30) == -1)" (( "(") (binary_expression "*(int *)(iVar12 + 0x30) == -1" (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          (*(code *)PTR_free_000333cc)(iVar12);\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          *puVar4 = 0;\n          *param_1 = 0;\n          return 0;\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_000333cc)(iVar12);" (call_expression "(*(code *)PTR_free_000333cc)(iVar12)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" (( "(") (pointer_expression "*(code *)PTR_free_000333cc" (* "*") (cast_expression "(code *)PTR_free_000333cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000333cc"))) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033330" (* "*") (cast_expression "(code *)PTR___errno_location_00033330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033330"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(short *)(iVar12 + 0x3c) != 0xb) {\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }" (if "if") (parenthesized_expression "(*(short *)(iVar12 + 0x3c) != 0xb)" (( "(") (binary_expression "*(short *)(iVar12 + 0x3c) != 0xb" (pointer_expression "*(short *)(iVar12 + 0x3c)" (* "*") (cast_expression "(short *)(iVar12 + 0x3c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (!= "!=") (number_literal "0xb")) () ")")) (compound_statement "{\n          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;\n          if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }\n          if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }\nLAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }\n          return 0;\n        }" ({ "{") (expression_statement "*(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;" (assignment_expression "*(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0" (pointer_expression "*(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28))" (* "*") (cast_expression "(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[6] + *(int *)(iVar12 + 0x28))" (( "(") (binary_expression "param_1[6] + *(int *)(iVar12 + 0x28)" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (pointer_expression "*(int *)(iVar12 + 0x28)" (* "*") (cast_expression "(int *)(iVar12 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x28)" (( "(") (binary_expression "iVar12 + 0x28" (identifier "iVar12") (+ "+") (number_literal "0x28")) () ")"))))) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(iVar12 + 0x30) == 0) {\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }\n          else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x30) == 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0x30) == 0" (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar5 = FUN_00018728(param_1);\n            if (iVar5 == 0) goto LAB_0001a4d0;\nLAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n            uVar7 = param_1[0xc];\n            *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n            param_1[0xc] = uVar7 | 0x4000;\n            if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }\n            uVar7 = param_1[0xc];\n          }" ({ "{") (expression_statement "iVar5 = FUN_00018728(param_1);" (assignment_expression "iVar5 = FUN_00018728(param_1)" (identifier "iVar5") (= "=") (call_expression "FUN_00018728(param_1)" (identifier "FUN_00018728") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_0001a4d0;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a4d0;" (goto "goto") (statement_identifier "LAB_0001a4d0") (; ";"))) (labeled_statement "LAB_0001a9fc:\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (statement_identifier "LAB_0001a9fc") (: ":") (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033330" (* "*") (cast_expression "(code *)PTR___errno_location_00033330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033330"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" (identifier "uVar7") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = *puVar4;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = *puVar4" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "param_1[0xc] = uVar7 | 0x4000;" (assignment_expression "param_1[0xc] = uVar7 | 0x4000" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "uVar7 | 0x4000" (identifier "uVar7") (| "|") (number_literal "0x4000"))) (; ";")) (if_statement "if (*(short *)(iVar12 + 0x3c) == 2) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(*(short *)(iVar12 + 0x3c) == 2)" (( "(") (binary_expression "*(short *)(iVar12 + 0x3c) == 2" (pointer_expression "*(short *)(iVar12 + 0x3c)" (* "*") (cast_expression "(short *)(iVar12 + 0x3c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" (identifier "uVar7") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }" (else "else") (compound_statement "{\n            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }\nLAB_0001a4d0:\n            uVar7 = param_1[0xc];\n            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;\n          }" ({ "{") (if_statement "if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }\n            else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }" (if "if") (parenthesized_expression "((*(ushort *)(iVar12 + 0x3e) & 2) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar12 + 0x3e) & 2) == 0" (parenthesized_expression "(*(ushort *)(iVar12 + 0x3e) & 2)" (( "(") (binary_expression "*(ushort *)(iVar12 + 0x3e) & 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar12 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3e)" (( "(") (binary_expression "iVar12 + 0x3e" (identifier "iVar12") (+ "+") (number_literal "0x3e")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;\n            }" ({ "{") (if_statement "if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))\n              goto LAB_0001a9fc;" (if "if") (parenthesized_expression "(((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))" (( "(") (binary_expression "((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&\n                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0)" (parenthesized_expression "((*(ushort *)(iVar12 + 0x3e) & 1) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar12 + 0x3e) & 1) == 0" (parenthesized_expression "(*(ushort *)(iVar12 + 0x3e) & 1)" (( "(") (binary_expression "*(ushort *)(iVar12 + 0x3e) & 1" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar12 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3e)" (( "(") (binary_expression "iVar12 + 0x3e" (identifier "iVar12") (+ "+") (number_literal "0x3e")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0)" (( "(") (comma_expression "iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0" (assignment_expression "iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70)" (identifier "iVar5") (= "=") (call_expression "FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70)" (identifier "FUN_00018bcc") (argument_list "(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,\n                                       PTR_fdopendir_00033108 + 0x1d70)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined4 *)(iVar12 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "PTR_fdopendir_00033108 + 0x1d70" (identifier "PTR_fdopendir_00033108") (+ "+") (number_literal "0x1d70")) () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001a9fc;" (goto "goto") (statement_identifier "LAB_0001a9fc") (; ";"))) (} "}")) (else_clause "else {\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }" (else "else") (compound_statement "{\n              uVar10 = *(undefined4 *)(iVar12 + 0x24);\n              if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }\n              (*(code *)PTR_close_000332c0)(uVar10);\n            }" ({ "{") (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if ((param_1[0xc] & 4U) == 0) {\n                if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\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[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }\n              }" ({ "{") (if_statement "if ((param_1[0xc] & 0x200U) == 0) {\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }\n                else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }" (if "if") (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")) () ")")) (compound_statement "{\n                  iVar5 = (*(code *)PTR_fchdir_000332f4)();\n                  if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }\n                }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_fchdir_000332f4)();" (assignment_expression "iVar5 = (*(code *)PTR_fchdir_000332f4)()" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_fchdir_000332f4)()" (parenthesized_expression "(*(code *)PTR_fchdir_000332f4)" (( "(") (pointer_expression "*(code *)PTR_fchdir_000332f4" (* "*") (cast_expression "(code *)PTR_fchdir_000332f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fchdir_000332f4"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }\n                  else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                  }" ({ "{") (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }" (else "else") (compound_statement "{\n                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n                    uVar7 = param_1[0xc];\n                    uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;\n                    param_1[0xc] = uVar7 | 0x4000;\n                  }" ({ "{") (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033330" (* "*") (cast_expression "(code *)PTR___errno_location_00033330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033330"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" (identifier "uVar7") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = *puVar4;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = *puVar4" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "param_1[0xc] = uVar7 | 0x4000;" (assignment_expression "param_1[0xc] = uVar7 | 0x4000" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "uVar7 | 0x4000" (identifier "uVar7") (| "|") (number_literal "0x4000"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }" (else "else") (compound_statement "{\n                  FUN_00018658(param_1,uVar10,1);\n                  uVar10 = *(undefined4 *)(iVar12 + 0x24);\n                }" ({ "{") (expression_statement "FUN_00018658(param_1,uVar10,1);" (call_expression "FUN_00018658(param_1,uVar10,1)" (identifier "FUN_00018658") (argument_list "(param_1,uVar10,1)" (( "(") (identifier "param_1") (, ",") (identifier "uVar10") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(iVar12 + 0x24);" (assignment_expression "uVar10 = *(undefined4 *)(iVar12 + 0x24)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (expression_statement "(*(code *)PTR_close_000332c0)(uVar10);" (call_expression "(*(code *)PTR_close_000332c0)(uVar10)" (parenthesized_expression "(*(code *)PTR_close_000332c0)" (( "(") (pointer_expression "*(code *)PTR_close_000332c0" (* "*") (cast_expression "(code *)PTR_close_000332c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_000332c0"))) () ")")) (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0001a4d0:\n            uVar7 = param_1[0xc];" (statement_identifier "LAB_0001a4d0") (: ":") (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" (identifier "uVar7") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";"))) (if_statement "if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;" (if "if") (parenthesized_expression "(*(short *)(iVar12 + 0x3c) == 2)" (( "(") (binary_expression "*(short *)(iVar12 + 0x3c) == 2" (pointer_expression "*(short *)(iVar12 + 0x3c)" (* "*") (cast_expression "(short *)(iVar12 + 0x3c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_0001a50c;" (goto "goto") (statement_identifier "LAB_0001a50c") (; ";"))) (} "}")))) (if_statement "if (*(int *)(iVar12 + 0x20) == 0) {\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }\n          else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x20) == 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0x20) == 0" (pointer_expression "*(int *)(iVar12 + 0x20)" (* "*") (cast_expression "(int *)(iVar12 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined2 *)(iVar12 + 0x3c) = 6;\n            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);\n            uVar7 = param_1[0xc];\n          }" ({ "{") (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 6;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 6" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "6")) (; ";")) (expression_statement "FUN_00018f84(uVar7,param_1 + 0xe,iVar12);" (call_expression "FUN_00018f84(uVar7,param_1 + 0xe,iVar12)" (identifier "FUN_00018f84") (argument_list "(uVar7,param_1 + 0xe,iVar12)" (( "(") (identifier "uVar7") (, ",") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) (, ",") (identifier "iVar12") () ")"))) (; ";")) (expression_statement "uVar7 = param_1[0xc];" (assignment_expression "uVar7 = param_1[0xc]" (identifier "uVar7") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }" (else "else") (compound_statement "{\n            *(undefined2 *)(iVar12 + 0x3c) = 7;\n          }" ({ "{") (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "7")) (; ";")) (} "}")))) (labeled_statement "LAB_0001a50c:\n          if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }" (statement_identifier "LAB_0001a50c") (: ":") (if_statement "if ((uVar7 & 0x4000) == 0) {\n            return iVar12;\n          }" (if "if") (parenthesized_expression "((uVar7 & 0x4000) == 0)" (( "(") (binary_expression "(uVar7 & 0x4000) == 0" (parenthesized_expression "(uVar7 & 0x4000)" (( "(") (binary_expression "uVar7 & 0x4000" (identifier "uVar7") (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return iVar12;\n          }" ({ "{") (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}")))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto LAB_0001a898;" (goto "goto") (statement_identifier "LAB_0001a898") (; ";")) (} "}"))) (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "(*(code *)puVar3)(iVar5);" (call_expression "(*(code *)puVar3)(iVar5)" (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 "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar12 + 0x30) == 0) {\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x30) == 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0x30) == 0" (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = FUN_00018728(param_1);\n        if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }\n        if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }\n        puVar3 = PTR_memmove_000333d0;\n        iVar8 = iVar12 + 0xe8;\n        iVar5 = param_1[6];\n        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);\n        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);\n        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);\n        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }\n        iVar5 = param_1[6];\n        iVar8 = param_1[0xc];\n        *(int *)(iVar12 + 0x1c) = iVar5;\n        *(int *)(iVar12 + 0x18) = iVar5;\n        FUN_00018abc(iVar8,param_1 + 0xe);\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7d8;\n      }" ({ "{") (expression_statement "iVar5 = FUN_00018728(param_1);" (assignment_expression "iVar5 = FUN_00018728(param_1)" (identifier "iVar5") (= "=") (call_expression "FUN_00018728(param_1)" (identifier "FUN_00018728") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          param_1[0xc] = param_1[0xc] | 0x4000;\n          return 0;\n        }" ({ "{") (expression_statement "param_1[0xc] = param_1[0xc] | 0x4000;" (assignment_expression "param_1[0xc] = param_1[0xc] | 0x4000" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "param_1[0xc] | 0x4000" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (| "|") (number_literal "0x4000"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((param_1[0xc] & 0x102U) == 0) {\n          (*(code *)PTR_free_000333cc)();\n        }\n        else if (param_1[0xe] != 0) {\n          hash_free();\n        }" (if "if") (parenthesized_expression "((param_1[0xc] & 0x102U) == 0)" (( "(") (binary_expression "(param_1[0xc] & 0x102U) == 0" (parenthesized_expression "(param_1[0xc] & 0x102U)" (( "(") (binary_expression "param_1[0xc] & 0x102U" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (& "&") (number_literal "0x102U")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_free_000333cc)();\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_000333cc)();" (call_expression "(*(code *)PTR_free_000333cc)()" (parenthesized_expression "(*(code *)PTR_free_000333cc)" (( "(") (pointer_expression "*(code *)PTR_free_000333cc" (* "*") (cast_expression "(code *)PTR_free_000333cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000333cc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else if (param_1[0xe] != 0) {\n          hash_free();\n        }" (else "else") (if_statement "if (param_1[0xe] != 0) {\n          hash_free();\n        }" (if "if") (parenthesized_expression "(param_1[0xe] != 0)" (( "(") (binary_expression "param_1[0xe] != 0" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          hash_free();\n        }" ({ "{") (expression_statement "hash_free();" (call_expression "hash_free()" (identifier "hash_free") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))))) (expression_statement "puVar3 = PTR_memmove_000333d0;" (assignment_expression "puVar3 = PTR_memmove_000333d0" (identifier "puVar3") (= "=") (identifier "PTR_memmove_000333d0")) (; ";")) (expression_statement "iVar8 = iVar12 + 0xe8;" (assignment_expression "iVar8 = iVar12 + 0xe8" (identifier "iVar8") (= "=") (binary_expression "iVar12 + 0xe8" (identifier "iVar12") (+ "+") (number_literal "0xe8"))) (; ";")) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" (identifier "iVar5") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);" (assignment_expression "*(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34)" (pointer_expression "*(int *)(iVar12 + 0x28)" (* "*") (cast_expression "(int *)(iVar12 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x28)" (( "(") (binary_expression "iVar12 + 0x28" (identifier "iVar12") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "*(int *)(iVar12 + 0x34)" (* "*") (cast_expression "(int *)(iVar12 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x34)" (( "(") (binary_expression "iVar12 + 0x34" (identifier "iVar12") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "(*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);" (call_expression "(*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1)" (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 "(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1)" (( "(") (identifier "iVar5") (, ",") (identifier "iVar8") (, ",") (binary_expression "*(int *)(iVar12 + 0x34) + 1" (pointer_expression "*(int *)(iVar12 + 0x34)" (* "*") (cast_expression "(int *)(iVar12 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x34)" (( "(") (binary_expression "iVar12 + 0x34" (identifier "iVar12") (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);" (assignment_expression "iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_strrchr_00033308)(iVar8,0x2f)" (parenthesized_expression "(*(code *)PTR_strrchr_00033308)" (( "(") (pointer_expression "*(code *)PTR_strrchr_00033308" (* "*") (cast_expression "(code *)PTR_strrchr_00033308" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strrchr_00033308"))) () ")")) (argument_list "(iVar8,0x2f)" (( "(") (identifier "iVar8") (, ",") (number_literal "0x2f") () ")")))) (; ";")) (if_statement "if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }" (if "if") (parenthesized_expression "((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0'))))" (( "(") (binary_expression "(iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))" (( "(") (parenthesized_expression "(iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0'))" (( "(") (binary_expression "iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')" (binary_expression "iVar8 != iVar5" (identifier "iVar8") (!= "!=") (identifier "iVar5")) (|| "||") (parenthesized_expression "(*(char *)(iVar12 + 0xe9) != '\0')" (( "(") (binary_expression "*(char *)(iVar12 + 0xe9) != '\0'" (pointer_expression "*(char *)(iVar12 + 0xe9)" (* "*") (cast_expression "(char *)(iVar12 + 0xe9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe9)" (( "(") (binary_expression "iVar12 + 0xe9" (identifier "iVar12") (+ "+") (number_literal "0xe9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);\n          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);\n          *(int *)(iVar12 + 0x34) = iVar11;\n        }" ({ "{") (expression_statement "iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);" (assignment_expression "iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_strlen_00033354)(iVar5 + 1)" (parenthesized_expression "(*(code *)PTR_strlen_00033354)" (( "(") (pointer_expression "*(code *)PTR_strlen_00033354" (* "*") (cast_expression "(code *)PTR_strlen_00033354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00033354"))) () ")")) (argument_list "(iVar5 + 1)" (( "(") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);" (call_expression "(*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1)" (parenthesized_expression "(*(code *)PTR_memmove_000333d0)" (( "(") (pointer_expression "*(code *)PTR_memmove_000333d0" (* "*") (cast_expression "(code *)PTR_memmove_000333d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_000333d0"))) () ")")) (argument_list "(iVar8,iVar5 + 1,iVar11 + 1)" (( "(") (identifier "iVar8") (, ",") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1")) (, ",") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "*(int *)(iVar12 + 0x34) = iVar11;" (assignment_expression "*(int *)(iVar12 + 0x34) = iVar11" (pointer_expression "*(int *)(iVar12 + 0x34)" (* "*") (cast_expression "(int *)(iVar12 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x34)" (( "(") (binary_expression "iVar12 + 0x34" (identifier "iVar12") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (} "}"))) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" (identifier "iVar5") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar8 = param_1[0xc];" (assignment_expression "iVar8 = param_1[0xc]" (identifier "iVar8") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar12 + 0x1c) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x1c) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x1c)" (* "*") (cast_expression "(int *)(iVar12 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c)" (( "(") (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(iVar12 + 0x18) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x18) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x18)" (* "*") (cast_expression "(int *)(iVar12 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "FUN_00018abc(iVar8,param_1 + 0xe);" (call_expression "FUN_00018abc(iVar8,param_1 + 0xe)" (identifier "FUN_00018abc") (argument_list "(iVar8,param_1 + 0xe)" (( "(") (identifier "iVar8") (, ",") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")"))) (; ";")) (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" (identifier "uVar7") (= "=") (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar12 + 0x3c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001a7d8;" (goto "goto") (statement_identifier "LAB_0001a7d8") (; ";")) (} "}"))) (expression_statement "iVar5 = iVar12;" (assignment_expression "iVar5 = iVar12" (identifier "iVar5") (= "=") (identifier "iVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(short *)(iVar12 + 0x40) == 4)" (( "(") (binary_expression "*(short *)(iVar12 + 0x40) == 4" (pointer_expression "*(short *)(iVar12 + 0x40)" (* "*") (cast_expression "(short *)(iVar12 + 0x40)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x40)" (( "(") (binary_expression "iVar12 + 0x40" (identifier "iVar12") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (number_literal "4")) () ")")) (; ";"))) (if_statement "if (*(short *)(iVar12 + 0x40) == 2) {\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }" (if "if") (parenthesized_expression "(*(short *)(iVar12 + 0x40) == 2)" (( "(") (binary_expression "*(short *)(iVar12 + 0x40) == 2" (pointer_expression "*(short *)(iVar12 + 0x40)" (* "*") (cast_expression "(short *)(iVar12 + 0x40)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x40)" (( "(") (binary_expression "iVar12 + 0x40" (identifier "iVar12") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);\n      *(short *)(iVar12 + 0x3c) = (short)iVar5;\n      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }\n    }" ({ "{") (expression_statement "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);" (assignment_expression "iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" (identifier "iVar5") (= "=") (call_expression "FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1)" (identifier "FUN_000187c0") (argument_list "(param_1[8],param_1 + 0xc,iVar12,1)" (( "(") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (, ",") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar12") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "*(short *)(iVar12 + 0x3c) = (short)iVar5;" (assignment_expression "*(short *)(iVar12 + 0x3c) = (short)iVar5" (pointer_expression "*(short *)(iVar12 + 0x3c)" (* "*") (cast_expression "(short *)(iVar12 + 0x3c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (cast_expression "(short)iVar5" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar5"))) (; ";")) (if_statement "if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {\n        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }\n      else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }" (if "if") (parenthesized_expression "((iVar5 == 1) && ((param_1[0xc] & 4U) == 0))" (( "(") (binary_expression "(iVar5 == 1) && ((param_1[0xc] & 4U) == 0)" (parenthesized_expression "(iVar5 == 1)" (( "(") (binary_expression "iVar5 == 1" (identifier "iVar5") (== "==") (number_literal "1")) () ")")) (&& "&&") (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        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);\n        *(int *)(iVar12 + 0x24) = iVar5;\n        if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n      }" ({ "{") (expression_statement "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);" (assignment_expression "iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" (identifier "iVar5") (= "=") (call_expression "FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" (identifier "FUN_00018b70") (argument_list "(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74)" (( "(") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (, ",") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (, ",") (binary_expression "PTR_fdopendir_00033108 + 0x1d74" (identifier "PTR_fdopendir_00033108") (+ "+") (number_literal "0x1d74")) () ")")))) (; ";")) (expression_statement "*(int *)(iVar12 + 0x24) = iVar5;" (assignment_expression "*(int *)(iVar12 + 0x24) = iVar5" (pointer_expression "*(int *)(iVar12 + 0x24)" (* "*") (cast_expression "(int *)(iVar12 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }\n        else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n          uVar10 = *puVar4;\n          *(undefined2 *)(iVar12 + 0x3c) = 7;\n          *(undefined4 *)(iVar12 + 0x20) = uVar10;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" ({ "{") (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033330" (* "*") (cast_expression "(code *)PTR___errno_location_00033330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033330"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar10 = *puVar4;" (assignment_expression "uVar10 = *puVar4" (identifier "uVar10") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "*(undefined2 *)(iVar12 + 0x3c) = 7;" (assignment_expression "*(undefined2 *)(iVar12 + 0x3c) = 7" (pointer_expression "*(undefined2 *)(iVar12 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "7")) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0x20) = uVar10;" (assignment_expression "*(undefined4 *)(iVar12 + 0x20) = uVar10" (pointer_expression "*(undefined4 *)(iVar12 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x40)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x40)" (( "(") (binary_expression "iVar12 + 0x40" (identifier "iVar12") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else {\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" (else "else") (compound_statement "{\n          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;\n          *(undefined2 *)(iVar12 + 0x40) = 3;\n        }" ({ "{") (expression_statement "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;" (assignment_expression "*(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar12 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3e)" (( "(") (binary_expression "iVar12 + 0x3e" (identifier "iVar12") (+ "+") (number_literal "0x3e")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar12 + 0x3e) | 2" (pointer_expression "*(ushort *)(iVar12 + 0x3e)" (* "*") (cast_expression "(ushort *)(iVar12 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3e)" (( "(") (binary_expression "iVar12 + 0x3e" (identifier "iVar12") (+ "+") (number_literal "0x3e")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x40)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x40)" (( "(") (binary_expression "iVar12 + 0x40" (identifier "iVar12") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "3")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }" (else "else") (compound_statement "{\n        *(undefined2 *)(iVar12 + 0x40) = 3;\n      }" ({ "{") (expression_statement "*(undefined2 *)(iVar12 + 0x40) = 3;" (assignment_expression "*(undefined2 *)(iVar12 + 0x40) = 3" (pointer_expression "*(undefined2 *)(iVar12 + 0x40)" (* "*") (cast_expression "(undefined2 *)(iVar12 + 0x40)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x40)" (( "(") (binary_expression "iVar12 + 0x40" (identifier "iVar12") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "3")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0001a788:\n    puVar3 = PTR_memmove_000333d0;" (statement_identifier "LAB_0001a788") (: ":") (expression_statement "puVar3 = PTR_memmove_000333d0;" (assignment_expression "puVar3 = PTR_memmove_000333d0" (identifier "puVar3") (= "=") (identifier "PTR_memmove_000333d0")) (; ";"))) (expression_statement "iVar8 = param_1[6];" (assignment_expression "iVar8 = param_1[6]" (identifier "iVar8") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);" (assignment_expression "iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(*(int *)(iVar12 + 4) + 0x28)" (* "*") (cast_expression "(int *)(*(int *)(iVar12 + 4) + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar12 + 4) + 0x28)" (( "(") (binary_expression "*(int *)(iVar12 + 4) + 0x28" (pointer_expression "*(int *)(iVar12 + 4)" (* "*") (cast_expression "(int *)(iVar12 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "iVar5 = iVar11 + -1;" (assignment_expression "iVar5 = iVar11 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {\n      iVar5 = iVar11;\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/')" (( "(") (binary_expression "*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/'" (pointer_expression "*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5)" (( "(") (binary_expression "*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5" (pointer_expression "*(int *)(*(int *)(iVar12 + 4) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar12 + 4) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar12 + 4) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar12 + 4) + 0x1c" (pointer_expression "*(int *)(iVar12 + 4)" (* "*") (cast_expression "(int *)(iVar12 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (identifier "iVar5")) () ")")))) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n      iVar5 = iVar11;\n    }" ({ "{") (expression_statement "iVar5 = iVar11;" (assignment_expression "iVar5 = iVar11" (identifier "iVar5") (= "=") (identifier "iVar11")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(iVar8 + iVar5) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar8 + iVar5) = 0x2f" (pointer_expression "*(undefined1 *)(iVar8 + iVar5)" (* "*") (cast_expression "(undefined1 *)(iVar8 + iVar5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar5)" (( "(") (binary_expression "iVar8 + iVar5" (identifier "iVar8") (+ "+") (identifier "iVar5")) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (expression_statement "(*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);" (call_expression "(*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1)" (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 "((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1)" (( "(") (binary_expression "(undefined1 *)(iVar8 + iVar5) + 1" (cast_expression "(undefined1 *)(iVar8 + iVar5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar5)" (( "(") (binary_expression "iVar8 + iVar5" (identifier "iVar8") (+ "+") (identifier "iVar5")) () ")"))) (+ "+") (number_literal "1")) (, ",") (binary_expression "iVar12 + 0xe8" (identifier "iVar12") (+ "+") (number_literal "0xe8")) (, ",") (binary_expression "*(int *)(iVar12 + 0x34) + 1" (pointer_expression "*(int *)(iVar12 + 0x34)" (* "*") (cast_expression "(int *)(iVar12 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x34)" (( "(") (binary_expression "iVar12 + 0x34" (identifier "iVar12") (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" (identifier "uVar7") (= "=") (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar12 + 0x3c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (labeled_statement "LAB_0001a7d8:\n    *param_1 = iVar12;" (statement_identifier "LAB_0001a7d8") (: ":") (expression_statement "*param_1 = iVar12;" (assignment_expression "*param_1 = iVar12" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar12")) (; ";"))) (if_statement "if (uVar7 != 0xb) {\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }" (if "if") (parenthesized_expression "(uVar7 != 0xb)" (( "(") (binary_expression "uVar7 != 0xb" (identifier "uVar7") (!= "!=") (number_literal "0xb")) () ")")) (compound_statement "{\nLAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a7f0;\n    }" ({ "{") (labeled_statement "LAB_0001a7e4:\n      if (uVar7 != 1) {\n        return iVar12;\n      }" (statement_identifier "LAB_0001a7e4") (: ":") (if_statement "if (uVar7 != 1) {\n        return iVar12;\n      }" (if "if") (parenthesized_expression "(uVar7 != 1)" (( "(") (binary_expression "uVar7 != 1" (identifier "uVar7") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        return iVar12;\n      }" ({ "{") (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}")))) (goto_statement "goto LAB_0001a7f0;" (goto "goto") (statement_identifier "LAB_0001a7f0") (; ";")) (} "}"))) (labeled_statement "LAB_0001a888:\n    if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }" (statement_identifier "LAB_0001a888") (: ":") (if_statement "if (*(int *)(iVar12 + 0x80) != 0) {\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x80) != 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0x80) != 0" (pointer_expression "*(int *)(iVar12 + 0x80)" (* "*") (cast_expression "(int *)(iVar12 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x80)" (( "(") (binary_expression "iVar12 + 0x80" (identifier "iVar12") (+ "+") (number_literal "0x80")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();\n      return iVar12;\n    }" ({ "{") (labeled_statement "LAB_0001a898:\n      iVar12 = (*(code *)PTR_abort_000332d0)();" (statement_identifier "LAB_0001a898") (: ":") (expression_statement "iVar12 = (*(code *)PTR_abort_000332d0)();" (assignment_expression "iVar12 = (*(code *)PTR_abort_000332d0)()" (identifier "iVar12") (= "=") (call_expression "(*(code *)PTR_abort_000332d0)()" (parenthesized_expression "(*(code *)PTR_abort_000332d0)" (( "(") (pointer_expression "*(code *)PTR_abort_000332d0" (* "*") (cast_expression "(code *)PTR_abort_000332d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abort_000332d0"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}")))) (if_statement "if (*(int *)(iVar12 + 0x84) != 2) {\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x84) != 2)" (( "(") (binary_expression "*(int *)(iVar12 + 0x84) != 2" (pointer_expression "*(int *)(iVar12 + 0x84)" (* "*") (cast_expression "(int *)(iVar12 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x84)" (( "(") (binary_expression "iVar12 + 0x84" (identifier "iVar12") (+ "+") (number_literal "0x84")) () ")")))) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n      if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }\n      goto LAB_0001a898;\n    }" ({ "{") (if_statement "if (*(int *)(iVar12 + 0x84) == 1) {\n        return iVar12;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x84) == 1)" (( "(") (binary_expression "*(int *)(iVar12 + 0x84) == 1" (pointer_expression "*(int *)(iVar12 + 0x84)" (* "*") (cast_expression "(int *)(iVar12 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x84)" (( "(") (binary_expression "iVar12 + 0x84" (identifier "iVar12") (+ "+") (number_literal "0x84")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        return iVar12;\n      }" ({ "{") (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (goto_statement "goto LAB_0001a898;" (goto "goto") (statement_identifier "LAB_0001a898") (; ";")) (} "}"))) (expression_statement "iVar8 = *(int *)(iVar12 + 4);" (assignment_expression "iVar8 = *(int *)(iVar12 + 4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar12 + 4)" (* "*") (cast_expression "(int *)(iVar12 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar5 = param_1[8];" (assignment_expression "iVar5 = param_1[8]" (identifier "iVar5") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18))" (( "(") (binary_expression "(*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)" (parenthesized_expression "(*(int *)(iVar8 + 0x38) == 0)" (( "(") (binary_expression "*(int *)(iVar8 + 0x38) == 0" (pointer_expression "*(int *)(iVar8 + 0x38)" (* "*") (cast_expression "(int *)(iVar8 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x38)" (( "(") (binary_expression "iVar8 + 0x38" (identifier "iVar8") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((param_1[0xc] & 0x18U) == 0x18)" (( "(") (binary_expression "(param_1[0xc] & 0x18U) == 0x18" (parenthesized_expression "(param_1[0xc] & 0x18U)" (( "(") (binary_expression "param_1[0xc] & 0x18U" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (& "&") (number_literal "0x18U")) () ")")) (== "==") (number_literal "0x18")) () ")"))) () ")")) (compound_statement "{\n      iVar5 = FUN_000185a4(iVar8,iVar5);\n      if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }\n      iVar5 = param_1[8];\n    }" ({ "{") (expression_statement "iVar5 = FUN_000185a4(iVar8,iVar5);" (assignment_expression "iVar5 = FUN_000185a4(iVar8,iVar5)" (identifier "iVar5") (= "=") (call_expression "FUN_000185a4(iVar8,iVar5)" (identifier "FUN_000185a4") (argument_list "(iVar8,iVar5)" (( "(") (identifier "iVar8") (, ",") (identifier "iVar5") () ")")))) (; ";")) (if_statement "if (iVar5 == 2) {\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }" (if "if") (parenthesized_expression "(iVar5 == 2)" (( "(") (binary_expression "iVar5 == 2" (identifier "iVar5") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);\n        goto LAB_0001a7e4;\n      }" ({ "{") (expression_statement "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);" (assignment_expression "uVar7 = (uint)*(ushort *)(iVar12 + 0x3c)" (identifier "uVar7") (= "=") (binary_expression "(uint)*(ushort *)(iVar12 + 0x3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar12 + 0x3c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001a7e4;" (goto "goto") (statement_identifier "LAB_0001a7e4") (; ";")) (} "}"))) (expression_statement "iVar5 = param_1[8];" (assignment_expression "iVar5 = param_1[8]" (identifier "iVar5") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (} "}"))) (expression_statement "uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);" (assignment_expression "uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0)" (identifier "uVar7") (= "=") (call_expression "FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0)" (identifier "FUN_000187c0") (argument_list "(iVar5,param_1 + 0xc,iVar12,0)" (( "(") (identifier "iVar5") (, ",") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) (, ",") (identifier "iVar12") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(short *)(iVar12 + 0x3c) = (short)uVar7;" (assignment_expression "*(short *)(iVar12 + 0x3c) = (short)uVar7" (pointer_expression "*(short *)(iVar12 + 0x3c)" (* "*") (cast_expression "(short *)(iVar12 + 0x3c)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (cast_expression "(short)uVar7" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar7"))) (; ";")) (if_statement "if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;" (if "if") (parenthesized_expression "((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000)" (( "(") (binary_expression "(*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(iVar12 + 0x60) & 0xf000)" (( "(") (binary_expression "*(uint *)(iVar12 + 0x60) & 0xf000" (pointer_expression "*(uint *)(iVar12 + 0x60)" (* "*") (cast_expression "(uint *)(iVar12 + 0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x60)" (( "(") (binary_expression "iVar12 + 0x60" (identifier "iVar12") (+ "+") (number_literal "0x60")) () ")")))) (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000")) () ")")) (goto_statement "goto LAB_0001a7e4;" (goto "goto") (statement_identifier "LAB_0001a7e4") (; ";"))) (if_statement "if (*(int *)(iVar12 + 0x30) != 0) {\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x30) != 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0x30) != 0" (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = *(int *)(iVar8 + 0x38) - 1;\n      if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }\n      if (uVar7 != 1) {\n        return iVar12;\n      }\n      goto LAB_0001a800;\n    }" ({ "{") (expression_statement "uVar9 = *(int *)(iVar8 + 0x38) - 1;" (assignment_expression "uVar9 = *(int *)(iVar8 + 0x38) - 1" (identifier "uVar9") (= "=") (binary_expression "*(int *)(iVar8 + 0x38) - 1" (pointer_expression "*(int *)(iVar8 + 0x38)" (* "*") (cast_expression "(int *)(iVar8 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x38)" (( "(") (binary_expression "iVar8 + 0x38" (identifier "iVar8") (+ "+") (number_literal "0x38")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (if_statement "if (uVar9 < 0xfffffffe) {\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }" (if "if") (parenthesized_expression "(uVar9 < 0xfffffffe)" (( "(") (binary_expression "uVar9 < 0xfffffffe" (identifier "uVar9") (< "<") (number_literal "0xfffffffe")) () ")")) (compound_statement "{\n        *(uint *)(iVar8 + 0x38) = uVar9;\n      }" ({ "{") (expression_statement "*(uint *)(iVar8 + 0x38) = uVar9;" (assignment_expression "*(uint *)(iVar8 + 0x38) = uVar9" (pointer_expression "*(uint *)(iVar8 + 0x38)" (* "*") (cast_expression "(uint *)(iVar8 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x38)" (( "(") (binary_expression "iVar8 + 0x38" (identifier "iVar8") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (if_statement "if (uVar7 != 1) {\n        return iVar12;\n      }" (if "if") (parenthesized_expression "(uVar7 != 1)" (( "(") (binary_expression "uVar7 != 1" (identifier "uVar7") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        return iVar12;\n      }" ({ "{") (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (goto_statement "goto LAB_0001a800;" (goto "goto") (statement_identifier "LAB_0001a800") (; ";")) (} "}"))) (if_statement "if (uVar7 != 1) {\n      return iVar12;\n    }" (if "if") (parenthesized_expression "(uVar7 != 1)" (( "(") (binary_expression "uVar7 != 1" (identifier "uVar7") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      return iVar12;\n    }" ({ "{") (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar5 = *(int *)(iVar12 + 0x48);" (assignment_expression "iVar5 = *(int *)(iVar12 + 0x48)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar12 + 0x48)" (* "*") (cast_expression "(int *)(iVar12 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x48)" (( "(") (binary_expression "iVar12 + 0x48" (identifier "iVar12") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[5] = iVar5;" (assignment_expression "param_1[5] = iVar5" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (labeled_statement "LAB_0001a800:\n  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);" (statement_identifier "LAB_0001a800") (: ":") (expression_statement "iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);" (assignment_expression "iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12)" (identifier "iVar5") (= "=") (call_expression "FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12)" (identifier "FUN_00018e50") (argument_list "(param_1[0xc],param_1 + 0xe,iVar12)" (( "(") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (, ",") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) (, ",") (identifier "iVar12") () ")")))) (; ";"))) (if_statement "if (iVar5 == 0) {\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar12 = 0;\n    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();\n    *puVar4 = 0xc;\n  }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_00033330)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00033330)()" (parenthesized_expression "(*(code *)PTR___errno_location_00033330)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00033330" (* "*") (cast_expression "(code *)PTR___errno_location_00033330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00033330"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar4 = 0xc;" (assignment_expression "*puVar4 = 0xc" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0xc")) (; ";")) (} "}"))) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}")))
(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))))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (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: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (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: (identifier) 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))) (return_statement (identifier)))) (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: (identifier) 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 (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (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: (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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (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: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (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))) (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: (identifier) 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: (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: (identifier)) right: (identifier))) (return_statement (identifier)))) (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: (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: (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)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (labeled_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: (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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: (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)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (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 (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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)))))))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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 (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))) 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))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (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))))))))) (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: (subscript_expression argument: (identifier) index: (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: (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: (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: (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)))) (for_statement initializer: (assignment_expression left: (identifier) right: (identifier)) condition: (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 (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: (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: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (goto_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)))))))))) (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 (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)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (return_statement (identifier)))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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: (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))))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (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 (identifier)))) (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 (return_statement (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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)))) (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 (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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (number_literal)))) (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: (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: (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))) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_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: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (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))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (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))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (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))))))) (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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)))))))) alternative: (else_clause (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: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (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 (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))))))) (labeled_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: (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: (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: (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: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement (identifier))))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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)))) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (return_statement (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 (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)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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 (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) (identifier) (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: (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) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (char_literal (escape_sequence))))))))) 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: (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: (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: (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: (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: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (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: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) 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))))) (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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (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))) (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: (identifier) 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: (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: (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 (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: (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (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: (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: (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))))) right: (identifier))))) right: (char_literal (character)))) consequence: (compound_statement (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: (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 (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)) (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: (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: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier))))) (goto_statement label: (statement_identifier)))) (labeled_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 (labeled_statement label: (statement_identifier) (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))))) (return_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 (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 (return_statement (identifier)))) (goto_statement label: (statement_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: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))) 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: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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: (identifier) right: (number_literal))))))) (goto_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: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal))))) (expression_statement (assignment_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: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (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))) 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: (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)))) (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (goto_statement label: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (labeled_statement label: (statement_identifier) (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: (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: (identifier)) right: (number_literal))))) (return_statement (identifier)))))

int MASKED(int *param_1)

{
  short sVar1;
  ushort uVar2;
  undefined *puVar3;
  undefined2 uVar6;
  undefined4 *puVar4;
  int iVar5;
  uint uVar7;
  int iVar8;
  uint uVar9;
  undefined4 uVar10;
  int iVar11;
  int iVar12;
  
  iVar12 = *param_1;
  if (iVar12 == 0) {
    return 0;
  }
  uVar7 = param_1[0xc];
  if ((uVar7 & 0x4000) != 0) {
    return 0;
  }
  sVar1 = *(short *)(iVar12 + 0x40);
  *(undefined2 *)(iVar12 + 0x40) = 3;
  if (sVar1 == 1) {
    uVar6 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,0);
    *(undefined2 *)(iVar12 + 0x3c) = uVar6;
    return iVar12;
  }
  uVar9 = (uint)*(ushort *)(iVar12 + 0x3c);
  iVar5 = iVar12;
  if (sVar1 == 2) {
    if (1 < uVar9 - 0xc) {
      if (uVar9 == 1) goto LAB_0001a554;
      goto LAB_0001a450;
    }
    iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);
    *(short *)(iVar12 + 0x3c) = (short)iVar5;
    if (iVar5 != 1) {
      *param_1 = iVar12;
      if (iVar5 != 0xb) {
        return iVar12;
      }
      goto LAB_0001a888;
    }
    if ((param_1[0xc] & 4U) == 0) {
      iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);
      *(int *)(iVar12 + 0x24) = iVar5;
      if (iVar5 < 0) {
        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
        uVar10 = *puVar4;
        *(undefined2 *)(iVar12 + 0x3c) = 7;
        *(undefined4 *)(iVar12 + 0x20) = uVar10;
        *param_1 = iVar12;
        return iVar12;
      }
      uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);
      *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;
      goto LAB_0001a7d8;
    }
    *param_1 = iVar12;
LAB_0001a7f0:
    if (*(int *)(iVar12 + 0x30) != 0) goto LAB_0001a800;
  }
  else {
    if (uVar9 == 1) {
      if (sVar1 == 4) {
        uVar2 = *(ushort *)(iVar12 + 0x3e);
      }
      else {
LAB_0001a554:
        if (((uVar7 & 0x40) == 0) || ((param_1[4] == 0 && (param_1[5] == *(int *)(iVar12 + 0x48)))))
        {
          if (param_1[1] == 0) {
LAB_0001a8e4:
            iVar5 = FUN_000190b8(param_1,3);
            param_1[1] = iVar5;
            if (iVar5 == 0) {
              uVar7 = param_1[0xc];
              if ((uVar7 & 0x4000) != 0) {
                return 0;
              }
              if ((*(int *)(iVar12 + 0x20) != 0) && (*(short *)(iVar12 + 0x3c) != 4)) {
                *(undefined2 *)(iVar12 + 0x3c) = 7;
              }
              goto LAB_0001a5ac;
            }
          }
          else {
            if ((uVar7 & 0x2000) != 0) {
              param_1[0xc] = uVar7 & 0xffffdfff;
              FUN_0001831c();
              param_1[1] = 0;
              goto LAB_0001a8e4;
            }
            iVar5 = FUN_00018bcc(param_1,iVar12,0xffffffff,*(undefined4 *)(iVar12 + 0x18));
            if (iVar5 == 0) {
              iVar12 = param_1[1];
              param_1[1] = 0;
              goto LAB_0001a788;
            }
            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
            iVar5 = param_1[1];
            *(undefined4 *)(iVar12 + 0x20) = *puVar4;
            *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 1;
            for (iVar12 = iVar5; iVar12 != 0; iVar12 = *(int *)(iVar12 + 8)) {
              *(undefined4 *)(iVar12 + 0x18) = *(undefined4 *)(*(int *)(iVar12 + 4) + 0x18);
            }
          }
          iVar12 = iVar5;
          param_1[1] = 0;
          goto LAB_0001a788;
        }
        uVar2 = *(ushort *)(iVar12 + 0x3e);
      }
      if ((uVar2 & 2) != 0) {
        (*(code *)PTR_close_000332c0)(*(undefined4 *)(iVar12 + 0x24));
      }
      if (param_1[1] != 0) {
        FUN_0001831c();
        param_1[1] = 0;
      }
      uVar7 = param_1[0xc];
      *(undefined2 *)(iVar12 + 0x3c) = 6;
LAB_0001a5ac:
      FUN_00018f84(uVar7,param_1 + 0xe,iVar12);
      return iVar12;
    }
LAB_0001a450:
    do {
      puVar3 = PTR_free_000333cc;
      iVar12 = *(int *)(iVar5 + 8);
      if (iVar12 == 0) {
        iVar12 = *(int *)(iVar5 + 4);
        if (*(int *)(iVar12 + 0xc) != 0) {
          iVar8 = *(int *)(iVar12 + 0x28);
          *param_1 = iVar12;
          *(undefined1 *)(param_1[6] + iVar8) = 0;
          iVar12 = FUN_000190b8(param_1,3);
          if (iVar12 != 0) {
            (*(code *)PTR_free_000333cc)(iVar5);
            goto LAB_0001a788;
          }
          if ((param_1[0xc] & 0x4000U) != 0) {
            return 0;
          }
          iVar12 = *(int *)(iVar5 + 4);
        }
        puVar3 = PTR_free_000333cc;
        *param_1 = iVar12;
        (*(code *)puVar3)(iVar5);
        if (*(int *)(iVar12 + 0x30) == -1) {
          (*(code *)PTR_free_000333cc)(iVar12);
          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
          *puVar4 = 0;
          *param_1 = 0;
          return 0;
        }
        if (*(short *)(iVar12 + 0x3c) != 0xb) {
          *(undefined1 *)(param_1[6] + *(int *)(iVar12 + 0x28)) = 0;
          if (*(int *)(iVar12 + 0x30) == 0) {
            iVar5 = FUN_00018728(param_1);
            if (iVar5 == 0) goto LAB_0001a4d0;
LAB_0001a9fc:
            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
            uVar7 = param_1[0xc];
            *(undefined4 *)(iVar12 + 0x20) = *puVar4;
            param_1[0xc] = uVar7 | 0x4000;
            if (*(short *)(iVar12 + 0x3c) == 2) {
              return 0;
            }
            uVar7 = param_1[0xc];
          }
          else {
            if ((*(ushort *)(iVar12 + 0x3e) & 2) == 0) {
              if (((*(ushort *)(iVar12 + 0x3e) & 1) == 0) &&
                 (iVar5 = FUN_00018bcc(param_1,*(undefined4 *)(iVar12 + 4),0xffffffff,
                                       PTR_fdopendir_00033108 + 0x1d70), iVar5 != 0))
              goto LAB_0001a9fc;
            }
            else {
              uVar10 = *(undefined4 *)(iVar12 + 0x24);
              if ((param_1[0xc] & 4U) == 0) {
                if ((param_1[0xc] & 0x200U) == 0) {
                  iVar5 = (*(code *)PTR_fchdir_000332f4)();
                  if (iVar5 == 0) {
                    uVar10 = *(undefined4 *)(iVar12 + 0x24);
                  }
                  else {
                    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
                    uVar7 = param_1[0xc];
                    uVar10 = *(undefined4 *)(iVar12 + 0x24);
                    *(undefined4 *)(iVar12 + 0x20) = *puVar4;
                    param_1[0xc] = uVar7 | 0x4000;
                  }
                }
                else {
                  FUN_00018658(param_1,uVar10,1);
                  uVar10 = *(undefined4 *)(iVar12 + 0x24);
                }
              }
              (*(code *)PTR_close_000332c0)(uVar10);
            }
LAB_0001a4d0:
            uVar7 = param_1[0xc];
            if (*(short *)(iVar12 + 0x3c) == 2) goto LAB_0001a50c;
          }
          if (*(int *)(iVar12 + 0x20) == 0) {
            *(undefined2 *)(iVar12 + 0x3c) = 6;
            FUN_00018f84(uVar7,param_1 + 0xe,iVar12);
            uVar7 = param_1[0xc];
          }
          else {
            *(undefined2 *)(iVar12 + 0x3c) = 7;
          }
LAB_0001a50c:
          if ((uVar7 & 0x4000) == 0) {
            return iVar12;
          }
          return 0;
        }
        goto LAB_0001a898;
      }
      *param_1 = iVar12;
      (*(code *)puVar3)(iVar5);
      if (*(int *)(iVar12 + 0x30) == 0) {
        iVar5 = FUN_00018728(param_1);
        if (iVar5 != 0) {
          param_1[0xc] = param_1[0xc] | 0x4000;
          return 0;
        }
        if ((param_1[0xc] & 0x102U) == 0) {
          (*(code *)PTR_free_000333cc)();
        }
        else if (param_1[0xe] != 0) {
          hash_free();
        }
        puVar3 = PTR_memmove_000333d0;
        iVar8 = iVar12 + 0xe8;
        iVar5 = param_1[6];
        *(int *)(iVar12 + 0x28) = *(int *)(iVar12 + 0x34);
        (*(code *)puVar3)(iVar5,iVar8,*(int *)(iVar12 + 0x34) + 1);
        iVar5 = (*(code *)PTR_strrchr_00033308)(iVar8,0x2f);
        if ((iVar5 != 0) && ((iVar8 != iVar5 || (*(char *)(iVar12 + 0xe9) != '\0')))) {
          iVar11 = (*(code *)PTR_strlen_00033354)(iVar5 + 1);
          (*(code *)PTR_memmove_000333d0)(iVar8,iVar5 + 1,iVar11 + 1);
          *(int *)(iVar12 + 0x34) = iVar11;
        }
        iVar5 = param_1[6];
        iVar8 = param_1[0xc];
        *(int *)(iVar12 + 0x1c) = iVar5;
        *(int *)(iVar12 + 0x18) = iVar5;
        FUN_00018abc(iVar8,param_1 + 0xe);
        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);
        goto LAB_0001a7d8;
      }
      iVar5 = iVar12;
    } while (*(short *)(iVar12 + 0x40) == 4);
    if (*(short *)(iVar12 + 0x40) == 2) {
      iVar5 = FUN_000187c0(param_1[8],param_1 + 0xc,iVar12,1);
      *(short *)(iVar12 + 0x3c) = (short)iVar5;
      if ((iVar5 == 1) && ((param_1[0xc] & 4U) == 0)) {
        iVar5 = FUN_00018b70(param_1[8],param_1[0xc],PTR_fdopendir_00033108 + 0x1d74);
        *(int *)(iVar12 + 0x24) = iVar5;
        if (iVar5 < 0) {
          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
          uVar10 = *puVar4;
          *(undefined2 *)(iVar12 + 0x3c) = 7;
          *(undefined4 *)(iVar12 + 0x20) = uVar10;
          *(undefined2 *)(iVar12 + 0x40) = 3;
        }
        else {
          *(ushort *)(iVar12 + 0x3e) = *(ushort *)(iVar12 + 0x3e) | 2;
          *(undefined2 *)(iVar12 + 0x40) = 3;
        }
      }
      else {
        *(undefined2 *)(iVar12 + 0x40) = 3;
      }
    }
LAB_0001a788:
    puVar3 = PTR_memmove_000333d0;
    iVar8 = param_1[6];
    iVar11 = *(int *)(*(int *)(iVar12 + 4) + 0x28);
    iVar5 = iVar11 + -1;
    if (*(char *)(*(int *)(*(int *)(iVar12 + 4) + 0x1c) + iVar5) != '/') {
      iVar5 = iVar11;
    }
    *(undefined1 *)(iVar8 + iVar5) = 0x2f;
    (*(code *)puVar3)((undefined1 *)(iVar8 + iVar5) + 1,iVar12 + 0xe8,*(int *)(iVar12 + 0x34) + 1);
    uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);
LAB_0001a7d8:
    *param_1 = iVar12;
    if (uVar7 != 0xb) {
LAB_0001a7e4:
      if (uVar7 != 1) {
        return iVar12;
      }
      goto LAB_0001a7f0;
    }
LAB_0001a888:
    if (*(int *)(iVar12 + 0x80) != 0) {
LAB_0001a898:
      iVar12 = (*(code *)PTR_abort_000332d0)();
      return iVar12;
    }
    if (*(int *)(iVar12 + 0x84) != 2) {
      if (*(int *)(iVar12 + 0x84) == 1) {
        return iVar12;
      }
      goto LAB_0001a898;
    }
    iVar8 = *(int *)(iVar12 + 4);
    iVar5 = param_1[8];
    if ((*(int *)(iVar8 + 0x38) == 0) && ((param_1[0xc] & 0x18U) == 0x18)) {
      iVar5 = FUN_000185a4(iVar8,iVar5);
      if (iVar5 == 2) {
        uVar7 = (uint)*(ushort *)(iVar12 + 0x3c);
        goto LAB_0001a7e4;
      }
      iVar5 = param_1[8];
    }
    uVar7 = FUN_000187c0(iVar5,param_1 + 0xc,iVar12,0);
    *(short *)(iVar12 + 0x3c) = (short)uVar7;
    if ((*(uint *)(iVar12 + 0x60) & 0xf000) != 0x4000) goto LAB_0001a7e4;
    if (*(int *)(iVar12 + 0x30) != 0) {
      uVar9 = *(int *)(iVar8 + 0x38) - 1;
      if (uVar9 < 0xfffffffe) {
        *(uint *)(iVar8 + 0x38) = uVar9;
      }
      if (uVar7 != 1) {
        return iVar12;
      }
      goto LAB_0001a800;
    }
    if (uVar7 != 1) {
      return iVar12;
    }
  }
  iVar5 = *(int *)(iVar12 + 0x48);
  param_1[4] = 0;
  param_1[5] = iVar5;
LAB_0001a800:
  iVar5 = FUN_00018e50(param_1[0xc],param_1 + 0xe,iVar12);
  if (iVar5 == 0) {
    iVar12 = 0;
    puVar4 = (undefined4 *)(*(code *)PTR___errno_location_00033330)();
    *puVar4 = 0xc;
  }
  return iVar12;
}

