
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

RM_status rm(char **file,rm_options *x)

{
  ushort uVar1;
  dev_ino *pdVar2;
  _ftsent *p_Var3;
  bool bVar4;
  FTS *sp;
  FTSENT *ent;
  RM_status RVar5;
  DIR *__dirp;
  dirent64 *pdVar6;
  char *pcVar7;
  int *piVar8;
  int iVar9;
  undefined4 uVar10;
  char *pcVar11;
  char *pcVar12;
  undefined4 uVar13;
  RM_status RVar14;
  byte *pbVar15;
  byte *pbVar16;
  int in_GS_OFFSET;
  bool bVar17;
  bool bVar18;
  bool bVar19;
  byte bVar20;
  Ternary is_empty_directory;
  int local_7c;
  int local_20;
  undefined4 uStack_14;
  
  bVar20 = 0;
  uStack_14 = 0x13919;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (*file == (char *)0x0) {
    RVar14 = RM_OK;
  }
  else {
    RVar14 = RM_OK;
    sp = xfts_open(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,
                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0);
LAB_00013980:
    ent = fts_read(sp);
    if (ent != (FTSENT *)0x0) {
      uVar1 = ent->fts_info;
      switch(uVar1) {
      default:
        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);
        uVar1 = ent->fts_info;
        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);
        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");
                    /* WARNING: Subroutine does not return */
        abort();
      case 1:
        if (x->recursive == false) {
          if (x->remove_empty_directories == false) {
LAB_00013d50:
            uVar13 = 0x15;
          }
          else {
            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);
            if (-1 < iVar9) {
              __dirp = fdopendir(iVar9);
              if (__dirp == (DIR *)0x0) {
                close(iVar9);
              }
              else {
                piVar8 = __errno_location();
                *piVar8 = 0;
                do {
                  pdVar6 = readdir64(__dirp);
                  if (pdVar6 == (dirent64 *)0x0) {
                    iVar9 = *piVar8;
                    closedir(__dirp);
                    if (iVar9 != 0) goto LAB_00013b61;
                    goto LAB_00013ba0;
                  }
                } while ((pdVar6->d_name[0] == '.') &&
                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||
                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));
                closedir(__dirp);
              }
            }
LAB_00013b61:
            if (x->remove_empty_directories == false) goto LAB_00013d50;
            uVar13 = 0x27;
          }
          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);
          uVar10 = dcgettext(0,"cannot remove %s",5);
          error(0,uVar13,uVar10,pcVar12);
          p_Var3 = ent->fts_parent;
          iVar9 = p_Var3->fts_level;
          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {
            p_Var3->fts_number = 1;
            p_Var3 = p_Var3->fts_parent;
            iVar9 = p_Var3->fts_level;
          }
        }
        else {
LAB_00013ba0:
          if (ent->fts_level != 0) {
LAB_00013c01:
            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);
            if (RVar5 == RM_OK) {
              if (is_empty_directory != T_YES) goto LAB_00013980;
              RVar5 = excise(sp,ent,x,true);
              fts_set(sp,ent,4);
              fts_read(sp);
              if (RVar5 == RM_OK) goto LAB_00013980;
            }
            p_Var3 = ent->fts_parent;
            iVar9 = p_Var3->fts_level;
            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {
              p_Var3->fts_number = 1;
              p_Var3 = p_Var3->fts_parent;
              iVar9 = p_Var3->fts_level;
            }
            fts_set(sp,ent,4);
            fts_read(sp);
            goto LAB_00013a75;
          }
          pcVar12 = ent->fts_accpath;
          pcVar7 = last_component(pcVar12);
          if ((*pcVar7 == '.') &&
             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))
          {
            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);
            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");
            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");
            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);
            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);
          }
          else {
            pdVar2 = x->root_dev_ino;
            if ((pdVar2 != (dev_ino *)0x0) &&
               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)
                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {
              bVar17 = false;
              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==
                       *(int *)((int)&pdVar2->st_dev + 4);
              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;
              bVar19 = bVar18 && bVar4;
              if (bVar18 && bVar4) {
                iVar9 = 2;
                pbVar15 = (byte *)ent->fts_path;
                pbVar16 = &DAT_0001dff2;
                do {
                  if (iVar9 == 0) break;
                  iVar9 = iVar9 + -1;
                  bVar17 = *pbVar15 < *pbVar16;
                  bVar19 = *pbVar15 == *pbVar16;
                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
                } while (bVar19);
                if ((!bVar17 && !bVar19) == bVar17) {
                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);
                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);
                  error(0,0,uVar13,pcVar12);
                }
                else {
                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");
                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);
                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5
                                    );
                  error(0,0,uVar13,pcVar7,pcVar12);
                }
                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);
                error(0,0,uVar13);
                goto LAB_00013dab;
              }
            }
            if (x->preserve_all_root == false) goto LAB_00013c01;
            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);
            if ((pcVar12 == (char *)0x0) ||
               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {
              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);
              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);
              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);
              error(0,0,uVar13,pcVar11,pcVar7);
              free(pcVar12);
            }
            else {
              free(pcVar12);
              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&
                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;
              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);
              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);
              error(0,0,uVar13,pcVar12);
              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);
              error(0,0,uVar13);
            }
          }
        }
LAB_00013dab:
        fts_set(sp,ent,4);
        RVar14 = RM_ERROR;
        fts_read(sp);
        goto LAB_00013980;
      case 2:
        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);
        uVar13 = dcgettext(0,
                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"
                           ,5);
        iVar9 = 0;
        break;
      case 3:
      case 4:
      case 6:
      case 8:
      case 10:
      case 0xb:
      case 0xc:
      case 0xd:
        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&
           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||
            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {
          p_Var3 = ent->fts_parent;
          iVar9 = p_Var3->fts_level;
          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {
            p_Var3->fts_number = 1;
            p_Var3 = p_Var3->fts_parent;
            iVar9 = p_Var3->fts_level;
          }
          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);
          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);
          RVar14 = RM_ERROR;
          error(0,0,uVar13,pcVar12);
        }
        else {
          bVar18 = (uVar1 & 0xfffd) == 4;
          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);
          if (RVar5 == RM_OK) {
            RVar5 = excise(sp,ent,x,bVar18);
          }
LAB_00013a75:
          if (2 < RVar5 - RM_OK) {
                    /* WARNING: Subroutine does not return */
            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");
          }
          if (RVar5 == RM_ERROR) {
            RVar14 = RM_ERROR;
          }
          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {
            RVar14 = RM_USER_DECLINED;
          }
        }
        goto LAB_00013980;
      case 7:
        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);
        uVar13 = dcgettext(0,"traversal failed: %s",5);
        iVar9 = ent->fts_errno;
      }
      RVar14 = RM_ERROR;
      error(0,iVar9,uVar13,pcVar12);
      fts_set(sp,ent,4);
      fts_read(sp);
      goto LAB_00013980;
    }
    piVar8 = __errno_location();
    if (*piVar8 != 0) {
      RVar14 = RM_ERROR;
      uVar13 = dcgettext(0,"fts_read failed",5);
      error(0,*piVar8,uVar13);
    }
    iVar9 = fts_close(sp);
    if (iVar9 != 0) {
      RVar14 = RM_ERROR;
      uVar13 = dcgettext(0,"fts_close failed",5);
      error(0,*piVar8,uVar13);
    }
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return RVar14;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int FUN_00013910(int *param_1,int param_2)

{
  ushort uVar1;
  undefined2 uVar2;
  int iVar3;
  int iVar4;
  bool bVar5;
  bool bVar6;
  int iVar7;
  int iVar8;
  undefined4 uVar9;
  int iVar10;
  DIR *__dirp;
  dirent64 *pdVar11;
  char *pcVar12;
  int *piVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  int iVar17;
  byte *pbVar18;
  byte *pbVar19;
  int in_GS_OFFSET;
  bool bVar20;
  bool bVar21;
  byte bVar22;
  stat64 sStack_80;
  int local_20;
  undefined4 uStack_14;
  
  bVar22 = 0;
  uStack_14 = 0x13919;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (*param_1 == 0) {
    iVar17 = 2;
  }
  else {
    iVar17 = 2;
    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);
code_r0x00013980:
    iVar8 = fts_read(iVar7);
    if (iVar8 != 0) {
      uVar1 = *(ushort *)(iVar8 + 0x3c);
      switch(uVar1) {
      default:
        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));
        uVar2 = *(undefined2 *)(iVar8 + 0x3c);
        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);
        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");
                    /* WARNING: Subroutine does not return */
        abort();
      case 1:
        if (*(char *)(param_2 + 9) == '\0') {
          if (*(char *)(param_2 + 10) == '\0') {
code_r0x00013d50:
            uVar15 = 0x15;
          }
          else {
            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);
            if (-1 < iVar10) {
              __dirp = fdopendir(iVar10);
              if (__dirp == (DIR *)0x0) {
                close(iVar10);
              }
              else {
                piVar13 = __errno_location();
                *piVar13 = 0;
                do {
                  pdVar11 = readdir64(__dirp);
                  if (pdVar11 == (dirent64 *)0x0) {
                    iVar10 = *piVar13;
                    closedir(__dirp);
                    if (iVar10 != 0) goto code_r0x00013b61;
                    goto code_r0x00013ba0;
                  }
                } while ((pdVar11->d_name[0] == '.') &&
                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||
                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));
                closedir(__dirp);
              }
            }
code_r0x00013b61:
            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;
            uVar15 = 0x27;
          }
          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));
          uVar9 = dcgettext(0,"cannot remove %s",5);
          error(0,uVar15,uVar9,uVar16);
          iVar17 = *(int *)(iVar8 + 4);
          iVar10 = *(int *)(iVar17 + 0x30);
          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {
            *(undefined4 *)(iVar17 + 0x10) = 1;
            iVar17 = *(int *)(iVar17 + 4);
            iVar10 = *(int *)(iVar17 + 0x30);
          }
        }
        else {
code_r0x00013ba0:
          if (*(int *)(iVar8 + 0x30) != 0) {
code_r0x00013c01:
            iVar10 = FUN_00013400(param_2,2,&sStack_80);
            if (iVar10 == 2) {
              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;
              iVar10 = FUN_00013130(1);
              fts_set(iVar7,iVar8,4);
              fts_read(iVar7);
              if (iVar10 == 2) goto code_r0x00013980;
            }
            iVar3 = *(int *)(iVar8 + 4);
            iVar4 = *(int *)(iVar3 + 0x30);
            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {
              *(undefined4 *)(iVar3 + 0x10) = 1;
              iVar3 = *(int *)(iVar3 + 4);
              iVar4 = *(int *)(iVar3 + 0x30);
            }
            fts_set(iVar7,iVar8,4);
            fts_read(iVar7);
            goto code_r0x00013a75;
          }
          uVar15 = *(undefined4 *)(iVar8 + 0x18);
          pcVar12 = (char *)FUN_000147f0(uVar15);
          if ((*pcVar12 == '.') &&
             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')
              ))) {
            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));
            uVar16 = FUN_00016590(1,4,&DAT_0001db66);
            uVar9 = FUN_00016590(0,4,&DAT_0001db67);
            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);
            error(0,0,uVar14,uVar9,uVar16,uVar15);
          }
          else {
            piVar13 = *(int **)(param_2 + 0xc);
            if ((piVar13 != (int *)0x0) &&
               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {
              bVar20 = false;
              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];
              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];
              bVar21 = bVar5 && bVar6;
              if (bVar5 && bVar6) {
                iVar17 = 2;
                pbVar18 = *(byte **)(iVar8 + 0x1c);
                pbVar19 = &DAT_0001dff2;
                do {
                  if (iVar17 == 0) break;
                  iVar17 = iVar17 + -1;
                  bVar20 = *pbVar18 < *pbVar19;
                  bVar21 = *pbVar18 == *pbVar19;
                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;
                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;
                } while (bVar21);
                if ((!bVar20 && !bVar21) == bVar20) {
                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));
                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);
                  error(0,0,uVar16,uVar15);
                }
                else {
                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);
                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));
                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)
                  ;
                  error(0,0,uVar9,uVar16,uVar15);
                }
                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);
                error(0,0,uVar15);
                goto code_r0x00013dab;
              }
            }
            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;
            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);
            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)
               ) {
              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));
              uVar16 = FUN_00016590(0,4,pcVar12);
              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);
              error(0,0,uVar9,uVar16,uVar15);
              free(pcVar12);
            }
            else {
              free(pcVar12);
              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&
                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;
              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));
              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);
              error(0,0,uVar16,uVar15);
              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);
              error(0,0,uVar15);
            }
          }
        }
code_r0x00013dab:
        fts_set(iVar7,iVar8,4);
        iVar17 = 4;
        fts_read(iVar7);
        goto code_r0x00013980;
      case 2:
        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));
        uVar9 = dcgettext(0,
                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"
                          ,5);
        uVar15 = 0;
        break;
      case 3:
      case 4:
      case 6:
      case 8:
      case 10:
      case 0xb:
      case 0xc:
      case 0xd:
        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&
           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||
            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {
          iVar17 = *(int *)(iVar8 + 4);
          iVar10 = *(int *)(iVar17 + 0x30);
          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {
            *(undefined4 *)(iVar17 + 0x10) = 1;
            iVar17 = *(int *)(iVar17 + 4);
            iVar10 = *(int *)(iVar17 + 0x30);
          }
          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));
          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);
          iVar17 = 4;
          error(0,0,uVar16,uVar15);
        }
        else {
          iVar10 = FUN_00013400(param_2,3,0);
          if (iVar10 == 2) {
            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);
          }
code_r0x00013a75:
          if (2 < iVar10 - 2U) {
                    /* WARNING: Subroutine does not return */
            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");
          }
          if (iVar10 == 4) {
            iVar17 = 4;
          }
          else if ((iVar10 == 3) && (iVar17 == 2)) {
            iVar17 = 3;
          }
        }
        goto code_r0x00013980;
      case 7:
        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));
        uVar9 = dcgettext(0,"traversal failed: %s",5);
        uVar15 = *(undefined4 *)(iVar8 + 0x20);
      }
      iVar17 = 4;
      error(0,uVar15,uVar9,uVar16);
      fts_set(iVar7,iVar8,4);
      fts_read(iVar7);
      goto code_r0x00013980;
    }
    piVar13 = __errno_location();
    if (*piVar13 != 0) {
      iVar17 = 4;
      uVar15 = dcgettext(0,"fts_read failed",5);
      error(0,*piVar13,uVar15);
    }
    iVar7 = fts_close(iVar7);
    if (iVar7 != 0) {
      iVar17 = 4;
      uVar15 = dcgettext(0,"fts_close failed",5);
      error(0,*piVar13,uVar15);
    }
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar17;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0001c5a0();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00012c30
ADD EBX,0x116e7
SUB ESP,0x8c
MOV EAX,dword ptr [ESP + 0xa4]
MOV EDX,dword ptr [ESP + 0xa0]
MOV dword ptr [ESP + 0x4],EAX
MOV ECX,dword ptr [EDX]
MOV ESI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x7c],ESI
XOR ESI,ESI
TEST ECX,ECX
JZ 0x000140c8
CMP byte ptr [EAX + 0x8],0x1
MOV ESI,0x2
SBB EAX,EAX
SUB ESP,0x4
AND EAX,0xffffffc0
PUSH 0x0
ADD EAX,0x258
PUSH EAX
PUSH EDX
CALL 0x00017550
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
LEA EAX,[EBX + 0xffff8b69]
MOV dword ptr [ESP + 0x8],EAX
NOP
SUB ESP,0xc
PUSH dword ptr [ESP + 0xc]
CALL 0x000194f0
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00013cb0
MOVZX EAX,word ptr [EAX + 0x3c]
CMP AX,0xd
JA 0x00014116
MOVZX EDX,AX
MOV ECX,dword ptr [EBX + EDX*0x4 + 0xffff8e78]
ADD ECX,EBX
JMP ECX
CALL 0x000122c0
MOV EBP,dword ptr [EAX]
MOV EDI,EAX
TEST EBP,EBP
JNZ 0x00014030
SUB ESP,0xc
PUSH dword ptr [ESP + 0xc]
CALL 0x00019340
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000140d8
MOV EAX,ESI
MOV ESI,dword ptr [ESP + 0x7c]
XOR ESI,dword ptr GS:[0x14]
JNZ 0x000141c3
ADD ESP,0x8c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xffff8b56]
MOV ESI,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00012110
ADD ESP,0xc
PUSH EAX
PUSH dword ptr [EDI]
PUSH 0x0
CALL 0x000121e0
ADD ESP,0x10
JMP 0x00013cc1
MOV ESI,0x2
JMP 0x00013cd8
SUB ESP,0x4
LEA EAX,[EBX + 0xffff8bb2]
MOV ESI,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00012110
ADD ESP,0xc
PUSH EAX
PUSH dword ptr [EDI]
PUSH 0x0
CALL 0x000121e0
ADD ESP,0x10
JMP 0x00013cd8
SUB ESP,0x4
PUSH dword ptr [EBP + 0x1c]
PUSH 0x3
PUSH 0x0
CALL 0x000168d0
ADD ESP,0xc
MOVZX ESI,word ptr [EBP + 0x3c]
MOV EDI,EAX
LEA EAX,[EBX + 0xffff8e18]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00012110
POP EDX
LEA EDX,[EBX + 0xffff8b7e]
POP ECX
PUSH EDX
PUSH EDI
PUSH ESI
PUSH EAX
PUSH 0x0
PUSH 0x0
CALL 0x000121e0
ADD ESP,0x20
CALL 0x00012410
CALL 0x0001c5a0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_00013910(int *param_1,int param_2)\n\n{\n  ushort uVar1;\n  undefined2 uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  DIR *__dirp;\n  dirent64 *pdVar11;\n  char *pcVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  stat64 sStack_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0001c5a0();\n}\n\n" comment (function_definition "int FUN_00013910(int *param_1,int param_2)\n\n{\n  ushort uVar1;\n  undefined2 uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  DIR *__dirp;\n  dirent64 *pdVar11;\n  char *pcVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  stat64 sStack_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0001c5a0();\n}" primitive_type (function_declarator "FUN_00013910(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  undefined2 uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  DIR *__dirp;\n  dirent64 *pdVar11;\n  char *pcVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  stat64 sStack_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0001c5a0();\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined2 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "dirent64 *pdVar11;" type_identifier (pointer_declarator "*pdVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "stat64 sStack_80;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x13919;" (assignment_expression "uStack_14 = 0x13919" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    iVar17 = 2;\n  }" { (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) }) (else_clause "else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }" else (compound_statement "{\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }" { (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) (expression_statement "iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);" (assignment_expression "iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0)" identifier = (call_expression "FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0)" identifier (argument_list "(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0)" ( identifier , (binary_expression "(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600" (parenthesized_expression "(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0)" ( (binary_expression "-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0" (unary_expression "-(uint)(*(char *)(param_2 + 8) == '\0')" - (call_expression "(uint)(*(char *)(param_2 + 8) == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(char *)(param_2 + 8) == '\0')" ( (binary_expression "*(char *)(param_2 + 8) == '\0'" (pointer_expression "*(char *)(param_2 + 8)" * (cast_expression "(char *)(param_2 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )))) & number_literal) )) + number_literal) , number_literal )))) ;) (labeled_statement "code_r0x00013980:\n    iVar8 = fts_read(iVar7);" statement_identifier : (expression_statement "iVar8 = fts_read(iVar7);" (assignment_expression "iVar8 = fts_read(iVar7)" identifier = (call_expression "fts_read(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;)) (if_statement "if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }" { (expression_statement "uVar1 = *(ushort *)(iVar8 + 0x3c);" (assignment_expression "uVar1 = *(ushort *)(iVar8 + 0x3c)" identifier = (pointer_expression "*(ushort *)(iVar8 + 0x3c)" * (cast_expression "(ushort *)(iVar8 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3c)" ( (binary_expression "iVar8 + 0x3c" identifier + number_literal) ))))) ;) (switch_statement "switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }" switch (parenthesized_expression "(uVar1)" ( identifier )) (compound_statement "{\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }" { (case_statement "default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();" default : (expression_statement "uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(0,3,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar2 = *(undefined2 *)(iVar8 + 0x3c);" (assignment_expression "uVar2 = *(undefined2 *)(iVar8 + 0x3c)" identifier = (pointer_expression "*(undefined2 *)(iVar8 + 0x3c)" * (cast_expression "(undefined2 *)(iVar8 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3c)" ( (binary_expression "iVar8 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);" (assignment_expression "uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" identifier = (call_expression "dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" identifier (argument_list "(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" ( number_literal , (string_literal ""unexpected failure: fts_info=%d: %s\nplease report to %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");" (call_expression "error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org")" identifier (argument_list "(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org")" ( number_literal , number_literal , identifier , identifier , identifier , (string_literal ""bug-coreutils@gnu.org"" " string_content ") ))) ;) comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;" case number_literal : (if_statement "if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }" if (parenthesized_expression "(*(char *)(param_2 + 9) == '\0')" ( (binary_expression "*(char *)(param_2 + 9) == '\0'" (pointer_expression "*(char *)(param_2 + 9)" * (cast_expression "(char *)(param_2 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 9)" ( (binary_expression "param_2 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }" { (if_statement "if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }" if (parenthesized_expression "(*(char *)(param_2 + 10) == '\0')" ( (binary_expression "*(char *)(param_2 + 10) == '\0'" (pointer_expression "*(char *)(param_2 + 10)" * (cast_expression "(char *)(param_2 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }" { (labeled_statement "code_r0x00013d50:\n            uVar15 = 0x15;" statement_identifier : (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" identifier = number_literal) ;)) }) (else_clause "else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }" else (compound_statement "{\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }" { (expression_statement "iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);" (assignment_expression "iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900)" identifier = (call_expression "openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900)" identifier (argument_list "(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900)" ( (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) , (pointer_expression "*(char **)(iVar8 + 0x18)" * (cast_expression "(char **)(iVar8 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (compound_statement "{\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }" { (expression_statement "__dirp = fdopendir(iVar10);" (assignment_expression "__dirp = fdopendir(iVar10)" identifier = (call_expression "fdopendir(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" if (parenthesized_expression "(__dirp == (DIR *)0x0)" ( (binary_expression "__dirp == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                close(iVar10);\n              }" { (expression_statement "close(iVar10);" (call_expression "close(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) }) (else_clause "else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" else (compound_statement "{\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" { (expression_statement "piVar13 = __errno_location();" (assignment_expression "piVar13 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar13 = 0;" (assignment_expression "*piVar13 = 0" (pointer_expression "*piVar13" * identifier) = number_literal) ;) (do_statement "do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));" do (compound_statement "{\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                }" { (expression_statement "pdVar11 = readdir64(__dirp);" (assignment_expression "pdVar11 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }" if (parenthesized_expression "(pdVar11 == (dirent64 *)0x0)" ( (binary_expression "pdVar11 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }" { (expression_statement "iVar10 = *piVar13;" (assignment_expression "iVar10 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) (if_statement "if (iVar10 != 0) goto code_r0x00013b61;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00013b61;" goto statement_identifier ;)) (goto_statement "goto code_r0x00013ba0;" goto statement_identifier ;) })) }) while (parenthesized_expression "((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))))" ( (binary_expression "(pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')))" (parenthesized_expression "(pdVar11->d_name[0] == '.')" ( (binary_expression "pdVar11->d_name[0] == '.'" (subscript_expression "pdVar11->d_name[0]" (field_expression "pdVar11->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')))" ( (parenthesized_expression "(pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))" ( (binary_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')" (binary_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0'" (subscript_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1]" (field_expression "pdVar11->d_name" identifier -> field_identifier) [ (binary_expression "(pdVar11->d_name[1] == '.') + 1" (parenthesized_expression "(pdVar11->d_name[1] == '.')" ( (binary_expression "pdVar11->d_name[1] == '.'" (subscript_expression "pdVar11->d_name[1]" (field_expression "pdVar11->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')" ( (binary_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'" (subscript_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1]" (field_expression "pdVar11->d_name" identifier -> field_identifier) [ (binary_expression "(pdVar11->d_name[1] == '.') + 1" (parenthesized_expression "(pdVar11->d_name[1] == '.')" ( (binary_expression "pdVar11->d_name[1] == '.'" (subscript_expression "pdVar11->d_name[1]" (field_expression "pdVar11->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'/'" ' character ')) ))) )) ))) )) ;) (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) }))) })) (labeled_statement "code_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;" statement_identifier : (if_statement "if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;" if (parenthesized_expression "(*(char *)(param_2 + 10) == '\0')" ( (binary_expression "*(char *)(param_2 + 10) == '\0'" (pointer_expression "*(char *)(param_2 + 10)" * (cast_expression "(char *)(param_2 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00013d50;" goto statement_identifier ;))) (expression_statement "uVar15 = 0x27;" (assignment_expression "uVar15 = 0x27" identifier = number_literal) ;) }))) (expression_statement "uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(4,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar9 = dcgettext(0,"cannot remove %s",5);" (assignment_expression "uVar9 = dcgettext(0,"cannot remove %s",5)" identifier = (call_expression "dcgettext(0,"cannot remove %s",5)" identifier (argument_list "(0,"cannot remove %s",5)" ( number_literal , (string_literal ""cannot remove %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,uVar15,uVar9,uVar16);" (call_expression "error(0,uVar15,uVar9,uVar16)" identifier (argument_list "(0,uVar15,uVar9,uVar16)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "iVar17 = *(int *)(iVar8 + 4);" (assignment_expression "iVar17 = *(int *)(iVar8 + 4)" identifier = (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" identifier = (pointer_expression "*(int *)(iVar17 + 0x30)" * (cast_expression "(int *)(iVar17 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) ))))) ;) (while_statement "while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" while (parenthesized_expression "((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)))" ( (parenthesized_expression "(-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))" ( (binary_expression "-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)" (binary_expression "-1 < iVar10" number_literal < identifier) && (parenthesized_expression "(*(int *)(iVar17 + 0x10) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x10) == 0" (pointer_expression "*(int *)(iVar17 + 0x10)" * (cast_expression "(int *)(iVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) == number_literal) ))) )) )) (compound_statement "{\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" { (expression_statement "*(undefined4 *)(iVar17 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar17 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar17 + 0x10)" * (cast_expression "(undefined4 *)(iVar17 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = *(int *)(iVar17 + 4);" (assignment_expression "iVar17 = *(int *)(iVar17 + 4)" identifier = (pointer_expression "*(int *)(iVar17 + 4)" * (cast_expression "(int *)(iVar17 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" identifier = (pointer_expression "*(int *)(iVar17 + 0x30)" * (cast_expression "(int *)(iVar17 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }" else (compound_statement "{\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }" { (labeled_statement "code_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }" statement_identifier : (if_statement "if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }" if (parenthesized_expression "(*(int *)(iVar8 + 0x30) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x30) != 0" (pointer_expression "*(int *)(iVar8 + 0x30)" * (cast_expression "(int *)(iVar8 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x30)" ( (binary_expression "iVar8 + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }" { (labeled_statement "code_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);" statement_identifier : (expression_statement "iVar10 = FUN_00013400(param_2,2,&sStack_80);" (assignment_expression "iVar10 = FUN_00013400(param_2,2,&sStack_80)" identifier = (call_expression "FUN_00013400(param_2,2,&sStack_80)" identifier (argument_list "(param_2,2,&sStack_80)" ( identifier , number_literal , (pointer_expression "&sStack_80" & identifier) )))) ;)) (if_statement "if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }" { (if_statement "if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;" if (parenthesized_expression "((int)sStack_80.st_dev != 4)" ( (binary_expression "(int)sStack_80.st_dev != 4" (cast_expression "(int)sStack_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "sStack_80.st_dev" identifier . field_identifier)) != number_literal) )) (goto_statement "goto code_r0x00013980;" goto statement_identifier ;)) (expression_statement "iVar10 = FUN_00013130(1);" (assignment_expression "iVar10 = FUN_00013130(1)" identifier = (call_expression "FUN_00013130(1)" identifier (argument_list "(1)" ( number_literal )))) ;) (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" identifier (argument_list "(iVar7,iVar8,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (if_statement "if (iVar10 == 2) goto code_r0x00013980;" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (goto_statement "goto code_r0x00013980;" goto statement_identifier ;)) })) (expression_statement "iVar3 = *(int *)(iVar8 + 4);" (assignment_expression "iVar3 = *(int *)(iVar8 + 4)" identifier = (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar3 + 0x30);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x30)" identifier = (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) (while_statement "while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }" while (parenthesized_expression "((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0)))" ( (parenthesized_expression "(-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))" ( (binary_expression "-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0)" (binary_expression "-1 < iVar4" number_literal < identifier) && (parenthesized_expression "(*(int *)(iVar3 + 0x10) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x10) == 0" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) == number_literal) ))) )) )) (compound_statement "{\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }" { (expression_statement "*(undefined4 *)(iVar3 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar3 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = *(int *)(iVar3 + 4);" (assignment_expression "iVar3 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar3 + 0x30);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x30)" identifier = (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) })) (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" identifier (argument_list "(iVar7,iVar8,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (goto_statement "goto code_r0x00013a75;" goto statement_identifier ;) }))) (expression_statement "uVar15 = *(undefined4 *)(iVar8 + 0x18);" (assignment_expression "uVar15 = *(undefined4 *)(iVar8 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = (char *)FUN_000147f0(uVar15);" (assignment_expression "pcVar12 = (char *)FUN_000147f0(uVar15)" identifier = (cast_expression "(char *)FUN_000147f0(uVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000147f0(uVar15)" identifier (argument_list "(uVar15)" ( identifier ))))) ;) (if_statement "if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }" if (parenthesized_expression "((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              )))" ( (binary_expression "(*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))" (parenthesized_expression "(*pcVar12 == '.')" ( (binary_expression "*pcVar12 == '.'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))" ( (parenthesized_expression "(pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              )" ( (binary_expression "pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')" (binary_expression "pcVar12[(pcVar12[1] == '.') + 1] == '\0'" (subscript_expression "pcVar12[(pcVar12[1] == '.') + 1]" identifier [ (binary_expression "(pcVar12[1] == '.') + 1" (parenthesized_expression "(pcVar12[1] == '.')" ( (binary_expression "pcVar12[1] == '.'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar12[(pcVar12[1] == '.') + 1] == '/')" ( (binary_expression "pcVar12[(pcVar12[1] == '.') + 1] == '/'" (subscript_expression "pcVar12[(pcVar12[1] == '.') + 1]" identifier [ (binary_expression "(pcVar12[1] == '.') + 1" (parenthesized_expression "(pcVar12[1] == '.')" ( (binary_expression "pcVar12[1] == '.'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'/'" ' character ')) ))) )) ))) )) (compound_statement "{\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }" { (expression_statement "uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(2,4,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar16 = FUN_00016590(1,4,&DAT_0001db66);" (assignment_expression "uVar16 = FUN_00016590(1,4,&DAT_0001db66)" identifier = (call_expression "FUN_00016590(1,4,&DAT_0001db66)" identifier (argument_list "(1,4,&DAT_0001db66)" ( number_literal , number_literal , (pointer_expression "&DAT_0001db66" & identifier) )))) ;) (expression_statement "uVar9 = FUN_00016590(0,4,&DAT_0001db67);" (assignment_expression "uVar9 = FUN_00016590(0,4,&DAT_0001db67)" identifier = (call_expression "FUN_00016590(0,4,&DAT_0001db67)" identifier (argument_list "(0,4,&DAT_0001db67)" ( number_literal , number_literal , (pointer_expression "&DAT_0001db67" & identifier) )))) ;) (expression_statement "uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);" (assignment_expression "uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5)" identifier = (call_expression "dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5)" identifier (argument_list "(0,"refusing to remove %s or %s directory: skipping %s",5)" ( number_literal , (string_literal ""refusing to remove %s or %s directory: skipping %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar14,uVar9,uVar16,uVar15);" (call_expression "error(0,0,uVar14,uVar9,uVar16,uVar15)" identifier (argument_list "(0,0,uVar14,uVar9,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }" else (compound_statement "{\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }" { (expression_statement "piVar13 = *(int **)(param_2 + 0xc);" (assignment_expression "piVar13 = *(int **)(param_2 + 0xc)" identifier = (pointer_expression "*(int **)(param_2 + 0xc)" * (cast_expression "(int **)(param_2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }" if (parenthesized_expression "((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13))" ( (binary_expression "(piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)" (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)" ( (binary_expression "*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13" (binary_expression "*(int *)(iVar8 + 0xa0) == piVar13[1]" (pointer_expression "*(int *)(iVar8 + 0xa0)" * (cast_expression "(int *)(iVar8 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xa0)" ( (binary_expression "iVar8 + 0xa0" identifier + number_literal) )))) == (subscript_expression "piVar13[1]" identifier [ number_literal ])) && (binary_expression "*(int *)(iVar8 + 0x9c) == *piVar13" (pointer_expression "*(int *)(iVar8 + 0x9c)" * (cast_expression "(int *)(iVar8 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x9c)" ( (binary_expression "iVar8 + 0x9c" identifier + number_literal) )))) == (pointer_expression "*piVar13" * identifier))) ))) )) (compound_statement "{\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }" { (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];" (assignment_expression "bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3]" identifier = (binary_expression "*(int *)(iVar8 + 0x48) == piVar13[3]" (pointer_expression "*(int *)(iVar8 + 0x48)" * (cast_expression "(int *)(iVar8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x48)" ( (binary_expression "iVar8 + 0x48" identifier + number_literal) )))) == (subscript_expression "piVar13[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];" (assignment_expression "bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2]" identifier = (binary_expression "*(int *)(iVar8 + 0x44) == piVar13[2]" (pointer_expression "*(int *)(iVar8 + 0x44)" * (cast_expression "(int *)(iVar8 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x44)" ( (binary_expression "iVar8 + 0x44" identifier + number_literal) )))) == (subscript_expression "piVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "bVar21 = bVar5 && bVar6;" (assignment_expression "bVar21 = bVar5 && bVar6" identifier = (binary_expression "bVar5 && bVar6" identifier && identifier)) ;) (if_statement "if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }" if (parenthesized_expression "(bVar5 && bVar6)" ( (binary_expression "bVar5 && bVar6" identifier && identifier) )) (compound_statement "{\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }" { (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) (expression_statement "pbVar18 = *(byte **)(iVar8 + 0x1c);" (assignment_expression "pbVar18 = *(byte **)(iVar8 + 0x1c)" identifier = (pointer_expression "*(byte **)(iVar8 + 0x1c)" * (cast_expression "(byte **)(iVar8 + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pbVar19 = &DAT_0001dff2;" (assignment_expression "pbVar19 = &DAT_0001dff2" identifier = (pointer_expression "&DAT_0001dff2" & identifier)) ;) (do_statement "do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);" do (compound_statement "{\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar18 < *pbVar19;" (assignment_expression "bVar20 = *pbVar18 < *pbVar19" identifier = (binary_expression "*pbVar18 < *pbVar19" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar21 = *pbVar18 == *pbVar19;" (assignment_expression "bVar21 = *pbVar18 == *pbVar19" identifier = (binary_expression "*pbVar18 == *pbVar19" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar21)" ( identifier )) ;) (if_statement "if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }" if (parenthesized_expression "((!bVar20 && !bVar21) == bVar20)" ( (binary_expression "(!bVar20 && !bVar21) == bVar20" (parenthesized_expression "(!bVar20 && !bVar21)" ( (binary_expression "!bVar20 && !bVar21" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar21" ! identifier)) )) == identifier) )) (compound_statement "{\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }" { (expression_statement "uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016710(4,*(byte **)(iVar8 + 0x1c))" identifier (argument_list "(4,*(byte **)(iVar8 + 0x1c))" ( number_literal , (pointer_expression "*(byte **)(iVar8 + 0x1c)" * (cast_expression "(byte **)(iVar8 + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);" (assignment_expression "uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5)" identifier = (call_expression "dcgettext(0,"it is dangerous to operate recursively on %s",5)" identifier (argument_list "(0,"it is dangerous to operate recursively on %s",5)" ( number_literal , (string_literal ""it is dangerous to operate recursively on %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar16,uVar15);" (call_expression "error(0,0,uVar16,uVar15)" identifier (argument_list "(0,0,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }" else (compound_statement "{\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }" { (expression_statement "uVar15 = FUN_00016590(1,4,&DAT_0001dff2);" (assignment_expression "uVar15 = FUN_00016590(1,4,&DAT_0001dff2)" identifier = (call_expression "FUN_00016590(1,4,&DAT_0001dff2)" identifier (argument_list "(1,4,&DAT_0001dff2)" ( number_literal , number_literal , (pointer_expression "&DAT_0001dff2" & identifier) )))) ;) (expression_statement "uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(0,4,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;" (assignment_expression "uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)" identifier = (call_expression "dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)" identifier (argument_list "(0,"it is dangerous to operate recursively on %s (same as %s)",5)" ( number_literal , (string_literal ""it is dangerous to operate recursively on %s (same as %s)"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar9,uVar16,uVar15);" (call_expression "error(0,0,uVar9,uVar16,uVar15)" identifier (argument_list "(0,0,uVar9,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier , identifier ))) ;) }))) (expression_statement "uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);" (assignment_expression "uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5)" identifier = (call_expression "dcgettext(0,"use --no-preserve-root to override this failsafe",5)" identifier (argument_list "(0,"use --no-preserve-root to override this failsafe",5)" ( number_literal , (string_literal ""use --no-preserve-root to override this failsafe"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar15);" (call_expression "error(0,0,uVar15)" identifier (argument_list "(0,0,uVar15)" ( number_literal , number_literal , identifier ))) ;) (goto_statement "goto code_r0x00013dab;" goto statement_identifier ;) })) })) (if_statement "if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;" if (parenthesized_expression "(*(char *)(param_2 + 0x10) == '\0')" ( (binary_expression "*(char *)(param_2 + 0x10) == '\0'" (pointer_expression "*(char *)(param_2 + 0x10)" * (cast_expression "(char *)(param_2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00013c01;" goto statement_identifier ;)) (expression_statement "pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);" (assignment_expression "pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0)" identifier = (cast_expression "(char *)FUN_00014a10(uVar15,&DAT_0001db66,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014a10(uVar15,&DAT_0001db66,0)" identifier (argument_list "(uVar15,&DAT_0001db66,0)" ( identifier , (pointer_expression "&DAT_0001db66" & identifier) , number_literal ))))) ;) (if_statement "if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }" if (parenthesized_expression "((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               )" ( (binary_expression "(pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)" (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)" ( (comma_expression "iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0" (assignment_expression "iVar10 = __lxstat64(3,pcVar12,&sStack_80)" identifier = (call_expression "__lxstat64(3,pcVar12,&sStack_80)" identifier (argument_list "(3,pcVar12,&sStack_80)" ( number_literal , identifier , (pointer_expression "&sStack_80" & identifier) )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }" { (expression_statement "uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));" (assignment_expression "uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18))" identifier = (call_expression "FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18))" identifier (argument_list "(1,4,*(undefined4 *)(iVar8 + 0x18))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "uVar16 = FUN_00016590(0,4,pcVar12);" (assignment_expression "uVar16 = FUN_00016590(0,4,pcVar12)" identifier = (call_expression "FUN_00016590(0,4,pcVar12)" identifier (argument_list "(0,4,pcVar12)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);" (assignment_expression "uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5)" identifier = (call_expression "dcgettext(0,"failed to stat %s: skipping %s",5)" identifier (argument_list "(0,"failed to stat %s: skipping %s",5)" ( number_literal , (string_literal ""failed to stat %s: skipping %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar9,uVar16,uVar15);" (call_expression "error(0,0,uVar9,uVar16,uVar15)" identifier (argument_list "(0,0,uVar9,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) }) (else_clause "else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }" else (compound_statement "{\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }" { (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) (if_statement "if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;" if (parenthesized_expression "(*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev)" ( (binary_expression "*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev" (binary_expression "*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_" (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) == (field_expression "sStack_80.st_dev._4_4_" (field_expression "sStack_80.st_dev" identifier . field_identifier) . field_identifier)) && (binary_expression "*(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) == (cast_expression "(int)sStack_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "sStack_80.st_dev" identifier . field_identifier)))) )) (goto_statement "goto code_r0x00013c01;" goto statement_identifier ;)) (expression_statement "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(4,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);" (assignment_expression "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier = (call_expression "dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier (argument_list "(0,"skipping %s, since it\'s on a different device",5)" ( number_literal , (string_literal ""skipping %s, since it\'s on a different device"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar16,uVar15);" (call_expression "error(0,0,uVar16,uVar15)" identifier (argument_list "(0,0,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);" (assignment_expression "uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5)" identifier = (call_expression "dcgettext(0,"and --preserve-root=all is in effect",5)" identifier (argument_list "(0,"and --preserve-root=all is in effect",5)" ( number_literal , (string_literal ""and --preserve-root=all is in effect"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar15);" (call_expression "error(0,0,uVar15)" identifier (argument_list "(0,0,uVar15)" ( number_literal , number_literal , identifier ))) ;) }))) }))) }))) (labeled_statement "code_r0x00013dab:\n        fts_set(iVar7,iVar8,4);" statement_identifier : (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" identifier (argument_list "(iVar7,iVar8,4)" ( identifier , identifier , number_literal ))) ;)) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (goto_statement "goto code_r0x00013980;" goto statement_identifier ;)) (case_statement "case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;" case number_literal : (expression_statement "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(0,3,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5)" identifier = (call_expression "dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5)" identifier (argument_list "(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5)" ( number_literal , (string_literal ""WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 6:" case number_literal :) (case_statement "case 8:" case number_literal :) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0xc:" case number_literal :) (case_statement "case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;" case number_literal : (if_statement "if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }" if (parenthesized_expression "((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc)))" ( (binary_expression "(((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))" (parenthesized_expression "(((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30)))" ( (binary_expression "((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))" (parenthesized_expression "((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0'))" ( (binary_expression "(uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')" (parenthesized_expression "(uVar1 == 6)" ( (binary_expression "uVar1 == 6" identifier == number_literal) )) && (parenthesized_expression "(*(char *)(param_2 + 8) != '\0')" ( (binary_expression "*(char *)(param_2 + 8) != '\0'" (pointer_expression "*(char *)(param_2 + 8)" * (cast_expression "(char *)(param_2 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(0 < *(int *)(iVar8 + 0x30))" ( (binary_expression "0 < *(int *)(iVar8 + 0x30)" number_literal < (pointer_expression "*(int *)(iVar8 + 0x30)" * (cast_expression "(int *)(iVar8 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x30)" ( (binary_expression "iVar8 + 0x30" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))" ( (binary_expression "*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc)" (binary_expression "*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10)" (pointer_expression "*(int *)(iVar8 + 0x48)" * (cast_expression "(int *)(iVar8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x48)" ( (binary_expression "iVar8 + 0x48" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) || (binary_expression "*(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc)" (pointer_expression "*(int *)(iVar8 + 0x44)" * (cast_expression "(int *)(iVar8 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x44)" ( (binary_expression "iVar8 + 0x44" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))))) ))) )) (compound_statement "{\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }" { (expression_statement "iVar17 = *(int *)(iVar8 + 4);" (assignment_expression "iVar17 = *(int *)(iVar8 + 4)" identifier = (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" identifier = (pointer_expression "*(int *)(iVar17 + 0x30)" * (cast_expression "(int *)(iVar17 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) ))))) ;) (while_statement "while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" while (parenthesized_expression "((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)))" ( (parenthesized_expression "(-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))" ( (binary_expression "-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)" (binary_expression "-1 < iVar10" number_literal < identifier) && (parenthesized_expression "(*(int *)(iVar17 + 0x10) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x10) == 0" (pointer_expression "*(int *)(iVar17 + 0x10)" * (cast_expression "(int *)(iVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) == number_literal) ))) )) )) (compound_statement "{\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" { (expression_statement "*(undefined4 *)(iVar17 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar17 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar17 + 0x10)" * (cast_expression "(undefined4 *)(iVar17 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = *(int *)(iVar17 + 4);" (assignment_expression "iVar17 = *(int *)(iVar17 + 4)" identifier = (pointer_expression "*(int *)(iVar17 + 4)" * (cast_expression "(int *)(iVar17 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" identifier = (pointer_expression "*(int *)(iVar17 + 0x30)" * (cast_expression "(int *)(iVar17 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) ))))) ;) })) (expression_statement "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(4,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);" (assignment_expression "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier = (call_expression "dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier (argument_list "(0,"skipping %s, since it\'s on a different device",5)" ( number_literal , (string_literal ""skipping %s, since it\'s on a different device"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "error(0,0,uVar16,uVar15);" (call_expression "error(0,0,uVar16,uVar15)" identifier (argument_list "(0,0,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }" else (compound_statement "{\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }" { (expression_statement "iVar10 = FUN_00013400(param_2,3,0);" (assignment_expression "iVar10 = FUN_00013400(param_2,3,0)" identifier = (call_expression "FUN_00013400(param_2,3,0)" identifier (argument_list "(param_2,3,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }" { (expression_statement "iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);" (assignment_expression "iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4)" identifier = (call_expression "FUN_00013130((uVar1 & 0xfffd) == 4)" identifier (argument_list "((uVar1 & 0xfffd) == 4)" ( (binary_expression "(uVar1 & 0xfffd) == 4" (parenthesized_expression "(uVar1 & 0xfffd)" ( (binary_expression "uVar1 & 0xfffd" identifier & number_literal) )) == number_literal) )))) ;) })) (labeled_statement "code_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" statement_identifier : (if_statement "if (2 < iVar10 - 2U) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" if (parenthesized_expression "(2 < iVar10 - 2U)" ( (binary_expression "2 < iVar10 - 2U" number_literal < (binary_expression "iVar10 - 2U" identifier - number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" { comment (expression_statement "__assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");" (call_expression "__assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm")" identifier (argument_list "("VALID_STATUS (s)","src/remove.c",0x261,"rm")" ( (string_literal ""VALID_STATUS (s)"" " string_content ") , (string_literal ""src/remove.c"" " string_content ") , number_literal , (string_literal ""rm"" " string_content ") ))) ;) }))) (if_statement "if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }" if (parenthesized_expression "(iVar10 == 4)" ( (binary_expression "iVar10 == 4" identifier == number_literal) )) (compound_statement "{\n            iVar17 = 4;\n          }" { (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) }) (else_clause "else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }" else (if_statement "if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }" if (parenthesized_expression "((iVar10 == 3) && (iVar17 == 2))" ( (binary_expression "(iVar10 == 3) && (iVar17 == 2)" (parenthesized_expression "(iVar10 == 3)" ( (binary_expression "iVar10 == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar17 == 2)" ( (binary_expression "iVar17 == 2" identifier == number_literal) ))) )) (compound_statement "{\n            iVar17 = 3;\n          }" { (expression_statement "iVar17 = 3;" (assignment_expression "iVar17 = 3" identifier = number_literal) ;) })))) }))) (goto_statement "goto code_r0x00013980;" goto statement_identifier ;)) (case_statement "case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);" case number_literal : (expression_statement "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(0,3,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar9 = dcgettext(0,"traversal failed: %s",5);" (assignment_expression "uVar9 = dcgettext(0,"traversal failed: %s",5)" identifier = (call_expression "dcgettext(0,"traversal failed: %s",5)" identifier (argument_list "(0,"traversal failed: %s",5)" ( number_literal , (string_literal ""traversal failed: %s"" " string_content ") , number_literal )))) ;) (expression_statement "uVar15 = *(undefined4 *)(iVar8 + 0x20);" (assignment_expression "uVar15 = *(undefined4 *)(iVar8 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x20)" * (cast_expression "(undefined4 *)(iVar8 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) ))))) ;)) })) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "error(0,uVar15,uVar9,uVar16);" (call_expression "error(0,uVar15,uVar9,uVar16)" identifier (argument_list "(0,uVar15,uVar9,uVar16)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" identifier (argument_list "(iVar7,iVar8,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (goto_statement "goto code_r0x00013980;" goto statement_identifier ;) })) (expression_statement "piVar13 = __errno_location();" (assignment_expression "piVar13 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }" if (parenthesized_expression "(*piVar13 != 0)" ( (binary_expression "*piVar13 != 0" (pointer_expression "*piVar13" * identifier) != number_literal) )) (compound_statement "{\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }" { (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "uVar15 = dcgettext(0,"fts_read failed",5);" (assignment_expression "uVar15 = dcgettext(0,"fts_read failed",5)" identifier = (call_expression "dcgettext(0,"fts_read failed",5)" identifier (argument_list "(0,"fts_read failed",5)" ( number_literal , (string_literal ""fts_read failed"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,*piVar13,uVar15);" (call_expression "error(0,*piVar13,uVar15)" identifier (argument_list "(0,*piVar13,uVar15)" ( number_literal , (pointer_expression "*piVar13" * identifier) , identifier ))) ;) })) (expression_statement "iVar7 = fts_close(iVar7);" (assignment_expression "iVar7 = fts_close(iVar7)" identifier = (call_expression "fts_close(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }" { (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "uVar15 = dcgettext(0,"fts_close failed",5);" (assignment_expression "uVar15 = dcgettext(0,"fts_close failed",5)" identifier = (call_expression "dcgettext(0,"fts_close failed",5)" identifier (argument_list "(0,"fts_close failed",5)" ( number_literal , (string_literal ""fts_close failed"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,*piVar13,uVar15);" (call_expression "error(0,*piVar13,uVar15)" identifier (argument_list "(0,*piVar13,uVar15)" ( number_literal , (pointer_expression "*piVar13" * identifier) , identifier ))) ;) })) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar17;\n  }" { (return_statement "return iVar17;" return identifier ;) })) comment (expression_statement "FUN_0001c5a0();" (call_expression "FUN_0001c5a0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nRM_status rm(char **file,rm_options *x)\n\n{\n  ushort uVar1;\n  dev_ino *pdVar2;\n  _ftsent *p_Var3;\n  bool bVar4;\n  FTS *sp;\n  FTSENT *ent;\n  RM_status RVar5;\n  DIR *__dirp;\n  dirent64 *pdVar6;\n  char *pcVar7;\n  int *piVar8;\n  int iVar9;\n  undefined4 uVar10;\n  char *pcVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  RM_status RVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  int in_GS_OFFSET;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  Ternary is_empty_directory;\n  int local_7c;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*file == (char *)0x0) {\n    RVar14 = RM_OK;\n  }\n  else {\n    RVar14 = RM_OK;\n    sp = xfts_open(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,\n                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0);\nLAB_00013980:\n    ent = fts_read(sp);\n    if (ent != (FTSENT *)0x0) {\n      uVar1 = ent->fts_info;\n      switch(uVar1) {\n      default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;\n      case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;\n      case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;\n      }\n      RVar14 = RM_ERROR;\n      error(0,iVar9,uVar13,pcVar12);\n      fts_set(sp,ent,4);\n      fts_read(sp);\n      goto LAB_00013980;\n    }\n    piVar8 = __errno_location();\n    if (*piVar8 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar8,uVar13);\n    }\n    iVar9 = fts_close(sp);\n    if (iVar9 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar8,uVar13);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return RVar14;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "RM_status rm(char **file,rm_options *x)\n\n{\n  ushort uVar1;\n  dev_ino *pdVar2;\n  _ftsent *p_Var3;\n  bool bVar4;\n  FTS *sp;\n  FTSENT *ent;\n  RM_status RVar5;\n  DIR *__dirp;\n  dirent64 *pdVar6;\n  char *pcVar7;\n  int *piVar8;\n  int iVar9;\n  undefined4 uVar10;\n  char *pcVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  RM_status RVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  int in_GS_OFFSET;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  Ternary is_empty_directory;\n  int local_7c;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*file == (char *)0x0) {\n    RVar14 = RM_OK;\n  }\n  else {\n    RVar14 = RM_OK;\n    sp = xfts_open(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,\n                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0);\nLAB_00013980:\n    ent = fts_read(sp);\n    if (ent != (FTSENT *)0x0) {\n      uVar1 = ent->fts_info;\n      switch(uVar1) {\n      default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;\n      case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;\n      case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;\n      }\n      RVar14 = RM_ERROR;\n      error(0,iVar9,uVar13,pcVar12);\n      fts_set(sp,ent,4);\n      fts_read(sp);\n      goto LAB_00013980;\n    }\n    piVar8 = __errno_location();\n    if (*piVar8 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar8,uVar13);\n    }\n    iVar9 = fts_close(sp);\n    if (iVar9 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar8,uVar13);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return RVar14;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" type_identifier (function_declarator "rm(char **file,rm_options *x)" identifier (parameter_list "(char **file,rm_options *x)" ( (parameter_declaration "char **file" primitive_type (pointer_declarator "**file" * (pointer_declarator "*file" * identifier))) , (parameter_declaration "rm_options *x" type_identifier (pointer_declarator "*x" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  dev_ino *pdVar2;\n  _ftsent *p_Var3;\n  bool bVar4;\n  FTS *sp;\n  FTSENT *ent;\n  RM_status RVar5;\n  DIR *__dirp;\n  dirent64 *pdVar6;\n  char *pcVar7;\n  int *piVar8;\n  int iVar9;\n  undefined4 uVar10;\n  char *pcVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  RM_status RVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  int in_GS_OFFSET;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  Ternary is_empty_directory;\n  int local_7c;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*file == (char *)0x0) {\n    RVar14 = RM_OK;\n  }\n  else {\n    RVar14 = RM_OK;\n    sp = xfts_open(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,\n                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0);\nLAB_00013980:\n    ent = fts_read(sp);\n    if (ent != (FTSENT *)0x0) {\n      uVar1 = ent->fts_info;\n      switch(uVar1) {\n      default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;\n      case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;\n      case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;\n      }\n      RVar14 = RM_ERROR;\n      error(0,iVar9,uVar13,pcVar12);\n      fts_set(sp,ent,4);\n      fts_read(sp);\n      goto LAB_00013980;\n    }\n    piVar8 = __errno_location();\n    if (*piVar8 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar8,uVar13);\n    }\n    iVar9 = fts_close(sp);\n    if (iVar9 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar8,uVar13);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return RVar14;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "dev_ino *pdVar2;" type_identifier (pointer_declarator "*pdVar2" * identifier) ;) (declaration "_ftsent *p_Var3;" type_identifier (pointer_declarator "*p_Var3" * identifier) ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "FTS *sp;" type_identifier (pointer_declarator "*sp" * identifier) ;) (declaration "FTSENT *ent;" type_identifier (pointer_declarator "*ent" * identifier) ;) (declaration "RM_status RVar5;" type_identifier identifier ;) (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "dirent64 *pdVar6;" type_identifier (pointer_declarator "*pdVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "RM_status RVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "Ternary is_empty_directory;" type_identifier identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x13919;" (assignment_expression "uStack_14 = 0x13919" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*file == (char *)0x0) {\n    RVar14 = RM_OK;\n  }\n  else {\n    RVar14 = RM_OK;\n    sp = xfts_open(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,\n                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0);\nLAB_00013980:\n    ent = fts_read(sp);\n    if (ent != (FTSENT *)0x0) {\n      uVar1 = ent->fts_info;\n      switch(uVar1) {\n      default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;\n      case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;\n      case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;\n      }\n      RVar14 = RM_ERROR;\n      error(0,iVar9,uVar13,pcVar12);\n      fts_set(sp,ent,4);\n      fts_read(sp);\n      goto LAB_00013980;\n    }\n    piVar8 = __errno_location();\n    if (*piVar8 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar8,uVar13);\n    }\n    iVar9 = fts_close(sp);\n    if (iVar9 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar8,uVar13);\n    }\n  }" if (parenthesized_expression "(*file == (char *)0x0)" ( (binary_expression "*file == (char *)0x0" (pointer_expression "*file" * identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    RVar14 = RM_OK;\n  }" { (expression_statement "RVar14 = RM_OK;" (assignment_expression "RVar14 = RM_OK" identifier = identifier) ;) }) (else_clause "else {\n    RVar14 = RM_OK;\n    sp = xfts_open(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,\n                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0);\nLAB_00013980:\n    ent = fts_read(sp);\n    if (ent != (FTSENT *)0x0) {\n      uVar1 = ent->fts_info;\n      switch(uVar1) {\n      default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;\n      case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;\n      case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;\n      }\n      RVar14 = RM_ERROR;\n      error(0,iVar9,uVar13,pcVar12);\n      fts_set(sp,ent,4);\n      fts_read(sp);\n      goto LAB_00013980;\n    }\n    piVar8 = __errno_location();\n    if (*piVar8 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar8,uVar13);\n    }\n    iVar9 = fts_close(sp);\n    if (iVar9 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar8,uVar13);\n    }\n  }" else (compound_statement "{\n    RVar14 = RM_OK;\n    sp = xfts_open(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,\n                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0);\nLAB_00013980:\n    ent = fts_read(sp);\n    if (ent != (FTSENT *)0x0) {\n      uVar1 = ent->fts_info;\n      switch(uVar1) {\n      default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;\n      case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;\n      case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;\n      }\n      RVar14 = RM_ERROR;\n      error(0,iVar9,uVar13,pcVar12);\n      fts_set(sp,ent,4);\n      fts_read(sp);\n      goto LAB_00013980;\n    }\n    piVar8 = __errno_location();\n    if (*piVar8 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar8,uVar13);\n    }\n    iVar9 = fts_close(sp);\n    if (iVar9 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar8,uVar13);\n    }\n  }" { (expression_statement "RVar14 = RM_OK;" (assignment_expression "RVar14 = RM_OK" identifier = identifier) ;) (expression_statement "sp = xfts_open(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,\n                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0);" (assignment_expression "sp = xfts_open(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,\n                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0)" identifier = (call_expression "xfts_open(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,\n                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0)" identifier (argument_list "(file,(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600,\n                   (_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0)" ( identifier , (binary_expression "(-(uint)(x->one_file_system == false) & 0xffffffc0) + 600" (parenthesized_expression "(-(uint)(x->one_file_system == false) & 0xffffffc0)" ( (binary_expression "-(uint)(x->one_file_system == false) & 0xffffffc0" (unary_expression "-(uint)(x->one_file_system == false)" - (call_expression "(uint)(x->one_file_system == false)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(x->one_file_system == false)" ( (binary_expression "x->one_file_system == false" (field_expression "x->one_file_system" identifier -> field_identifier) == false) )))) & number_literal) )) + number_literal) , (cast_expression "(_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *)0x0" ( (type_descriptor "_func_int_FTSENT_ptr_ptr_FTSENT_ptr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (labeled_statement "LAB_00013980:\n    ent = fts_read(sp);" statement_identifier : (expression_statement "ent = fts_read(sp);" (assignment_expression "ent = fts_read(sp)" identifier = (call_expression "fts_read(sp)" identifier (argument_list "(sp)" ( identifier )))) ;)) (if_statement "if (ent != (FTSENT *)0x0) {\n      uVar1 = ent->fts_info;\n      switch(uVar1) {\n      default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;\n      case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;\n      case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;\n      }\n      RVar14 = RM_ERROR;\n      error(0,iVar9,uVar13,pcVar12);\n      fts_set(sp,ent,4);\n      fts_read(sp);\n      goto LAB_00013980;\n    }" if (parenthesized_expression "(ent != (FTSENT *)0x0)" ( (binary_expression "ent != (FTSENT *)0x0" identifier != (cast_expression "(FTSENT *)0x0" ( (type_descriptor "FTSENT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar1 = ent->fts_info;\n      switch(uVar1) {\n      default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;\n      case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;\n      case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;\n      }\n      RVar14 = RM_ERROR;\n      error(0,iVar9,uVar13,pcVar12);\n      fts_set(sp,ent,4);\n      fts_read(sp);\n      goto LAB_00013980;\n    }" { (expression_statement "uVar1 = ent->fts_info;" (assignment_expression "uVar1 = ent->fts_info" identifier = (field_expression "ent->fts_info" identifier -> field_identifier)) ;) (switch_statement "switch(uVar1) {\n      default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;\n      case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;\n      case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;\n      }" switch (parenthesized_expression "(uVar1)" ( identifier )) (compound_statement "{\n      default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();\n      case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;\n      case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;\n      case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;\n      }" { (case_statement "default:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar1 = ent->fts_info;\n        uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");\n                    /* WARNING: Subroutine does not return */\n        abort();" default : (expression_statement "pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);" (assignment_expression "pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path)" identifier = (call_expression "quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path)" identifier (argument_list "(0,shell_escape_quoting_style,ent->fts_path)" ( number_literal , identifier , (field_expression "ent->fts_path" identifier -> field_identifier) )))) ;) (expression_statement "uVar1 = ent->fts_info;" (assignment_expression "uVar1 = ent->fts_info" identifier = (field_expression "ent->fts_info" identifier -> field_identifier)) ;) (expression_statement "uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);" (assignment_expression "uVar13 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" identifier = (call_expression "dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" identifier (argument_list "(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" ( number_literal , (string_literal ""unexpected failure: fts_info=%d: %s\nplease report to %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org");" (call_expression "error(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org")" identifier (argument_list "(0,0,uVar13,uVar1,pcVar12,"bug-coreutils@gnu.org")" ( number_literal , number_literal , identifier , identifier , identifier , (string_literal ""bug-coreutils@gnu.org"" " string_content ") ))) ;) comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 1:\n        if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }\nLAB_00013dab:\n        fts_set(sp,ent,4);\n        RVar14 = RM_ERROR;\n        fts_read(sp);\n        goto LAB_00013980;" case number_literal : (if_statement "if (x->recursive == false) {\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }\n        else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }" if (parenthesized_expression "(x->recursive == false)" ( (binary_expression "x->recursive == false" (field_expression "x->recursive" identifier -> field_identifier) == false) )) (compound_statement "{\n          if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar10 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar13,uVar10,pcVar12);\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n        }" { (if_statement "if (x->remove_empty_directories == false) {\nLAB_00013d50:\n            uVar13 = 0x15;\n          }\n          else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }" if (parenthesized_expression "(x->remove_empty_directories == false)" ( (binary_expression "x->remove_empty_directories == false" (field_expression "x->remove_empty_directories" identifier -> field_identifier) == false) )) (compound_statement "{\nLAB_00013d50:\n            uVar13 = 0x15;\n          }" { (labeled_statement "LAB_00013d50:\n            uVar13 = 0x15;" statement_identifier : (expression_statement "uVar13 = 0x15;" (assignment_expression "uVar13 = 0x15" identifier = number_literal) ;)) }) (else_clause "else {\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }" else (compound_statement "{\n            iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);\n            if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\nLAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;\n            uVar13 = 0x27;\n          }" { (expression_statement "iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900);" (assignment_expression "iVar9 = openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900)" identifier = (call_expression "openat64(sp->fts_cwd_fd,ent->fts_accpath,0x30900)" identifier (argument_list "(sp->fts_cwd_fd,ent->fts_accpath,0x30900)" ( (field_expression "sp->fts_cwd_fd" identifier -> field_identifier) , (field_expression "ent->fts_accpath" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (-1 < iVar9) {\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }" if (parenthesized_expression "(-1 < iVar9)" ( (binary_expression "-1 < iVar9" number_literal < identifier) )) (compound_statement "{\n              __dirp = fdopendir(iVar9);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }" { (expression_statement "__dirp = fdopendir(iVar9);" (assignment_expression "__dirp = fdopendir(iVar9)" identifier = (call_expression "fdopendir(iVar9)" identifier (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (__dirp == (DIR *)0x0) {\n                close(iVar9);\n              }\n              else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" if (parenthesized_expression "(__dirp == (DIR *)0x0)" ( (binary_expression "__dirp == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                close(iVar9);\n              }" { (expression_statement "close(iVar9);" (call_expression "close(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;) }) (else_clause "else {\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" else (compound_statement "{\n                piVar8 = __errno_location();\n                *piVar8 = 0;\n                do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" { (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (do_statement "do {\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                } while ((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))));" do (compound_statement "{\n                  pdVar6 = readdir64(__dirp);\n                  if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }\n                }" { (expression_statement "pdVar6 = readdir64(__dirp);" (assignment_expression "pdVar6 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar6 == (dirent64 *)0x0) {\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }" if (parenthesized_expression "(pdVar6 == (dirent64 *)0x0)" ( (binary_expression "pdVar6 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar9 = *piVar8;\n                    closedir(__dirp);\n                    if (iVar9 != 0) goto LAB_00013b61;\n                    goto LAB_00013ba0;\n                  }" { (expression_statement "iVar9 = *piVar8;" (assignment_expression "iVar9 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) (if_statement "if (iVar9 != 0) goto LAB_00013b61;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00013b61;" goto statement_identifier ;)) (goto_statement "goto LAB_00013ba0;" goto statement_identifier ;) })) }) while (parenthesized_expression "((pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))))" ( (binary_expression "(pdVar6->d_name[0] == '.') &&\n                        ((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/')))" (parenthesized_expression "(pdVar6->d_name[0] == '.')" ( (binary_expression "pdVar6->d_name[0] == '.'" (subscript_expression "pdVar6->d_name[0]" (field_expression "pdVar6->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "((pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/')))" ( (parenthesized_expression "(pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'))" ( (binary_expression "pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/')" (binary_expression "pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '\0'" (subscript_expression "pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1]" (field_expression "pdVar6->d_name" identifier -> field_identifier) [ (binary_expression "(pdVar6->d_name[1] == '.') + 1" (parenthesized_expression "(pdVar6->d_name[1] == '.')" ( (binary_expression "pdVar6->d_name[1] == '.'" (subscript_expression "pdVar6->d_name[1]" (field_expression "pdVar6->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/')" ( (binary_expression "pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1] == '/'" (subscript_expression "pdVar6->d_name[(pdVar6->d_name[1] == '.') + 1]" (field_expression "pdVar6->d_name" identifier -> field_identifier) [ (binary_expression "(pdVar6->d_name[1] == '.') + 1" (parenthesized_expression "(pdVar6->d_name[1] == '.')" ( (binary_expression "pdVar6->d_name[1] == '.'" (subscript_expression "pdVar6->d_name[1]" (field_expression "pdVar6->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'/'" ' character ')) ))) )) ))) )) ;) (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) }))) })) (labeled_statement "LAB_00013b61:\n            if (x->remove_empty_directories == false) goto LAB_00013d50;" statement_identifier : (if_statement "if (x->remove_empty_directories == false) goto LAB_00013d50;" if (parenthesized_expression "(x->remove_empty_directories == false)" ( (binary_expression "x->remove_empty_directories == false" (field_expression "x->remove_empty_directories" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_00013d50;" goto statement_identifier ;))) (expression_statement "uVar13 = 0x27;" (assignment_expression "uVar13 = 0x27" identifier = number_literal) ;) }))) (expression_statement "pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);" (assignment_expression "pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path)" identifier = (call_expression "quotearg_style(shell_escape_always_quoting_style,ent->fts_path)" identifier (argument_list "(shell_escape_always_quoting_style,ent->fts_path)" ( identifier , (field_expression "ent->fts_path" identifier -> field_identifier) )))) ;) (expression_statement "uVar10 = dcgettext(0,"cannot remove %s",5);" (assignment_expression "uVar10 = dcgettext(0,"cannot remove %s",5)" identifier = (call_expression "dcgettext(0,"cannot remove %s",5)" identifier (argument_list "(0,"cannot remove %s",5)" ( number_literal , (string_literal ""cannot remove %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,uVar13,uVar10,pcVar12);" (call_expression "error(0,uVar13,uVar10,pcVar12)" identifier (argument_list "(0,uVar13,uVar10,pcVar12)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "p_Var3 = ent->fts_parent;" (assignment_expression "p_Var3 = ent->fts_parent" identifier = (field_expression "ent->fts_parent" identifier -> field_identifier)) ;) (expression_statement "iVar9 = p_Var3->fts_level;" (assignment_expression "iVar9 = p_Var3->fts_level" identifier = (field_expression "p_Var3->fts_level" identifier -> field_identifier)) ;) (while_statement "while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }" while (parenthesized_expression "((-1 < iVar9 && (p_Var3->fts_number == 0)))" ( (parenthesized_expression "(-1 < iVar9 && (p_Var3->fts_number == 0))" ( (binary_expression "-1 < iVar9 && (p_Var3->fts_number == 0)" (binary_expression "-1 < iVar9" number_literal < identifier) && (parenthesized_expression "(p_Var3->fts_number == 0)" ( (binary_expression "p_Var3->fts_number == 0" (field_expression "p_Var3->fts_number" identifier -> field_identifier) == number_literal) ))) )) )) (compound_statement "{\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }" { (expression_statement "p_Var3->fts_number = 1;" (assignment_expression "p_Var3->fts_number = 1" (field_expression "p_Var3->fts_number" identifier -> field_identifier) = number_literal) ;) (expression_statement "p_Var3 = p_Var3->fts_parent;" (assignment_expression "p_Var3 = p_Var3->fts_parent" identifier = (field_expression "p_Var3->fts_parent" identifier -> field_identifier)) ;) (expression_statement "iVar9 = p_Var3->fts_level;" (assignment_expression "iVar9 = p_Var3->fts_level" identifier = (field_expression "p_Var3->fts_level" identifier -> field_identifier)) ;) })) }) (else_clause "else {\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }" else (compound_statement "{\nLAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }\n          pcVar12 = ent->fts_accpath;\n          pcVar7 = last_component(pcVar12);\n          if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }\n        }" { (labeled_statement "LAB_00013ba0:\n          if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }" statement_identifier : (if_statement "if (ent->fts_level != 0) {\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }" if (parenthesized_expression "(ent->fts_level != 0)" ( (binary_expression "ent->fts_level != 0" (field_expression "ent->fts_level" identifier -> field_identifier) != number_literal) )) (compound_statement "{\nLAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);\n            if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }\n            p_Var3 = ent->fts_parent;\n            iVar9 = p_Var3->fts_level;\n            while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }\n            fts_set(sp,ent,4);\n            fts_read(sp);\n            goto LAB_00013a75;\n          }" { (labeled_statement "LAB_00013c01:\n            RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);" statement_identifier : (expression_statement "RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory);" (assignment_expression "RVar5 = prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory)" identifier = (call_expression "prompt(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory)" identifier (argument_list "(sp,ent,true,x,PA_DESCEND_INTO_DIR,&is_empty_directory)" ( identifier , identifier , true , identifier , identifier , (pointer_expression "&is_empty_directory" & identifier) )))) ;)) (if_statement "if (RVar5 == RM_OK) {\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }" if (parenthesized_expression "(RVar5 == RM_OK)" ( (binary_expression "RVar5 == RM_OK" identifier == identifier) )) (compound_statement "{\n              if (is_empty_directory != T_YES) goto LAB_00013980;\n              RVar5 = excise(sp,ent,x,true);\n              fts_set(sp,ent,4);\n              fts_read(sp);\n              if (RVar5 == RM_OK) goto LAB_00013980;\n            }" { (if_statement "if (is_empty_directory != T_YES) goto LAB_00013980;" if (parenthesized_expression "(is_empty_directory != T_YES)" ( (binary_expression "is_empty_directory != T_YES" identifier != identifier) )) (goto_statement "goto LAB_00013980;" goto statement_identifier ;)) (expression_statement "RVar5 = excise(sp,ent,x,true);" (assignment_expression "RVar5 = excise(sp,ent,x,true)" identifier = (call_expression "excise(sp,ent,x,true)" identifier (argument_list "(sp,ent,x,true)" ( identifier , identifier , identifier , true )))) ;) (expression_statement "fts_set(sp,ent,4);" (call_expression "fts_set(sp,ent,4)" identifier (argument_list "(sp,ent,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fts_read(sp);" (call_expression "fts_read(sp)" identifier (argument_list "(sp)" ( identifier ))) ;) (if_statement "if (RVar5 == RM_OK) goto LAB_00013980;" if (parenthesized_expression "(RVar5 == RM_OK)" ( (binary_expression "RVar5 == RM_OK" identifier == identifier) )) (goto_statement "goto LAB_00013980;" goto statement_identifier ;)) })) (expression_statement "p_Var3 = ent->fts_parent;" (assignment_expression "p_Var3 = ent->fts_parent" identifier = (field_expression "ent->fts_parent" identifier -> field_identifier)) ;) (expression_statement "iVar9 = p_Var3->fts_level;" (assignment_expression "iVar9 = p_Var3->fts_level" identifier = (field_expression "p_Var3->fts_level" identifier -> field_identifier)) ;) (while_statement "while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }" while (parenthesized_expression "((-1 < iVar9 && (p_Var3->fts_number == 0)))" ( (parenthesized_expression "(-1 < iVar9 && (p_Var3->fts_number == 0))" ( (binary_expression "-1 < iVar9 && (p_Var3->fts_number == 0)" (binary_expression "-1 < iVar9" number_literal < identifier) && (parenthesized_expression "(p_Var3->fts_number == 0)" ( (binary_expression "p_Var3->fts_number == 0" (field_expression "p_Var3->fts_number" identifier -> field_identifier) == number_literal) ))) )) )) (compound_statement "{\n              p_Var3->fts_number = 1;\n              p_Var3 = p_Var3->fts_parent;\n              iVar9 = p_Var3->fts_level;\n            }" { (expression_statement "p_Var3->fts_number = 1;" (assignment_expression "p_Var3->fts_number = 1" (field_expression "p_Var3->fts_number" identifier -> field_identifier) = number_literal) ;) (expression_statement "p_Var3 = p_Var3->fts_parent;" (assignment_expression "p_Var3 = p_Var3->fts_parent" identifier = (field_expression "p_Var3->fts_parent" identifier -> field_identifier)) ;) (expression_statement "iVar9 = p_Var3->fts_level;" (assignment_expression "iVar9 = p_Var3->fts_level" identifier = (field_expression "p_Var3->fts_level" identifier -> field_identifier)) ;) })) (expression_statement "fts_set(sp,ent,4);" (call_expression "fts_set(sp,ent,4)" identifier (argument_list "(sp,ent,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fts_read(sp);" (call_expression "fts_read(sp)" identifier (argument_list "(sp)" ( identifier ))) ;) (goto_statement "goto LAB_00013a75;" goto statement_identifier ;) }))) (expression_statement "pcVar12 = ent->fts_accpath;" (assignment_expression "pcVar12 = ent->fts_accpath" identifier = (field_expression "ent->fts_accpath" identifier -> field_identifier)) ;) (expression_statement "pcVar7 = last_component(pcVar12);" (assignment_expression "pcVar7 = last_component(pcVar12)" identifier = (call_expression "last_component(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (if_statement "if ((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))\n          {\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }\n          else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }" if (parenthesized_expression "((*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))" ( (binary_expression "(*pcVar7 == '.') &&\n             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/')))" (parenthesized_expression "(*pcVar7 == '.')" ( (binary_expression "*pcVar7 == '.'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/')))" ( (parenthesized_expression "(pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))" ( (binary_expression "pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/')" (binary_expression "pcVar7[(pcVar7[1] == '.') + 1] == '\0'" (subscript_expression "pcVar7[(pcVar7[1] == '.') + 1]" identifier [ (binary_expression "(pcVar7[1] == '.') + 1" (parenthesized_expression "(pcVar7[1] == '.')" ( (binary_expression "pcVar7[1] == '.'" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar7[(pcVar7[1] == '.') + 1] == '/')" ( (binary_expression "pcVar7[(pcVar7[1] == '.') + 1] == '/'" (subscript_expression "pcVar7[(pcVar7[1] == '.') + 1]" identifier [ (binary_expression "(pcVar7[1] == '.') + 1" (parenthesized_expression "(pcVar7[1] == '.')" ( (binary_expression "pcVar7[1] == '.'" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'/'" ' character ')) ))) )) ))) )) (compound_statement "{\n            pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);\n            pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");\n            pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");\n            uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar13,pcVar11,pcVar7,pcVar12);\n          }" { (expression_statement "pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path);" (assignment_expression "pcVar12 = quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path)" identifier = (call_expression "quotearg_n_style(2,shell_escape_always_quoting_style,ent->fts_path)" identifier (argument_list "(2,shell_escape_always_quoting_style,ent->fts_path)" ( number_literal , identifier , (field_expression "ent->fts_path" identifier -> field_identifier) )))) ;) (expression_statement "pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..");" (assignment_expression "pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,"..")" identifier = (call_expression "quotearg_n_style(1,shell_escape_always_quoting_style,"..")" identifier (argument_list "(1,shell_escape_always_quoting_style,"..")" ( number_literal , identifier , (string_literal "".."" " string_content ") )))) ;) (expression_statement "pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".");" (assignment_expression "pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,".")" identifier = (call_expression "quotearg_n_style(0,shell_escape_always_quoting_style,".")" identifier (argument_list "(0,shell_escape_always_quoting_style,".")" ( number_literal , identifier , (string_literal ""."" " string_content ") )))) ;) (expression_statement "uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);" (assignment_expression "uVar13 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5)" identifier = (call_expression "dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5)" identifier (argument_list "(0,"refusing to remove %s or %s directory: skipping %s",5)" ( number_literal , (string_literal ""refusing to remove %s or %s directory: skipping %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar13,pcVar11,pcVar7,pcVar12);" (call_expression "error(0,0,uVar13,pcVar11,pcVar7,pcVar12)" identifier (argument_list "(0,0,uVar13,pcVar11,pcVar7,pcVar12)" ( number_literal , number_literal , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }" else (compound_statement "{\n            pdVar2 = x->root_dev_ino;\n            if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }\n            if (x->preserve_all_root == false) goto LAB_00013c01;\n            pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);\n            if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }\n          }" { (expression_statement "pdVar2 = x->root_dev_ino;" (assignment_expression "pdVar2 = x->root_dev_ino" identifier = (field_expression "x->root_dev_ino" identifier -> field_identifier)) ;) (if_statement "if ((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)) {\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }" if (parenthesized_expression "((pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino))" ( (binary_expression "(pdVar2 != (dev_ino *)0x0) &&\n               (*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)" (parenthesized_expression "(pdVar2 != (dev_ino *)0x0)" ( (binary_expression "pdVar2 != (dev_ino *)0x0" identifier != (cast_expression "(dev_ino *)0x0" ( (type_descriptor "dev_ino *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino)" ( (binary_expression "*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)\n                && (int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino" (binary_expression "*(int *)((int)&ent->fts_statp[0].st_ino + 4) == *(int *)((int)&pdVar2->st_ino + 4)" (pointer_expression "*(int *)((int)&ent->fts_statp[0].st_ino + 4)" * (cast_expression "(int *)((int)&ent->fts_statp[0].st_ino + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ent->fts_statp[0].st_ino + 4)" ( (binary_expression "(int)&ent->fts_statp[0].st_ino + 4" (cast_expression "(int)&ent->fts_statp[0].st_ino" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ent->fts_statp[0].st_ino" & (field_expression "ent->fts_statp[0].st_ino" (subscript_expression "ent->fts_statp[0]" (field_expression "ent->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) == (pointer_expression "*(int *)((int)&pdVar2->st_ino + 4)" * (cast_expression "(int *)((int)&pdVar2->st_ino + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pdVar2->st_ino + 4)" ( (binary_expression "(int)&pdVar2->st_ino + 4" (cast_expression "(int)&pdVar2->st_ino" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pdVar2->st_ino" & (field_expression "pdVar2->st_ino" identifier -> field_identifier))) + number_literal) ))))) && (binary_expression "(int)ent->fts_statp[0].st_ino == (int)pdVar2->st_ino" (cast_expression "(int)ent->fts_statp[0].st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "ent->fts_statp[0].st_ino" (subscript_expression "ent->fts_statp[0]" (field_expression "ent->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier)) == (cast_expression "(int)pdVar2->st_ino" ( (type_descriptor "int" primitive_type) ) (field_expression "pdVar2->st_ino" identifier -> field_identifier)))) ))) )) (compound_statement "{\n              bVar17 = false;\n              bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);\n              bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;\n              bVar19 = bVar18 && bVar4;\n              if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }\n            }" { (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4);" (assignment_expression "bVar18 = *(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4)" identifier = (binary_expression "*(int *)((int)&ent->fts_statp[0].st_dev + 4) ==\n                       *(int *)((int)&pdVar2->st_dev + 4)" (pointer_expression "*(int *)((int)&ent->fts_statp[0].st_dev + 4)" * (cast_expression "(int *)((int)&ent->fts_statp[0].st_dev + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ent->fts_statp[0].st_dev + 4)" ( (binary_expression "(int)&ent->fts_statp[0].st_dev + 4" (cast_expression "(int)&ent->fts_statp[0].st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ent->fts_statp[0].st_dev" & (field_expression "ent->fts_statp[0].st_dev" (subscript_expression "ent->fts_statp[0]" (field_expression "ent->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) == (pointer_expression "*(int *)((int)&pdVar2->st_dev + 4)" * (cast_expression "(int *)((int)&pdVar2->st_dev + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pdVar2->st_dev + 4)" ( (binary_expression "(int)&pdVar2->st_dev + 4" (cast_expression "(int)&pdVar2->st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pdVar2->st_dev" & (field_expression "pdVar2->st_dev" identifier -> field_identifier))) + number_literal) )))))) ;) (expression_statement "bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev;" (assignment_expression "bVar4 = (int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev" identifier = (binary_expression "(int)ent->fts_statp[0].st_dev == (int)pdVar2->st_dev" (cast_expression "(int)ent->fts_statp[0].st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "ent->fts_statp[0].st_dev" (subscript_expression "ent->fts_statp[0]" (field_expression "ent->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier)) == (cast_expression "(int)pdVar2->st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "pdVar2->st_dev" identifier -> field_identifier)))) ;) (expression_statement "bVar19 = bVar18 && bVar4;" (assignment_expression "bVar19 = bVar18 && bVar4" identifier = (binary_expression "bVar18 && bVar4" identifier && identifier)) ;) (if_statement "if (bVar18 && bVar4) {\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }" if (parenthesized_expression "(bVar18 && bVar4)" ( (binary_expression "bVar18 && bVar4" identifier && identifier) )) (compound_statement "{\n                iVar9 = 2;\n                pbVar15 = (byte *)ent->fts_path;\n                pbVar16 = &DAT_0001dff2;\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);\n                if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }\n                uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar13);\n                goto LAB_00013dab;\n              }" { (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)ent->fts_path;" (assignment_expression "pbVar15 = (byte *)ent->fts_path" identifier = (cast_expression "(byte *)ent->fts_path" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ent->fts_path" identifier -> field_identifier))) ;) (expression_statement "pbVar16 = &DAT_0001dff2;" (assignment_expression "pbVar16 = &DAT_0001dff2" identifier = (pointer_expression "&DAT_0001dff2" & identifier)) ;) (do_statement "do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                } while (bVar19);" do (compound_statement "{\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar17 = *pbVar15 < *pbVar16;\n                  bVar19 = *pbVar15 == *pbVar16;\n                  pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n                  pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n                }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar15 < *pbVar16;" (assignment_expression "bVar17 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar19 = *pbVar15 == *pbVar16;" (assignment_expression "bVar19 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar19) == bVar17) {\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }\n                else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }" if (parenthesized_expression "((!bVar17 && !bVar19) == bVar17)" ( (binary_expression "(!bVar17 && !bVar19) == bVar17" (parenthesized_expression "(!bVar17 && !bVar19)" ( (binary_expression "!bVar17 && !bVar19" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier) )) (compound_statement "{\n                  pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar13,pcVar12);\n                }" { (expression_statement "pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);" (assignment_expression "pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path)" identifier = (call_expression "quotearg_style(shell_escape_always_quoting_style,ent->fts_path)" identifier (argument_list "(shell_escape_always_quoting_style,ent->fts_path)" ( identifier , (field_expression "ent->fts_path" identifier -> field_identifier) )))) ;) (expression_statement "uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5);" (assignment_expression "uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s",5)" identifier = (call_expression "dcgettext(0,"it is dangerous to operate recursively on %s",5)" identifier (argument_list "(0,"it is dangerous to operate recursively on %s",5)" ( number_literal , (string_literal ""it is dangerous to operate recursively on %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar13,pcVar12);" (call_expression "error(0,0,uVar13,pcVar12)" identifier (argument_list "(0,0,uVar13,pcVar12)" ( number_literal , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }" else (compound_statement "{\n                  pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");\n                  pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);\n                  uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );\n                  error(0,0,uVar13,pcVar7,pcVar12);\n                }" { (expression_statement "pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/");" (assignment_expression "pcVar12 = quotearg_n_style(1,shell_escape_always_quoting_style,"/")" identifier = (call_expression "quotearg_n_style(1,shell_escape_always_quoting_style,"/")" identifier (argument_list "(1,shell_escape_always_quoting_style,"/")" ( number_literal , identifier , (string_literal ""/"" " string_content ") )))) ;) (expression_statement "pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path);" (assignment_expression "pcVar7 = quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path)" identifier = (call_expression "quotearg_n_style(0,shell_escape_always_quoting_style,ent->fts_path)" identifier (argument_list "(0,shell_escape_always_quoting_style,ent->fts_path)" ( number_literal , identifier , (field_expression "ent->fts_path" identifier -> field_identifier) )))) ;) (expression_statement "uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    );" (assignment_expression "uVar13 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    )" identifier = (call_expression "dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    )" identifier (argument_list "(0,"it is dangerous to operate recursively on %s (same as %s)",5\n                                    )" ( number_literal , (string_literal ""it is dangerous to operate recursively on %s (same as %s)"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar13,pcVar7,pcVar12);" (call_expression "error(0,0,uVar13,pcVar7,pcVar12)" identifier (argument_list "(0,0,uVar13,pcVar7,pcVar12)" ( number_literal , number_literal , identifier , identifier , identifier ))) ;) }))) (expression_statement "uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);" (assignment_expression "uVar13 = dcgettext(0,"use --no-preserve-root to override this failsafe",5)" identifier = (call_expression "dcgettext(0,"use --no-preserve-root to override this failsafe",5)" identifier (argument_list "(0,"use --no-preserve-root to override this failsafe",5)" ( number_literal , (string_literal ""use --no-preserve-root to override this failsafe"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar13);" (call_expression "error(0,0,uVar13)" identifier (argument_list "(0,0,uVar13)" ( number_literal , number_literal , identifier ))) ;) (goto_statement "goto LAB_00013dab;" goto statement_identifier ;) })) })) (if_statement "if (x->preserve_all_root == false) goto LAB_00013c01;" if (parenthesized_expression "(x->preserve_all_root == false)" ( (binary_expression "x->preserve_all_root == false" (field_expression "x->preserve_all_root" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_00013c01;" goto statement_identifier ;)) (expression_statement "pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0);" (assignment_expression "pcVar12 = file_name_concat(pcVar12,"..",(char **)0x0)" identifier = (call_expression "file_name_concat(pcVar12,"..",(char **)0x0)" identifier (argument_list "(pcVar12,"..",(char **)0x0)" ( identifier , (string_literal "".."" " string_content ") , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (if_statement "if ((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)) {\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }" if (parenthesized_expression "((pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0))" ( (binary_expression "(pcVar12 == (char *)0x0) ||\n               (iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)" (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0)" ( (comma_expression "iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory), iVar9 != 0" (assignment_expression "iVar9 = __lxstat64(3,pcVar12,(stat64 *)&is_empty_directory)" identifier = (call_expression "__lxstat64(3,pcVar12,(stat64 *)&is_empty_directory)" identifier (argument_list "(3,pcVar12,(stat64 *)&is_empty_directory)" ( number_literal , identifier , (cast_expression "(stat64 *)&is_empty_directory" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&is_empty_directory" & identifier)) )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);\n              pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);\n              uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar13,pcVar11,pcVar7);\n              free(pcVar12);\n            }" { (expression_statement "pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath);" (assignment_expression "pcVar7 = quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath)" identifier = (call_expression "quotearg_n_style(1,shell_escape_always_quoting_style,ent->fts_accpath)" identifier (argument_list "(1,shell_escape_always_quoting_style,ent->fts_accpath)" ( number_literal , identifier , (field_expression "ent->fts_accpath" identifier -> field_identifier) )))) ;) (expression_statement "pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12);" (assignment_expression "pcVar11 = quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12)" identifier = (call_expression "quotearg_n_style(0,shell_escape_always_quoting_style,pcVar12)" identifier (argument_list "(0,shell_escape_always_quoting_style,pcVar12)" ( number_literal , identifier , identifier )))) ;) (expression_statement "uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5);" (assignment_expression "uVar13 = dcgettext(0,"failed to stat %s: skipping %s",5)" identifier = (call_expression "dcgettext(0,"failed to stat %s: skipping %s",5)" identifier (argument_list "(0,"failed to stat %s: skipping %s",5)" ( number_literal , (string_literal ""failed to stat %s: skipping %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar13,pcVar11,pcVar7);" (call_expression "error(0,0,uVar13,pcVar11,pcVar7)" identifier (argument_list "(0,0,uVar13,pcVar11,pcVar7)" ( number_literal , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) }) (else_clause "else {\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }" else (compound_statement "{\n              free(pcVar12);\n              if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;\n              pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n              uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar13,pcVar12);\n              uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar13);\n            }" { (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) (if_statement "if (*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory) goto LAB_00013c01;" if (parenthesized_expression "(*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory)" ( (binary_expression "*(int *)((int)&sp->fts_dev + 4) == local_7c &&\n                  (Ternary)sp->fts_dev == is_empty_directory" (binary_expression "*(int *)((int)&sp->fts_dev + 4) == local_7c" (pointer_expression "*(int *)((int)&sp->fts_dev + 4)" * (cast_expression "(int *)((int)&sp->fts_dev + 4)" ( (type_descriptor "int *" primitive_type (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) && (binary_expression "(Ternary)sp->fts_dev == is_empty_directory" (cast_expression "(Ternary)sp->fts_dev" ( (type_descriptor "Ternary" type_identifier) ) (field_expression "sp->fts_dev" identifier -> field_identifier)) == identifier)) )) (goto_statement "goto LAB_00013c01;" goto statement_identifier ;)) (expression_statement "pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);" (assignment_expression "pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path)" identifier = (call_expression "quotearg_style(shell_escape_always_quoting_style,ent->fts_path)" identifier (argument_list "(shell_escape_always_quoting_style,ent->fts_path)" ( identifier , (field_expression "ent->fts_path" identifier -> field_identifier) )))) ;) (expression_statement "uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);" (assignment_expression "uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier = (call_expression "dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier (argument_list "(0,"skipping %s, since it\'s on a different device",5)" ( number_literal , (string_literal ""skipping %s, since it\'s on a different device"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar13,pcVar12);" (call_expression "error(0,0,uVar13,pcVar12)" identifier (argument_list "(0,0,uVar13,pcVar12)" ( number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5);" (assignment_expression "uVar13 = dcgettext(0,"and --preserve-root=all is in effect",5)" identifier = (call_expression "dcgettext(0,"and --preserve-root=all is in effect",5)" identifier (argument_list "(0,"and --preserve-root=all is in effect",5)" ( number_literal , (string_literal ""and --preserve-root=all is in effect"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar13);" (call_expression "error(0,0,uVar13)" identifier (argument_list "(0,0,uVar13)" ( number_literal , number_literal , identifier ))) ;) }))) }))) }))) (labeled_statement "LAB_00013dab:\n        fts_set(sp,ent,4);" statement_identifier : (expression_statement "fts_set(sp,ent,4);" (call_expression "fts_set(sp,ent,4)" identifier (argument_list "(sp,ent,4)" ( identifier , identifier , number_literal ))) ;)) (expression_statement "RVar14 = RM_ERROR;" (assignment_expression "RVar14 = RM_ERROR" identifier = identifier) ;) (expression_statement "fts_read(sp);" (call_expression "fts_read(sp)" identifier (argument_list "(sp)" ( identifier ))) ;) (goto_statement "goto LAB_00013980;" goto statement_identifier ;)) (case_statement "case 2:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);\n        iVar9 = 0;\n        break;" case number_literal : (expression_statement "pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);" (assignment_expression "pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path)" identifier = (call_expression "quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path)" identifier (argument_list "(0,shell_escape_quoting_style,ent->fts_path)" ( number_literal , identifier , (field_expression "ent->fts_path" identifier -> field_identifier) )))) ;) (expression_statement "uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5);" (assignment_expression "uVar13 = dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5)" identifier = (call_expression "dcgettext(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5)" identifier (argument_list "(0,\n                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                           ,5)" ( number_literal , (string_literal ""WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 6:" case number_literal :) (case_statement "case 8:" case number_literal :) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0xc:" case number_literal :) (case_statement "case 0xd:\n        if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }\n        goto LAB_00013980;" case number_literal : (if_statement "if ((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)) {\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }\n        else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }" if (parenthesized_expression "((((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev))" ( (binary_expression "(((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)) &&\n           (*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)" (parenthesized_expression "(((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level))" ( (binary_expression "((uVar1 == 6) && (x->one_file_system != false)) && (0 < ent->fts_level)" (parenthesized_expression "((uVar1 == 6) && (x->one_file_system != false))" ( (binary_expression "(uVar1 == 6) && (x->one_file_system != false)" (parenthesized_expression "(uVar1 == 6)" ( (binary_expression "uVar1 == 6" identifier == number_literal) )) && (parenthesized_expression "(x->one_file_system != false)" ( (binary_expression "x->one_file_system != false" (field_expression "x->one_file_system" identifier -> field_identifier) != false) ))) )) && (parenthesized_expression "(0 < ent->fts_level)" ( (binary_expression "0 < ent->fts_level" number_literal < (field_expression "ent->fts_level" identifier -> field_identifier)) ))) )) && (parenthesized_expression "(*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev)" ( (binary_expression "*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||\n            (int)ent->fts_statp[0].st_dev != (int)sp->fts_dev" (binary_expression "*(int *)((int)&ent->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4)" (pointer_expression "*(int *)((int)&ent->fts_statp[0].st_dev + 4)" * (cast_expression "(int *)((int)&ent->fts_statp[0].st_dev + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ent->fts_statp[0].st_dev + 4)" ( (binary_expression "(int)&ent->fts_statp[0].st_dev + 4" (cast_expression "(int)&ent->fts_statp[0].st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ent->fts_statp[0].st_dev" & (field_expression "ent->fts_statp[0].st_dev" (subscript_expression "ent->fts_statp[0]" (field_expression "ent->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) != (pointer_expression "*(int *)((int)&sp->fts_dev + 4)" * (cast_expression "(int *)((int)&sp->fts_dev + 4)" ( (type_descriptor "int *" primitive_type (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) ))))) || (binary_expression "(int)ent->fts_statp[0].st_dev != (int)sp->fts_dev" (cast_expression "(int)ent->fts_statp[0].st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "ent->fts_statp[0].st_dev" (subscript_expression "ent->fts_statp[0]" (field_expression "ent->fts_statp" identifier -> field_identifier) [ number_literal ]) . field_identifier)) != (cast_expression "(int)sp->fts_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "sp->fts_dev" identifier -> field_identifier)))) ))) )) (compound_statement "{\n          p_Var3 = ent->fts_parent;\n          iVar9 = p_Var3->fts_level;\n          while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }\n          pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);\n          uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          RVar14 = RM_ERROR;\n          error(0,0,uVar13,pcVar12);\n        }" { (expression_statement "p_Var3 = ent->fts_parent;" (assignment_expression "p_Var3 = ent->fts_parent" identifier = (field_expression "ent->fts_parent" identifier -> field_identifier)) ;) (expression_statement "iVar9 = p_Var3->fts_level;" (assignment_expression "iVar9 = p_Var3->fts_level" identifier = (field_expression "p_Var3->fts_level" identifier -> field_identifier)) ;) (while_statement "while ((-1 < iVar9 && (p_Var3->fts_number == 0))) {\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }" while (parenthesized_expression "((-1 < iVar9 && (p_Var3->fts_number == 0)))" ( (parenthesized_expression "(-1 < iVar9 && (p_Var3->fts_number == 0))" ( (binary_expression "-1 < iVar9 && (p_Var3->fts_number == 0)" (binary_expression "-1 < iVar9" number_literal < identifier) && (parenthesized_expression "(p_Var3->fts_number == 0)" ( (binary_expression "p_Var3->fts_number == 0" (field_expression "p_Var3->fts_number" identifier -> field_identifier) == number_literal) ))) )) )) (compound_statement "{\n            p_Var3->fts_number = 1;\n            p_Var3 = p_Var3->fts_parent;\n            iVar9 = p_Var3->fts_level;\n          }" { (expression_statement "p_Var3->fts_number = 1;" (assignment_expression "p_Var3->fts_number = 1" (field_expression "p_Var3->fts_number" identifier -> field_identifier) = number_literal) ;) (expression_statement "p_Var3 = p_Var3->fts_parent;" (assignment_expression "p_Var3 = p_Var3->fts_parent" identifier = (field_expression "p_Var3->fts_parent" identifier -> field_identifier)) ;) (expression_statement "iVar9 = p_Var3->fts_level;" (assignment_expression "iVar9 = p_Var3->fts_level" identifier = (field_expression "p_Var3->fts_level" identifier -> field_identifier)) ;) })) (expression_statement "pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path);" (assignment_expression "pcVar12 = quotearg_style(shell_escape_always_quoting_style,ent->fts_path)" identifier = (call_expression "quotearg_style(shell_escape_always_quoting_style,ent->fts_path)" identifier (argument_list "(shell_escape_always_quoting_style,ent->fts_path)" ( identifier , (field_expression "ent->fts_path" identifier -> field_identifier) )))) ;) (expression_statement "uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5);" (assignment_expression "uVar13 = dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier = (call_expression "dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier (argument_list "(0,"skipping %s, since it\'s on a different device",5)" ( number_literal , (string_literal ""skipping %s, since it\'s on a different device"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "RVar14 = RM_ERROR;" (assignment_expression "RVar14 = RM_ERROR" identifier = identifier) ;) (expression_statement "error(0,0,uVar13,pcVar12);" (call_expression "error(0,0,uVar13,pcVar12)" identifier (argument_list "(0,0,uVar13,pcVar12)" ( number_literal , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }" else (compound_statement "{\n          bVar18 = (uVar1 & 0xfffd) == 4;\n          RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);\n          if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }\nLAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }\n        }" { (expression_statement "bVar18 = (uVar1 & 0xfffd) == 4;" (assignment_expression "bVar18 = (uVar1 & 0xfffd) == 4" identifier = (binary_expression "(uVar1 & 0xfffd) == 4" (parenthesized_expression "(uVar1 & 0xfffd)" ( (binary_expression "uVar1 & 0xfffd" identifier & number_literal) )) == number_literal)) ;) (expression_statement "RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0);" (assignment_expression "RVar5 = prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0)" identifier = (call_expression "prompt(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0)" identifier (argument_list "(sp,ent,bVar18,x,PA_REMOVE_DIR,(Ternary *)0x0)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(Ternary *)0x0" ( (type_descriptor "Ternary *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (RVar5 == RM_OK) {\n            RVar5 = excise(sp,ent,x,bVar18);\n          }" if (parenthesized_expression "(RVar5 == RM_OK)" ( (binary_expression "RVar5 == RM_OK" identifier == identifier) )) (compound_statement "{\n            RVar5 = excise(sp,ent,x,bVar18);\n          }" { (expression_statement "RVar5 = excise(sp,ent,x,bVar18);" (assignment_expression "RVar5 = excise(sp,ent,x,bVar18)" identifier = (call_expression "excise(sp,ent,x,bVar18)" identifier (argument_list "(sp,ent,x,bVar18)" ( identifier , identifier , identifier , identifier )))) ;) })) (labeled_statement "LAB_00013a75:\n          if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" statement_identifier : (if_statement "if (2 < RVar5 - RM_OK) {\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" if (parenthesized_expression "(2 < RVar5 - RM_OK)" ( (binary_expression "2 < RVar5 - RM_OK" number_literal < (binary_expression "RVar5 - RM_OK" identifier - identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" { comment (expression_statement "__assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");" (call_expression "__assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm")" identifier (argument_list "("VALID_STATUS (s)","src/remove.c",0x261,"rm")" ( (string_literal ""VALID_STATUS (s)"" " string_content ") , (string_literal ""src/remove.c"" " string_content ") , number_literal , (string_literal ""rm"" " string_content ") ))) ;) }))) (if_statement "if (RVar5 == RM_ERROR) {\n            RVar14 = RM_ERROR;\n          }\n          else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }" if (parenthesized_expression "(RVar5 == RM_ERROR)" ( (binary_expression "RVar5 == RM_ERROR" identifier == identifier) )) (compound_statement "{\n            RVar14 = RM_ERROR;\n          }" { (expression_statement "RVar14 = RM_ERROR;" (assignment_expression "RVar14 = RM_ERROR" identifier = identifier) ;) }) (else_clause "else if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }" else (if_statement "if ((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)) {\n            RVar14 = RM_USER_DECLINED;\n          }" if (parenthesized_expression "((RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK))" ( (binary_expression "(RVar5 == RM_USER_DECLINED) && (RVar14 == RM_OK)" (parenthesized_expression "(RVar5 == RM_USER_DECLINED)" ( (binary_expression "RVar5 == RM_USER_DECLINED" identifier == identifier) )) && (parenthesized_expression "(RVar14 == RM_OK)" ( (binary_expression "RVar14 == RM_OK" identifier == identifier) ))) )) (compound_statement "{\n            RVar14 = RM_USER_DECLINED;\n          }" { (expression_statement "RVar14 = RM_USER_DECLINED;" (assignment_expression "RVar14 = RM_USER_DECLINED" identifier = identifier) ;) })))) }))) (goto_statement "goto LAB_00013980;" goto statement_identifier ;)) (case_statement "case 7:\n        pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);\n        uVar13 = dcgettext(0,"traversal failed: %s",5);\n        iVar9 = ent->fts_errno;" case number_literal : (expression_statement "pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path);" (assignment_expression "pcVar12 = quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path)" identifier = (call_expression "quotearg_n_style_colon(0,shell_escape_quoting_style,ent->fts_path)" identifier (argument_list "(0,shell_escape_quoting_style,ent->fts_path)" ( number_literal , identifier , (field_expression "ent->fts_path" identifier -> field_identifier) )))) ;) (expression_statement "uVar13 = dcgettext(0,"traversal failed: %s",5);" (assignment_expression "uVar13 = dcgettext(0,"traversal failed: %s",5)" identifier = (call_expression "dcgettext(0,"traversal failed: %s",5)" identifier (argument_list "(0,"traversal failed: %s",5)" ( number_literal , (string_literal ""traversal failed: %s"" " string_content ") , number_literal )))) ;) (expression_statement "iVar9 = ent->fts_errno;" (assignment_expression "iVar9 = ent->fts_errno" identifier = (field_expression "ent->fts_errno" identifier -> field_identifier)) ;)) })) (expression_statement "RVar14 = RM_ERROR;" (assignment_expression "RVar14 = RM_ERROR" identifier = identifier) ;) (expression_statement "error(0,iVar9,uVar13,pcVar12);" (call_expression "error(0,iVar9,uVar13,pcVar12)" identifier (argument_list "(0,iVar9,uVar13,pcVar12)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "fts_set(sp,ent,4);" (call_expression "fts_set(sp,ent,4)" identifier (argument_list "(sp,ent,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fts_read(sp);" (call_expression "fts_read(sp)" identifier (argument_list "(sp)" ( identifier ))) ;) (goto_statement "goto LAB_00013980;" goto statement_identifier ;) })) (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar8 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar8,uVar13);\n    }" if (parenthesized_expression "(*piVar8 != 0)" ( (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal) )) (compound_statement "{\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar8,uVar13);\n    }" { (expression_statement "RVar14 = RM_ERROR;" (assignment_expression "RVar14 = RM_ERROR" identifier = identifier) ;) (expression_statement "uVar13 = dcgettext(0,"fts_read failed",5);" (assignment_expression "uVar13 = dcgettext(0,"fts_read failed",5)" identifier = (call_expression "dcgettext(0,"fts_read failed",5)" identifier (argument_list "(0,"fts_read failed",5)" ( number_literal , (string_literal ""fts_read failed"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,*piVar8,uVar13);" (call_expression "error(0,*piVar8,uVar13)" identifier (argument_list "(0,*piVar8,uVar13)" ( number_literal , (pointer_expression "*piVar8" * identifier) , identifier ))) ;) })) (expression_statement "iVar9 = fts_close(sp);" (assignment_expression "iVar9 = fts_close(sp)" identifier = (call_expression "fts_close(sp)" identifier (argument_list "(sp)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) {\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar8,uVar13);\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      RVar14 = RM_ERROR;\n      uVar13 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar8,uVar13);\n    }" { (expression_statement "RVar14 = RM_ERROR;" (assignment_expression "RVar14 = RM_ERROR" identifier = identifier) ;) (expression_statement "uVar13 = dcgettext(0,"fts_close failed",5);" (assignment_expression "uVar13 = dcgettext(0,"fts_close failed",5)" identifier = (call_expression "dcgettext(0,"fts_close failed",5)" identifier (argument_list "(0,"fts_close failed",5)" ( number_literal , (string_literal ""fts_close failed"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,*piVar8,uVar13);" (call_expression "error(0,*piVar8,uVar13)" identifier (argument_list "(0,*piVar8,uVar13)" ( number_literal , (pointer_expression "*piVar8" * identifier) , identifier ))) ;) })) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return RVar14;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return RVar14;\n  }" { (return_statement "return RVar14;" return identifier ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int FUN_00013910(int *param_1,int param_2)\n\n{\n  ushort uVar1;\n  undefined2 uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  DIR *__dirp;\n  dirent64 *pdVar11;\n  char *pcVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  stat64 sStack_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }\n                    \n  FUN_0001c5a0();\n}\n\n" (function_definition "int FUN_00013910(int *param_1,int param_2)\n\n{\n  ushort uVar1;\n  undefined2 uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  DIR *__dirp;\n  dirent64 *pdVar11;\n  char *pcVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  stat64 sStack_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }\n                    \n  FUN_0001c5a0();\n}" primitive_type (function_declarator "FUN_00013910(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  undefined2 uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  DIR *__dirp;\n  dirent64 *pdVar11;\n  char *pcVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  stat64 sStack_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }\n                    \n  FUN_0001c5a0();\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined2 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "dirent64 *pdVar11;" type_identifier (pointer_declarator "*pdVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "stat64 sStack_80;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x13919;" (assignment_expression "uStack_14 = 0x13919" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    iVar17 = 2;\n  }" { (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) }) (else_clause "else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }" else (compound_statement "{\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }" { (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) (expression_statement "iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);" (assignment_expression "iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0)" identifier = (call_expression "FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0)" identifier (argument_list "(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0)" ( identifier , (binary_expression "(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600" (parenthesized_expression "(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0)" ( (binary_expression "-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0" (unary_expression "-(uint)(*(char *)(param_2 + 8) == '\0')" - (call_expression "(uint)(*(char *)(param_2 + 8) == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(char *)(param_2 + 8) == '\0')" ( (binary_expression "*(char *)(param_2 + 8) == '\0'" (pointer_expression "*(char *)(param_2 + 8)" * (cast_expression "(char *)(param_2 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )))) & number_literal) )) + number_literal) , number_literal )))) ;) (labeled_statement "code_r0x00013980:\n    iVar8 = fts_read(iVar7);" statement_identifier : (expression_statement "iVar8 = fts_read(iVar7);" (assignment_expression "iVar8 = fts_read(iVar7)" identifier = (call_expression "fts_read(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;)) (if_statement "if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }" { (expression_statement "uVar1 = *(ushort *)(iVar8 + 0x3c);" (assignment_expression "uVar1 = *(ushort *)(iVar8 + 0x3c)" identifier = (pointer_expression "*(ushort *)(iVar8 + 0x3c)" * (cast_expression "(ushort *)(iVar8 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3c)" ( (binary_expression "iVar8 + 0x3c" identifier + number_literal) ))))) ;) (switch_statement "switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }" switch (parenthesized_expression "(uVar1)" ( identifier )) (compound_statement "{\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }" { (case_statement "default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();" default : (expression_statement "uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(0,3,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar2 = *(undefined2 *)(iVar8 + 0x3c);" (assignment_expression "uVar2 = *(undefined2 *)(iVar8 + 0x3c)" identifier = (pointer_expression "*(undefined2 *)(iVar8 + 0x3c)" * (cast_expression "(undefined2 *)(iVar8 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3c)" ( (binary_expression "iVar8 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);" (assignment_expression "uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" identifier = (call_expression "dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" identifier (argument_list "(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" ( number_literal , (string_literal ""unexpected failure: fts_info=%d: %s\nplease report to %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");" (call_expression "error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org")" identifier (argument_list "(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org")" ( number_literal , number_literal , identifier , identifier , identifier , (string_literal ""bug-coreutils@gnu.org"" " string_content ") ))) ;) (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;" case number_literal : (if_statement "if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }" if (parenthesized_expression "(*(char *)(param_2 + 9) == '\0')" ( (binary_expression "*(char *)(param_2 + 9) == '\0'" (pointer_expression "*(char *)(param_2 + 9)" * (cast_expression "(char *)(param_2 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 9)" ( (binary_expression "param_2 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }" { (if_statement "if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }" if (parenthesized_expression "(*(char *)(param_2 + 10) == '\0')" ( (binary_expression "*(char *)(param_2 + 10) == '\0'" (pointer_expression "*(char *)(param_2 + 10)" * (cast_expression "(char *)(param_2 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }" { (labeled_statement "code_r0x00013d50:\n            uVar15 = 0x15;" statement_identifier : (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" identifier = number_literal) ;)) }) (else_clause "else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }" else (compound_statement "{\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }" { (expression_statement "iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);" (assignment_expression "iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900)" identifier = (call_expression "openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900)" identifier (argument_list "(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900)" ( (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) , (pointer_expression "*(char **)(iVar8 + 0x18)" * (cast_expression "(char **)(iVar8 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (compound_statement "{\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }" { (expression_statement "__dirp = fdopendir(iVar10);" (assignment_expression "__dirp = fdopendir(iVar10)" identifier = (call_expression "fdopendir(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" if (parenthesized_expression "(__dirp == (DIR *)0x0)" ( (binary_expression "__dirp == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                close(iVar10);\n              }" { (expression_statement "close(iVar10);" (call_expression "close(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) }) (else_clause "else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" else (compound_statement "{\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" { (expression_statement "piVar13 = __errno_location();" (assignment_expression "piVar13 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar13 = 0;" (assignment_expression "*piVar13 = 0" (pointer_expression "*piVar13" * identifier) = number_literal) ;) (do_statement "do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));" do (compound_statement "{\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                }" { (expression_statement "pdVar11 = readdir64(__dirp);" (assignment_expression "pdVar11 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }" if (parenthesized_expression "(pdVar11 == (dirent64 *)0x0)" ( (binary_expression "pdVar11 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }" { (expression_statement "iVar10 = *piVar13;" (assignment_expression "iVar10 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) (if_statement "if (iVar10 != 0) goto code_r0x00013b61;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00013b61;" goto statement_identifier ;)) (goto_statement "goto code_r0x00013ba0;" goto statement_identifier ;) })) }) while (parenthesized_expression "((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))))" ( (binary_expression "(pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')))" (parenthesized_expression "(pdVar11->d_name[0] == '.')" ( (binary_expression "pdVar11->d_name[0] == '.'" (subscript_expression "pdVar11->d_name[0]" (field_expression "pdVar11->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')))" ( (parenthesized_expression "(pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))" ( (binary_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')" (binary_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0'" (subscript_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1]" (field_expression "pdVar11->d_name" identifier -> field_identifier) [ (binary_expression "(pdVar11->d_name[1] == '.') + 1" (parenthesized_expression "(pdVar11->d_name[1] == '.')" ( (binary_expression "pdVar11->d_name[1] == '.'" (subscript_expression "pdVar11->d_name[1]" (field_expression "pdVar11->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')" ( (binary_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'" (subscript_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1]" (field_expression "pdVar11->d_name" identifier -> field_identifier) [ (binary_expression "(pdVar11->d_name[1] == '.') + 1" (parenthesized_expression "(pdVar11->d_name[1] == '.')" ( (binary_expression "pdVar11->d_name[1] == '.'" (subscript_expression "pdVar11->d_name[1]" (field_expression "pdVar11->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'/'" ' character ')) ))) )) ))) )) ;) (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier ))) ;) }))) })) (labeled_statement "code_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;" statement_identifier : (if_statement "if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;" if (parenthesized_expression "(*(char *)(param_2 + 10) == '\0')" ( (binary_expression "*(char *)(param_2 + 10) == '\0'" (pointer_expression "*(char *)(param_2 + 10)" * (cast_expression "(char *)(param_2 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00013d50;" goto statement_identifier ;))) (expression_statement "uVar15 = 0x27;" (assignment_expression "uVar15 = 0x27" identifier = number_literal) ;) }))) (expression_statement "uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(4,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar9 = dcgettext(0,"cannot remove %s",5);" (assignment_expression "uVar9 = dcgettext(0,"cannot remove %s",5)" identifier = (call_expression "dcgettext(0,"cannot remove %s",5)" identifier (argument_list "(0,"cannot remove %s",5)" ( number_literal , (string_literal ""cannot remove %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,uVar15,uVar9,uVar16);" (call_expression "error(0,uVar15,uVar9,uVar16)" identifier (argument_list "(0,uVar15,uVar9,uVar16)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "iVar17 = *(int *)(iVar8 + 4);" (assignment_expression "iVar17 = *(int *)(iVar8 + 4)" identifier = (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" identifier = (pointer_expression "*(int *)(iVar17 + 0x30)" * (cast_expression "(int *)(iVar17 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) ))))) ;) (while_statement "while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" while (parenthesized_expression "((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)))" ( (parenthesized_expression "(-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))" ( (binary_expression "-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)" (binary_expression "-1 < iVar10" number_literal < identifier) && (parenthesized_expression "(*(int *)(iVar17 + 0x10) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x10) == 0" (pointer_expression "*(int *)(iVar17 + 0x10)" * (cast_expression "(int *)(iVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) == number_literal) ))) )) )) (compound_statement "{\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" { (expression_statement "*(undefined4 *)(iVar17 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar17 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar17 + 0x10)" * (cast_expression "(undefined4 *)(iVar17 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = *(int *)(iVar17 + 4);" (assignment_expression "iVar17 = *(int *)(iVar17 + 4)" identifier = (pointer_expression "*(int *)(iVar17 + 4)" * (cast_expression "(int *)(iVar17 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" identifier = (pointer_expression "*(int *)(iVar17 + 0x30)" * (cast_expression "(int *)(iVar17 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }" else (compound_statement "{\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }" { (labeled_statement "code_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }" statement_identifier : (if_statement "if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }" if (parenthesized_expression "(*(int *)(iVar8 + 0x30) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x30) != 0" (pointer_expression "*(int *)(iVar8 + 0x30)" * (cast_expression "(int *)(iVar8 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x30)" ( (binary_expression "iVar8 + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }" { (labeled_statement "code_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);" statement_identifier : (expression_statement "iVar10 = FUN_00013400(param_2,2,&sStack_80);" (assignment_expression "iVar10 = FUN_00013400(param_2,2,&sStack_80)" identifier = (call_expression "FUN_00013400(param_2,2,&sStack_80)" identifier (argument_list "(param_2,2,&sStack_80)" ( identifier , number_literal , (pointer_expression "&sStack_80" & identifier) )))) ;)) (if_statement "if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }" { (if_statement "if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;" if (parenthesized_expression "((int)sStack_80.st_dev != 4)" ( (binary_expression "(int)sStack_80.st_dev != 4" (cast_expression "(int)sStack_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "sStack_80.st_dev" identifier . field_identifier)) != number_literal) )) (goto_statement "goto code_r0x00013980;" goto statement_identifier ;)) (expression_statement "iVar10 = FUN_00013130(1);" (assignment_expression "iVar10 = FUN_00013130(1)" identifier = (call_expression "FUN_00013130(1)" identifier (argument_list "(1)" ( number_literal )))) ;) (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" identifier (argument_list "(iVar7,iVar8,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (if_statement "if (iVar10 == 2) goto code_r0x00013980;" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (goto_statement "goto code_r0x00013980;" goto statement_identifier ;)) })) (expression_statement "iVar3 = *(int *)(iVar8 + 4);" (assignment_expression "iVar3 = *(int *)(iVar8 + 4)" identifier = (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar3 + 0x30);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x30)" identifier = (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) (while_statement "while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }" while (parenthesized_expression "((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0)))" ( (parenthesized_expression "(-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))" ( (binary_expression "-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0)" (binary_expression "-1 < iVar4" number_literal < identifier) && (parenthesized_expression "(*(int *)(iVar3 + 0x10) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x10) == 0" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) == number_literal) ))) )) )) (compound_statement "{\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }" { (expression_statement "*(undefined4 *)(iVar3 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar3 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = *(int *)(iVar3 + 4);" (assignment_expression "iVar3 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar3 + 0x30);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x30)" identifier = (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) })) (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" identifier (argument_list "(iVar7,iVar8,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (goto_statement "goto code_r0x00013a75;" goto statement_identifier ;) }))) (expression_statement "uVar15 = *(undefined4 *)(iVar8 + 0x18);" (assignment_expression "uVar15 = *(undefined4 *)(iVar8 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = (char *)FUN_000147f0(uVar15);" (assignment_expression "pcVar12 = (char *)FUN_000147f0(uVar15)" identifier = (cast_expression "(char *)FUN_000147f0(uVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000147f0(uVar15)" identifier (argument_list "(uVar15)" ( identifier ))))) ;) (if_statement "if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }" if (parenthesized_expression "((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              )))" ( (binary_expression "(*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))" (parenthesized_expression "(*pcVar12 == '.')" ( (binary_expression "*pcVar12 == '.'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))" ( (parenthesized_expression "(pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              )" ( (binary_expression "pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')" (binary_expression "pcVar12[(pcVar12[1] == '.') + 1] == '\0'" (subscript_expression "pcVar12[(pcVar12[1] == '.') + 1]" identifier [ (binary_expression "(pcVar12[1] == '.') + 1" (parenthesized_expression "(pcVar12[1] == '.')" ( (binary_expression "pcVar12[1] == '.'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar12[(pcVar12[1] == '.') + 1] == '/')" ( (binary_expression "pcVar12[(pcVar12[1] == '.') + 1] == '/'" (subscript_expression "pcVar12[(pcVar12[1] == '.') + 1]" identifier [ (binary_expression "(pcVar12[1] == '.') + 1" (parenthesized_expression "(pcVar12[1] == '.')" ( (binary_expression "pcVar12[1] == '.'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) )) + number_literal) ]) == (char_literal "'/'" ' character ')) ))) )) ))) )) (compound_statement "{\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }" { (expression_statement "uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(2,4,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar16 = FUN_00016590(1,4,&DAT_0001db66);" (assignment_expression "uVar16 = FUN_00016590(1,4,&DAT_0001db66)" identifier = (call_expression "FUN_00016590(1,4,&DAT_0001db66)" identifier (argument_list "(1,4,&DAT_0001db66)" ( number_literal , number_literal , (pointer_expression "&DAT_0001db66" & identifier) )))) ;) (expression_statement "uVar9 = FUN_00016590(0,4,&DAT_0001db67);" (assignment_expression "uVar9 = FUN_00016590(0,4,&DAT_0001db67)" identifier = (call_expression "FUN_00016590(0,4,&DAT_0001db67)" identifier (argument_list "(0,4,&DAT_0001db67)" ( number_literal , number_literal , (pointer_expression "&DAT_0001db67" & identifier) )))) ;) (expression_statement "uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);" (assignment_expression "uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5)" identifier = (call_expression "dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5)" identifier (argument_list "(0,"refusing to remove %s or %s directory: skipping %s",5)" ( number_literal , (string_literal ""refusing to remove %s or %s directory: skipping %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar14,uVar9,uVar16,uVar15);" (call_expression "error(0,0,uVar14,uVar9,uVar16,uVar15)" identifier (argument_list "(0,0,uVar14,uVar9,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }" else (compound_statement "{\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }" { (expression_statement "piVar13 = *(int **)(param_2 + 0xc);" (assignment_expression "piVar13 = *(int **)(param_2 + 0xc)" identifier = (pointer_expression "*(int **)(param_2 + 0xc)" * (cast_expression "(int **)(param_2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }" if (parenthesized_expression "((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13))" ( (binary_expression "(piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)" (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)" ( (binary_expression "*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13" (binary_expression "*(int *)(iVar8 + 0xa0) == piVar13[1]" (pointer_expression "*(int *)(iVar8 + 0xa0)" * (cast_expression "(int *)(iVar8 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xa0)" ( (binary_expression "iVar8 + 0xa0" identifier + number_literal) )))) == (subscript_expression "piVar13[1]" identifier [ number_literal ])) && (binary_expression "*(int *)(iVar8 + 0x9c) == *piVar13" (pointer_expression "*(int *)(iVar8 + 0x9c)" * (cast_expression "(int *)(iVar8 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x9c)" ( (binary_expression "iVar8 + 0x9c" identifier + number_literal) )))) == (pointer_expression "*piVar13" * identifier))) ))) )) (compound_statement "{\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }" { (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];" (assignment_expression "bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3]" identifier = (binary_expression "*(int *)(iVar8 + 0x48) == piVar13[3]" (pointer_expression "*(int *)(iVar8 + 0x48)" * (cast_expression "(int *)(iVar8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x48)" ( (binary_expression "iVar8 + 0x48" identifier + number_literal) )))) == (subscript_expression "piVar13[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];" (assignment_expression "bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2]" identifier = (binary_expression "*(int *)(iVar8 + 0x44) == piVar13[2]" (pointer_expression "*(int *)(iVar8 + 0x44)" * (cast_expression "(int *)(iVar8 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x44)" ( (binary_expression "iVar8 + 0x44" identifier + number_literal) )))) == (subscript_expression "piVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "bVar21 = bVar5 && bVar6;" (assignment_expression "bVar21 = bVar5 && bVar6" identifier = (binary_expression "bVar5 && bVar6" identifier && identifier)) ;) (if_statement "if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }" if (parenthesized_expression "(bVar5 && bVar6)" ( (binary_expression "bVar5 && bVar6" identifier && identifier) )) (compound_statement "{\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }" { (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) (expression_statement "pbVar18 = *(byte **)(iVar8 + 0x1c);" (assignment_expression "pbVar18 = *(byte **)(iVar8 + 0x1c)" identifier = (pointer_expression "*(byte **)(iVar8 + 0x1c)" * (cast_expression "(byte **)(iVar8 + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pbVar19 = &DAT_0001dff2;" (assignment_expression "pbVar19 = &DAT_0001dff2" identifier = (pointer_expression "&DAT_0001dff2" & identifier)) ;) (do_statement "do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);" do (compound_statement "{\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar18 < *pbVar19;" (assignment_expression "bVar20 = *pbVar18 < *pbVar19" identifier = (binary_expression "*pbVar18 < *pbVar19" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar21 = *pbVar18 == *pbVar19;" (assignment_expression "bVar21 = *pbVar18 == *pbVar19" identifier = (binary_expression "*pbVar18 == *pbVar19" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar21)" ( identifier )) ;) (if_statement "if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }" if (parenthesized_expression "((!bVar20 && !bVar21) == bVar20)" ( (binary_expression "(!bVar20 && !bVar21) == bVar20" (parenthesized_expression "(!bVar20 && !bVar21)" ( (binary_expression "!bVar20 && !bVar21" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar21" ! identifier)) )) == identifier) )) (compound_statement "{\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }" { (expression_statement "uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016710(4,*(byte **)(iVar8 + 0x1c))" identifier (argument_list "(4,*(byte **)(iVar8 + 0x1c))" ( number_literal , (pointer_expression "*(byte **)(iVar8 + 0x1c)" * (cast_expression "(byte **)(iVar8 + 0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);" (assignment_expression "uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5)" identifier = (call_expression "dcgettext(0,"it is dangerous to operate recursively on %s",5)" identifier (argument_list "(0,"it is dangerous to operate recursively on %s",5)" ( number_literal , (string_literal ""it is dangerous to operate recursively on %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar16,uVar15);" (call_expression "error(0,0,uVar16,uVar15)" identifier (argument_list "(0,0,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }" else (compound_statement "{\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }" { (expression_statement "uVar15 = FUN_00016590(1,4,&DAT_0001dff2);" (assignment_expression "uVar15 = FUN_00016590(1,4,&DAT_0001dff2)" identifier = (call_expression "FUN_00016590(1,4,&DAT_0001dff2)" identifier (argument_list "(1,4,&DAT_0001dff2)" ( number_literal , number_literal , (pointer_expression "&DAT_0001dff2" & identifier) )))) ;) (expression_statement "uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(0,4,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;" (assignment_expression "uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)" identifier = (call_expression "dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)" identifier (argument_list "(0,"it is dangerous to operate recursively on %s (same as %s)",5)" ( number_literal , (string_literal ""it is dangerous to operate recursively on %s (same as %s)"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar9,uVar16,uVar15);" (call_expression "error(0,0,uVar9,uVar16,uVar15)" identifier (argument_list "(0,0,uVar9,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier , identifier ))) ;) }))) (expression_statement "uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);" (assignment_expression "uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5)" identifier = (call_expression "dcgettext(0,"use --no-preserve-root to override this failsafe",5)" identifier (argument_list "(0,"use --no-preserve-root to override this failsafe",5)" ( number_literal , (string_literal ""use --no-preserve-root to override this failsafe"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar15);" (call_expression "error(0,0,uVar15)" identifier (argument_list "(0,0,uVar15)" ( number_literal , number_literal , identifier ))) ;) (goto_statement "goto code_r0x00013dab;" goto statement_identifier ;) })) })) (if_statement "if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;" if (parenthesized_expression "(*(char *)(param_2 + 0x10) == '\0')" ( (binary_expression "*(char *)(param_2 + 0x10) == '\0'" (pointer_expression "*(char *)(param_2 + 0x10)" * (cast_expression "(char *)(param_2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00013c01;" goto statement_identifier ;)) (expression_statement "pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);" (assignment_expression "pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0)" identifier = (cast_expression "(char *)FUN_00014a10(uVar15,&DAT_0001db66,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014a10(uVar15,&DAT_0001db66,0)" identifier (argument_list "(uVar15,&DAT_0001db66,0)" ( identifier , (pointer_expression "&DAT_0001db66" & identifier) , number_literal ))))) ;) (if_statement "if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }" if (parenthesized_expression "((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               )" ( (binary_expression "(pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)" (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)" ( (comma_expression "iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0" (assignment_expression "iVar10 = __lxstat64(3,pcVar12,&sStack_80)" identifier = (call_expression "__lxstat64(3,pcVar12,&sStack_80)" identifier (argument_list "(3,pcVar12,&sStack_80)" ( number_literal , identifier , (pointer_expression "&sStack_80" & identifier) )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }" { (expression_statement "uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));" (assignment_expression "uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18))" identifier = (call_expression "FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18))" identifier (argument_list "(1,4,*(undefined4 *)(iVar8 + 0x18))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "uVar16 = FUN_00016590(0,4,pcVar12);" (assignment_expression "uVar16 = FUN_00016590(0,4,pcVar12)" identifier = (call_expression "FUN_00016590(0,4,pcVar12)" identifier (argument_list "(0,4,pcVar12)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);" (assignment_expression "uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5)" identifier = (call_expression "dcgettext(0,"failed to stat %s: skipping %s",5)" identifier (argument_list "(0,"failed to stat %s: skipping %s",5)" ( number_literal , (string_literal ""failed to stat %s: skipping %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar9,uVar16,uVar15);" (call_expression "error(0,0,uVar9,uVar16,uVar15)" identifier (argument_list "(0,0,uVar9,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) }) (else_clause "else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }" else (compound_statement "{\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }" { (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) (if_statement "if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;" if (parenthesized_expression "(*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev)" ( (binary_expression "*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev" (binary_expression "*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_" (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) == (field_expression "sStack_80.st_dev._4_4_" (field_expression "sStack_80.st_dev" identifier . field_identifier) . field_identifier)) && (binary_expression "*(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) == (cast_expression "(int)sStack_80.st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "sStack_80.st_dev" identifier . field_identifier)))) )) (goto_statement "goto code_r0x00013c01;" goto statement_identifier ;)) (expression_statement "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(4,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);" (assignment_expression "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier = (call_expression "dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier (argument_list "(0,"skipping %s, since it\'s on a different device",5)" ( number_literal , (string_literal ""skipping %s, since it\'s on a different device"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar16,uVar15);" (call_expression "error(0,0,uVar16,uVar15)" identifier (argument_list "(0,0,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);" (assignment_expression "uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5)" identifier = (call_expression "dcgettext(0,"and --preserve-root=all is in effect",5)" identifier (argument_list "(0,"and --preserve-root=all is in effect",5)" ( number_literal , (string_literal ""and --preserve-root=all is in effect"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar15);" (call_expression "error(0,0,uVar15)" identifier (argument_list "(0,0,uVar15)" ( number_literal , number_literal , identifier ))) ;) }))) }))) }))) (labeled_statement "code_r0x00013dab:\n        fts_set(iVar7,iVar8,4);" statement_identifier : (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" identifier (argument_list "(iVar7,iVar8,4)" ( identifier , identifier , number_literal ))) ;)) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (goto_statement "goto code_r0x00013980;" goto statement_identifier ;)) (case_statement "case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;" case number_literal : (expression_statement "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(0,3,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5)" identifier = (call_expression "dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5)" identifier (argument_list "(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5)" ( number_literal , (string_literal ""WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 6:" case number_literal :) (case_statement "case 8:" case number_literal :) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0xc:" case number_literal :) (case_statement "case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;" case number_literal : (if_statement "if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }" if (parenthesized_expression "((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc)))" ( (binary_expression "(((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))" (parenthesized_expression "(((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30)))" ( (binary_expression "((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))" (parenthesized_expression "((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0'))" ( (binary_expression "(uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')" (parenthesized_expression "(uVar1 == 6)" ( (binary_expression "uVar1 == 6" identifier == number_literal) )) && (parenthesized_expression "(*(char *)(param_2 + 8) != '\0')" ( (binary_expression "*(char *)(param_2 + 8) != '\0'" (pointer_expression "*(char *)(param_2 + 8)" * (cast_expression "(char *)(param_2 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(0 < *(int *)(iVar8 + 0x30))" ( (binary_expression "0 < *(int *)(iVar8 + 0x30)" number_literal < (pointer_expression "*(int *)(iVar8 + 0x30)" * (cast_expression "(int *)(iVar8 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x30)" ( (binary_expression "iVar8 + 0x30" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))" ( (binary_expression "*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc)" (binary_expression "*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10)" (pointer_expression "*(int *)(iVar8 + 0x48)" * (cast_expression "(int *)(iVar8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x48)" ( (binary_expression "iVar8 + 0x48" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) || (binary_expression "*(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc)" (pointer_expression "*(int *)(iVar8 + 0x44)" * (cast_expression "(int *)(iVar8 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x44)" ( (binary_expression "iVar8 + 0x44" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))))) ))) )) (compound_statement "{\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }" { (expression_statement "iVar17 = *(int *)(iVar8 + 4);" (assignment_expression "iVar17 = *(int *)(iVar8 + 4)" identifier = (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" identifier = (pointer_expression "*(int *)(iVar17 + 0x30)" * (cast_expression "(int *)(iVar17 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) ))))) ;) (while_statement "while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" while (parenthesized_expression "((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)))" ( (parenthesized_expression "(-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))" ( (binary_expression "-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)" (binary_expression "-1 < iVar10" number_literal < identifier) && (parenthesized_expression "(*(int *)(iVar17 + 0x10) == 0)" ( (binary_expression "*(int *)(iVar17 + 0x10) == 0" (pointer_expression "*(int *)(iVar17 + 0x10)" * (cast_expression "(int *)(iVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) == number_literal) ))) )) )) (compound_statement "{\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" { (expression_statement "*(undefined4 *)(iVar17 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar17 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar17 + 0x10)" * (cast_expression "(undefined4 *)(iVar17 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = *(int *)(iVar17 + 4);" (assignment_expression "iVar17 = *(int *)(iVar17 + 4)" identifier = (pointer_expression "*(int *)(iVar17 + 4)" * (cast_expression "(int *)(iVar17 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" identifier = (pointer_expression "*(int *)(iVar17 + 0x30)" * (cast_expression "(int *)(iVar17 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) ))))) ;) })) (expression_statement "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(4,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);" (assignment_expression "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier = (call_expression "dcgettext(0,"skipping %s, since it\'s on a different device",5)" identifier (argument_list "(0,"skipping %s, since it\'s on a different device",5)" ( number_literal , (string_literal ""skipping %s, since it\'s on a different device"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "error(0,0,uVar16,uVar15);" (call_expression "error(0,0,uVar16,uVar15)" identifier (argument_list "(0,0,uVar16,uVar15)" ( number_literal , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }" else (compound_statement "{\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }" { (expression_statement "iVar10 = FUN_00013400(param_2,3,0);" (assignment_expression "iVar10 = FUN_00013400(param_2,3,0)" identifier = (call_expression "FUN_00013400(param_2,3,0)" identifier (argument_list "(param_2,3,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }" { (expression_statement "iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);" (assignment_expression "iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4)" identifier = (call_expression "FUN_00013130((uVar1 & 0xfffd) == 4)" identifier (argument_list "((uVar1 & 0xfffd) == 4)" ( (binary_expression "(uVar1 & 0xfffd) == 4" (parenthesized_expression "(uVar1 & 0xfffd)" ( (binary_expression "uVar1 & 0xfffd" identifier & number_literal) )) == number_literal) )))) ;) })) (labeled_statement "code_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" statement_identifier : (if_statement "if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" if (parenthesized_expression "(2 < iVar10 - 2U)" ( (binary_expression "2 < iVar10 - 2U" number_literal < (binary_expression "iVar10 - 2U" identifier - number_literal)) )) (compound_statement "{\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" { (expression_statement "__assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");" (call_expression "__assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm")" identifier (argument_list "("VALID_STATUS (s)","src/remove.c",0x261,"rm")" ( (string_literal ""VALID_STATUS (s)"" " string_content ") , (string_literal ""src/remove.c"" " string_content ") , number_literal , (string_literal ""rm"" " string_content ") ))) ;) }))) (if_statement "if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }" if (parenthesized_expression "(iVar10 == 4)" ( (binary_expression "iVar10 == 4" identifier == number_literal) )) (compound_statement "{\n            iVar17 = 4;\n          }" { (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) }) (else_clause "else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }" else (if_statement "if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }" if (parenthesized_expression "((iVar10 == 3) && (iVar17 == 2))" ( (binary_expression "(iVar10 == 3) && (iVar17 == 2)" (parenthesized_expression "(iVar10 == 3)" ( (binary_expression "iVar10 == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar17 == 2)" ( (binary_expression "iVar17 == 2" identifier == number_literal) ))) )) (compound_statement "{\n            iVar17 = 3;\n          }" { (expression_statement "iVar17 = 3;" (assignment_expression "iVar17 = 3" identifier = number_literal) ;) })))) }))) (goto_statement "goto code_r0x00013980;" goto statement_identifier ;)) (case_statement "case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);" case number_literal : (expression_statement "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier = (call_expression "FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" identifier (argument_list "(0,3,*(undefined4 *)(iVar8 + 0x1c))" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar9 = dcgettext(0,"traversal failed: %s",5);" (assignment_expression "uVar9 = dcgettext(0,"traversal failed: %s",5)" identifier = (call_expression "dcgettext(0,"traversal failed: %s",5)" identifier (argument_list "(0,"traversal failed: %s",5)" ( number_literal , (string_literal ""traversal failed: %s"" " string_content ") , number_literal )))) ;) (expression_statement "uVar15 = *(undefined4 *)(iVar8 + 0x20);" (assignment_expression "uVar15 = *(undefined4 *)(iVar8 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x20)" * (cast_expression "(undefined4 *)(iVar8 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) ))))) ;)) })) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "error(0,uVar15,uVar9,uVar16);" (call_expression "error(0,uVar15,uVar9,uVar16)" identifier (argument_list "(0,uVar15,uVar9,uVar16)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" identifier (argument_list "(iVar7,iVar8,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (goto_statement "goto code_r0x00013980;" goto statement_identifier ;) })) (expression_statement "piVar13 = __errno_location();" (assignment_expression "piVar13 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }" if (parenthesized_expression "(*piVar13 != 0)" ( (binary_expression "*piVar13 != 0" (pointer_expression "*piVar13" * identifier) != number_literal) )) (compound_statement "{\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }" { (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "uVar15 = dcgettext(0,"fts_read failed",5);" (assignment_expression "uVar15 = dcgettext(0,"fts_read failed",5)" identifier = (call_expression "dcgettext(0,"fts_read failed",5)" identifier (argument_list "(0,"fts_read failed",5)" ( number_literal , (string_literal ""fts_read failed"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,*piVar13,uVar15);" (call_expression "error(0,*piVar13,uVar15)" identifier (argument_list "(0,*piVar13,uVar15)" ( number_literal , (pointer_expression "*piVar13" * identifier) , identifier ))) ;) })) (expression_statement "iVar7 = fts_close(iVar7);" (assignment_expression "iVar7 = fts_close(iVar7)" identifier = (call_expression "fts_close(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }" { (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "uVar15 = dcgettext(0,"fts_close failed",5);" (assignment_expression "uVar15 = dcgettext(0,"fts_close failed",5)" identifier = (call_expression "dcgettext(0,"fts_close failed",5)" identifier (argument_list "(0,"fts_close failed",5)" ( number_literal , (string_literal ""fts_close failed"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,*piVar13,uVar15);" (call_expression "error(0,*piVar13,uVar15)" identifier (argument_list "(0,*piVar13,uVar15)" ( number_literal , (pointer_expression "*piVar13" * identifier) , identifier ))) ;) })) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar17;\n  }" { (return_statement "return iVar17;" return identifier ;) })) (expression_statement "FUN_0001c5a0();" (call_expression "FUN_0001c5a0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )))) & LIT) )) + LIT) , LIT )))) ;) (labeled_statement statement_identifier : (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (case_statement case LIT : (if_statement if (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 { (if_statement if (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) == (char_literal ' character ')) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression (field_expression IDENT -> field_identifier) [ (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) == (char_literal ' character ')) )) + LIT) ]) == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression (subscript_expression (field_expression IDENT -> field_identifier) [ (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) == (char_literal ' character ')) )) + LIT) ]) == (char_literal ' character ')) ))) )) ))) )) ;) (expression_statement (call_expression IDENT (argument_list ( 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) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < IDENT) && (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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (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 IDENT (argument_list ( IDENT , LIT , (pointer_expression & IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < IDENT) && (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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) + LIT) ]) == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) + LIT) ]) == (char_literal ' character ')) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (subscript_expression IDENT [ LIT ])) && (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT && IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT && IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT ))) ;) (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) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (field_expression (field_expression IDENT . field_identifier) . field_identifier)) && (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT ))) ;) }))) }))) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < IDENT) && (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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) }))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , 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 = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * IDENT) , IDENT ))) ;) })) (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 IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * IDENT) , IDENT ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int FUN_00013910(int *param_1,int param_2)\n\n{\n  ushort uVar1;\n  undefined2 uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  DIR *__dirp;\n  dirent64 *pdVar11;\n  char *pcVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  stat64 sStack_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }\n                    \n  FUN_0001c5a0();\n}" (primitive_type "int") (function_declarator "FUN_00013910(int *param_1,int param_2)" (identifier "FUN_00013910") (parameter_list "(int *param_1,int param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  ushort uVar1;\n  undefined2 uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  DIR *__dirp;\n  dirent64 *pdVar11;\n  char *pcVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  stat64 sStack_80;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x13919;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }\n                    \n  FUN_0001c5a0();\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "undefined2 uVar2;" (type_identifier "undefined2") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "bool bVar6;" (primitive_type "bool") (identifier "bVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "DIR *__dirp;" (type_identifier "DIR") (pointer_declarator "*__dirp" (* "*") (identifier "__dirp")) (; ";")) (declaration "dirent64 *pdVar11;" (type_identifier "dirent64") (pointer_declarator "*pdVar11" (* "*") (identifier "pdVar11")) (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar20;" (primitive_type "bool") (identifier "bVar20") (; ";")) (declaration "bool bVar21;" (primitive_type "bool") (identifier "bVar21") (; ";")) (declaration "byte bVar22;" (type_identifier "byte") (identifier "bVar22") (; ";")) (declaration "stat64 sStack_80;" (type_identifier "stat64") (identifier "sStack_80") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" (identifier "bVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x13919;" (assignment_expression "uStack_14 = 0x13919" (identifier "uStack_14") (= "=") (number_literal "0x13919")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (*param_1 == 0) {\n    iVar17 = 2;\n  }\n  else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar17 = 2;\n  }" ({ "{") (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" (identifier "iVar17") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }" (else "else") (compound_statement "{\n    iVar17 = 2;\n    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);\ncode_r0x00013980:\n    iVar8 = fts_read(iVar7);\n    if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }\n    piVar13 = __errno_location();\n    if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }\n    iVar7 = fts_close(iVar7);\n    if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }\n  }" ({ "{") (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" (identifier "iVar17") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);" (assignment_expression "iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0)" (identifier "iVar7") (= "=") (call_expression "FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0)" (identifier "FUN_00017550") (argument_list "(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0)" (( "(") (identifier "param_1") (, ",") (binary_expression "(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600" (parenthesized_expression "(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0)" (( "(") (binary_expression "-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0" (unary_expression "-(uint)(*(char *)(param_2 + 8) == '\0')" (- "-") (call_expression "(uint)(*(char *)(param_2 + 8) == '\0')" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(char *)(param_2 + 8) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 8) == '\0'" (pointer_expression "*(char *)(param_2 + 8)" (* "*") (cast_expression "(char *)(param_2 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) (& "&") (number_literal "0xffffffc0")) () ")")) (+ "+") (number_literal "600")) (, ",") (number_literal "0") () ")")))) (; ";")) (labeled_statement "code_r0x00013980:\n    iVar8 = fts_read(iVar7);" (statement_identifier "code_r0x00013980") (: ":") (expression_statement "iVar8 = fts_read(iVar7);" (assignment_expression "iVar8 = fts_read(iVar7)" (identifier "iVar8") (= "=") (call_expression "fts_read(iVar7)" (identifier "fts_read") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";"))) (if_statement "if (iVar8 != 0) {\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar1 = *(ushort *)(iVar8 + 0x3c);\n      switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }\n      iVar17 = 4;\n      error(0,uVar15,uVar9,uVar16);\n      fts_set(iVar7,iVar8,4);\n      fts_read(iVar7);\n      goto code_r0x00013980;\n    }" ({ "{") (expression_statement "uVar1 = *(ushort *)(iVar8 + 0x3c);" (assignment_expression "uVar1 = *(ushort *)(iVar8 + 0x3c)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(iVar8 + 0x3c)" (* "*") (cast_expression "(ushort *)(iVar8 + 0x3c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x3c)" (( "(") (binary_expression "iVar8 + 0x3c" (identifier "iVar8") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (switch_statement "switch(uVar1) {\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }" (switch "switch") (parenthesized_expression "(uVar1)" (( "(") (identifier "uVar1") () ")")) (compound_statement "{\n      default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();\n      case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;\n      case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;\n      case 3:\n      case 4:\n      case 6:\n      case 8:\n      case 10:\n      case 0xb:\n      case 0xc:\n      case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;\n      case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);\n      }" ({ "{") (case_statement "default:\n        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar2 = *(undefined2 *)(iVar8 + 0x3c);\n        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);\n        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");\n                    \n        abort();" (default "default") (: ":") (expression_statement "uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" (identifier "uVar15") (= "=") (call_expression "FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" (identifier "FUN_000168d0") (argument_list "(0,3,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (number_literal "0") (, ",") (number_literal "3") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar2 = *(undefined2 *)(iVar8 + 0x3c);" (assignment_expression "uVar2 = *(undefined2 *)(iVar8 + 0x3c)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined2 *)(iVar8 + 0x3c)" (* "*") (cast_expression "(undefined2 *)(iVar8 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x3c)" (( "(") (binary_expression "iVar8 + 0x3c" (identifier "iVar8") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);" (assignment_expression "uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" (identifier "dcgettext") (argument_list "(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unexpected failure: fts_info=%d: %s\nplease report to %s"" (" """) (string_content "unexpected failure: fts_info=%d: %s") (escape_sequence "\n") (string_content "please report to %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");" (call_expression "error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org")" (identifier "error") (argument_list "(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org")" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar16") (, ",") (identifier "uVar2") (, ",") (identifier "uVar15") (, ",") (string_literal ""bug-coreutils@gnu.org"" (" """) (string_content "bug-coreutils@gnu.org") (" """)) () ")"))) (; ";")) (expression_statement "abort();" (call_expression "abort()" (identifier "abort") (argument_list "()" (( "(") () ")"))) (; ";"))) (case_statement "case 1:\n        if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }\ncode_r0x00013dab:\n        fts_set(iVar7,iVar8,4);\n        iVar17 = 4;\n        fts_read(iVar7);\n        goto code_r0x00013980;" (case "case") (number_literal "1") (: ":") (if_statement "if (*(char *)(param_2 + 9) == '\0') {\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }\n        else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(*(char *)(param_2 + 9) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 9) == '\0'" (pointer_expression "*(char *)(param_2 + 9)" (* "*") (cast_expression "(char *)(param_2 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 9)" (( "(") (binary_expression "param_2 + 9" (identifier "param_2") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }\n          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar9 = dcgettext(0,"cannot remove %s",5);\n          error(0,uVar15,uVar9,uVar16);\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n        }" ({ "{") (if_statement "if (*(char *)(param_2 + 10) == '\0') {\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }\n          else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }" (if "if") (parenthesized_expression "(*(char *)(param_2 + 10) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 10) == '\0'" (pointer_expression "*(char *)(param_2 + 10)" (* "*") (cast_expression "(char *)(param_2 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\ncode_r0x00013d50:\n            uVar15 = 0x15;\n          }" ({ "{") (labeled_statement "code_r0x00013d50:\n            uVar15 = 0x15;" (statement_identifier "code_r0x00013d50") (: ":") (expression_statement "uVar15 = 0x15;" (assignment_expression "uVar15 = 0x15" (identifier "uVar15") (= "=") (number_literal "0x15")) (; ";"))) (} "}")) (else_clause "else {\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }" (else "else") (compound_statement "{\n            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);\n            if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }\ncode_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;\n            uVar15 = 0x27;\n          }" ({ "{") (expression_statement "iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);" (assignment_expression "iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900)" (identifier "iVar10") (= "=") (call_expression "openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900)" (identifier "openat64") (argument_list "(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900)" (( "(") (pointer_expression "*(int *)(iVar7 + 0x1c)" (* "*") (cast_expression "(int *)(iVar7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (pointer_expression "*(char **)(iVar8 + 0x18)" (* "*") (cast_expression "(char **)(iVar8 + 0x18)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "0x30900") () ")")))) (; ";")) (if_statement "if (-1 < iVar10) {\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }" (if "if") (parenthesized_expression "(-1 < iVar10)" (( "(") (binary_expression "-1 < iVar10" (number_literal "-1") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n              __dirp = fdopendir(iVar10);\n              if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }\n            }" ({ "{") (expression_statement "__dirp = fdopendir(iVar10);" (assignment_expression "__dirp = fdopendir(iVar10)" (identifier "__dirp") (= "=") (call_expression "fdopendir(iVar10)" (identifier "fdopendir") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (__dirp == (DIR *)0x0) {\n                close(iVar10);\n              }\n              else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" (if "if") (parenthesized_expression "(__dirp == (DIR *)0x0)" (( "(") (binary_expression "__dirp == (DIR *)0x0" (identifier "__dirp") (== "==") (cast_expression "(DIR *)0x0" (( "(") (type_descriptor "DIR *" (type_identifier "DIR") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                close(iVar10);\n              }" ({ "{") (expression_statement "close(iVar10);" (call_expression "close(iVar10)" (identifier "close") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" (else "else") (compound_statement "{\n                piVar13 = __errno_location();\n                *piVar13 = 0;\n                do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));\n                closedir(__dirp);\n              }" ({ "{") (expression_statement "piVar13 = __errno_location();" (assignment_expression "piVar13 = __errno_location()" (identifier "piVar13") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar13 = 0;" (assignment_expression "*piVar13 = 0" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                } while ((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));" (do "do") (compound_statement "{\n                  pdVar11 = readdir64(__dirp);\n                  if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }\n                }" ({ "{") (expression_statement "pdVar11 = readdir64(__dirp);" (assignment_expression "pdVar11 = readdir64(__dirp)" (identifier "pdVar11") (= "=") (call_expression "readdir64(__dirp)" (identifier "readdir64") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")")))) (; ";")) (if_statement "if (pdVar11 == (dirent64 *)0x0) {\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }" (if "if") (parenthesized_expression "(pdVar11 == (dirent64 *)0x0)" (( "(") (binary_expression "pdVar11 == (dirent64 *)0x0" (identifier "pdVar11") (== "==") (cast_expression "(dirent64 *)0x0" (( "(") (type_descriptor "dirent64 *" (type_identifier "dirent64") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    iVar10 = *piVar13;\n                    closedir(__dirp);\n                    if (iVar10 != 0) goto code_r0x00013b61;\n                    goto code_r0x00013ba0;\n                  }" ({ "{") (expression_statement "iVar10 = *piVar13;" (assignment_expression "iVar10 = *piVar13" (identifier "iVar10") (= "=") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) (; ";")) (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" (identifier "closedir") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")"))) (; ";")) (if_statement "if (iVar10 != 0) goto code_r0x00013b61;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00013b61;" (goto "goto") (statement_identifier "code_r0x00013b61") (; ";"))) (goto_statement "goto code_r0x00013ba0;" (goto "goto") (statement_identifier "code_r0x00013ba0") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "((pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))))" (( "(") (binary_expression "(pdVar11->d_name[0] == '.') &&\n                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')))" (parenthesized_expression "(pdVar11->d_name[0] == '.')" (( "(") (binary_expression "pdVar11->d_name[0] == '.'" (subscript_expression "pdVar11->d_name[0]" (field_expression "pdVar11->d_name" (identifier "pdVar11") (-> "->") (field_identifier "d_name")) ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')))" (( "(") (parenthesized_expression "(pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))" (( "(") (binary_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||\n                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')" (binary_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0'" (subscript_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1]" (field_expression "pdVar11->d_name" (identifier "pdVar11") (-> "->") (field_identifier "d_name")) ([ "[") (binary_expression "(pdVar11->d_name[1] == '.') + 1" (parenthesized_expression "(pdVar11->d_name[1] == '.')" (( "(") (binary_expression "pdVar11->d_name[1] == '.'" (subscript_expression "pdVar11->d_name[1]" (field_expression "pdVar11->d_name" (identifier "pdVar11") (-> "->") (field_identifier "d_name")) ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (+ "+") (number_literal "1")) (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/')" (( "(") (binary_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'" (subscript_expression "pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1]" (field_expression "pdVar11->d_name" (identifier "pdVar11") (-> "->") (field_identifier "d_name")) ([ "[") (binary_expression "(pdVar11->d_name[1] == '.') + 1" (parenthesized_expression "(pdVar11->d_name[1] == '.')" (( "(") (binary_expression "pdVar11->d_name[1] == '.'" (subscript_expression "pdVar11->d_name[1]" (field_expression "pdVar11->d_name" (identifier "pdVar11") (-> "->") (field_identifier "d_name")) ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (+ "+") (number_literal "1")) (] "]")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (; ";")) (expression_statement "closedir(__dirp);" (call_expression "closedir(__dirp)" (identifier "closedir") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")"))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "code_r0x00013b61:\n            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;" (statement_identifier "code_r0x00013b61") (: ":") (if_statement "if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;" (if "if") (parenthesized_expression "(*(char *)(param_2 + 10) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 10) == '\0'" (pointer_expression "*(char *)(param_2 + 10)" (* "*") (cast_expression "(char *)(param_2 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00013d50;" (goto "goto") (statement_identifier "code_r0x00013d50") (; ";")))) (expression_statement "uVar15 = 0x27;" (assignment_expression "uVar15 = 0x27" (identifier "uVar15") (= "=") (number_literal "0x27")) (; ";")) (} "}")))) (expression_statement "uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" (identifier "uVar16") (= "=") (call_expression "FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" (identifier "FUN_00016710") (argument_list "(4,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (number_literal "4") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"cannot remove %s",5);" (assignment_expression "uVar9 = dcgettext(0,"cannot remove %s",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"cannot remove %s",5)" (identifier "dcgettext") (argument_list "(0,"cannot remove %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""cannot remove %s"" (" """) (string_content "cannot remove %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,uVar15,uVar9,uVar16);" (call_expression "error(0,uVar15,uVar9,uVar16)" (identifier "error") (argument_list "(0,uVar15,uVar9,uVar16)" (( "(") (number_literal "0") (, ",") (identifier "uVar15") (, ",") (identifier "uVar9") (, ",") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "iVar17 = *(int *)(iVar8 + 4);" (assignment_expression "iVar17 = *(int *)(iVar8 + 4)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar17 + 0x30)" (* "*") (cast_expression "(int *)(iVar17 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x30)" (( "(") (binary_expression "iVar17 + 0x30" (identifier "iVar17") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (while_statement "while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" (while "while") (parenthesized_expression "((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)))" (( "(") (parenthesized_expression "(-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))" (( "(") (binary_expression "-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)" (binary_expression "-1 < iVar10" (number_literal "-1") (< "<") (identifier "iVar10")) (&& "&&") (parenthesized_expression "(*(int *)(iVar17 + 0x10) == 0)" (( "(") (binary_expression "*(int *)(iVar17 + 0x10) == 0" (pointer_expression "*(int *)(iVar17 + 0x10)" (* "*") (cast_expression "(int *)(iVar17 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x10)" (( "(") (binary_expression "iVar17 + 0x10" (identifier "iVar17") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")")) (compound_statement "{\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" ({ "{") (expression_statement "*(undefined4 *)(iVar17 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar17 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar17 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar17 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x10)" (( "(") (binary_expression "iVar17 + 0x10" (identifier "iVar17") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar17 = *(int *)(iVar17 + 4);" (assignment_expression "iVar17 = *(int *)(iVar17 + 4)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar17 + 4)" (* "*") (cast_expression "(int *)(iVar17 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 4)" (( "(") (binary_expression "iVar17 + 4" (identifier "iVar17") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar17 + 0x30)" (* "*") (cast_expression "(int *)(iVar17 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x30)" (( "(") (binary_expression "iVar17 + 0x30" (identifier "iVar17") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }" (else "else") (compound_statement "{\ncode_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }\n          uVar15 = *(undefined4 *)(iVar8 + 0x18);\n          pcVar12 = (char *)FUN_000147f0(uVar15);\n          if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }\n        }" ({ "{") (labeled_statement "code_r0x00013ba0:\n          if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }" (statement_identifier "code_r0x00013ba0") (: ":") (if_statement "if (*(int *)(iVar8 + 0x30) != 0) {\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x30) != 0)" (( "(") (binary_expression "*(int *)(iVar8 + 0x30) != 0" (pointer_expression "*(int *)(iVar8 + 0x30)" (* "*") (cast_expression "(int *)(iVar8 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x30)" (( "(") (binary_expression "iVar8 + 0x30" (identifier "iVar8") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);\n            if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }\n            iVar3 = *(int *)(iVar8 + 4);\n            iVar4 = *(int *)(iVar3 + 0x30);\n            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }\n            fts_set(iVar7,iVar8,4);\n            fts_read(iVar7);\n            goto code_r0x00013a75;\n          }" ({ "{") (labeled_statement "code_r0x00013c01:\n            iVar10 = FUN_00013400(param_2,2,&sStack_80);" (statement_identifier "code_r0x00013c01") (: ":") (expression_statement "iVar10 = FUN_00013400(param_2,2,&sStack_80);" (assignment_expression "iVar10 = FUN_00013400(param_2,2,&sStack_80)" (identifier "iVar10") (= "=") (call_expression "FUN_00013400(param_2,2,&sStack_80)" (identifier "FUN_00013400") (argument_list "(param_2,2,&sStack_80)" (( "(") (identifier "param_2") (, ",") (number_literal "2") (, ",") (pointer_expression "&sStack_80" (& "&") (identifier "sStack_80")) () ")")))) (; ";"))) (if_statement "if (iVar10 == 2) {\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }" (if "if") (parenthesized_expression "(iVar10 == 2)" (( "(") (binary_expression "iVar10 == 2" (identifier "iVar10") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;\n              iVar10 = FUN_00013130(1);\n              fts_set(iVar7,iVar8,4);\n              fts_read(iVar7);\n              if (iVar10 == 2) goto code_r0x00013980;\n            }" ({ "{") (if_statement "if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;" (if "if") (parenthesized_expression "((int)sStack_80.st_dev != 4)" (( "(") (binary_expression "(int)sStack_80.st_dev != 4" (cast_expression "(int)sStack_80.st_dev" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "sStack_80.st_dev" (identifier "sStack_80") (. ".") (field_identifier "st_dev"))) (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto code_r0x00013980;" (goto "goto") (statement_identifier "code_r0x00013980") (; ";"))) (expression_statement "iVar10 = FUN_00013130(1);" (assignment_expression "iVar10 = FUN_00013130(1)" (identifier "iVar10") (= "=") (call_expression "FUN_00013130(1)" (identifier "FUN_00013130") (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" (identifier "fts_set") (argument_list "(iVar7,iVar8,4)" (( "(") (identifier "iVar7") (, ",") (identifier "iVar8") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" (identifier "fts_read") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (if_statement "if (iVar10 == 2) goto code_r0x00013980;" (if "if") (parenthesized_expression "(iVar10 == 2)" (( "(") (binary_expression "iVar10 == 2" (identifier "iVar10") (== "==") (number_literal "2")) () ")")) (goto_statement "goto code_r0x00013980;" (goto "goto") (statement_identifier "code_r0x00013980") (; ";"))) (} "}"))) (expression_statement "iVar3 = *(int *)(iVar8 + 4);" (assignment_expression "iVar3 = *(int *)(iVar8 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar3 + 0x30);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x30)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar3 + 0x30)" (* "*") (cast_expression "(int *)(iVar3 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (while_statement "while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }" (while "while") (parenthesized_expression "((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0)))" (( "(") (parenthesized_expression "(-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))" (( "(") (binary_expression "-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0)" (binary_expression "-1 < iVar4" (number_literal "-1") (< "<") (identifier "iVar4")) (&& "&&") (parenthesized_expression "(*(int *)(iVar3 + 0x10) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x10) == 0" (pointer_expression "*(int *)(iVar3 + 0x10)" (* "*") (cast_expression "(int *)(iVar3 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")")) (compound_statement "{\n              *(undefined4 *)(iVar3 + 0x10) = 1;\n              iVar3 = *(int *)(iVar3 + 4);\n              iVar4 = *(int *)(iVar3 + 0x30);\n            }" ({ "{") (expression_statement "*(undefined4 *)(iVar3 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar3 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = *(int *)(iVar3 + 4);" (assignment_expression "iVar3 = *(int *)(iVar3 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar3 + 0x30);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x30)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar3 + 0x30)" (* "*") (cast_expression "(int *)(iVar3 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (} "}"))) (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" (identifier "fts_set") (argument_list "(iVar7,iVar8,4)" (( "(") (identifier "iVar7") (, ",") (identifier "iVar8") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" (identifier "fts_read") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (goto_statement "goto code_r0x00013a75;" (goto "goto") (statement_identifier "code_r0x00013a75") (; ";")) (} "}")))) (expression_statement "uVar15 = *(undefined4 *)(iVar8 + 0x18);" (assignment_expression "uVar15 = *(undefined4 *)(iVar8 + 0x18)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "pcVar12 = (char *)FUN_000147f0(uVar15);" (assignment_expression "pcVar12 = (char *)FUN_000147f0(uVar15)" (identifier "pcVar12") (= "=") (cast_expression "(char *)FUN_000147f0(uVar15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000147f0(uVar15)" (identifier "FUN_000147f0") (argument_list "(uVar15)" (( "(") (identifier "uVar15") () ")"))))) (; ";")) (if_statement "if ((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))) {\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }\n          else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }" (if "if") (parenthesized_expression "((*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              )))" (( "(") (binary_expression "(*pcVar12 == '.') &&\n             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))" (parenthesized_expression "(*pcVar12 == '.')" (( "(") (binary_expression "*pcVar12 == '.'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              ))" (( "(") (parenthesized_expression "(pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')\n              )" (( "(") (binary_expression "pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')" (binary_expression "pcVar12[(pcVar12[1] == '.') + 1] == '\0'" (subscript_expression "pcVar12[(pcVar12[1] == '.') + 1]" (identifier "pcVar12") ([ "[") (binary_expression "(pcVar12[1] == '.') + 1" (parenthesized_expression "(pcVar12[1] == '.')" (( "(") (binary_expression "pcVar12[1] == '.'" (subscript_expression "pcVar12[1]" (identifier "pcVar12") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (+ "+") (number_literal "1")) (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(pcVar12[(pcVar12[1] == '.') + 1] == '/')" (( "(") (binary_expression "pcVar12[(pcVar12[1] == '.') + 1] == '/'" (subscript_expression "pcVar12[(pcVar12[1] == '.') + 1]" (identifier "pcVar12") ([ "[") (binary_expression "(pcVar12[1] == '.') + 1" (parenthesized_expression "(pcVar12[1] == '.')" (( "(") (binary_expression "pcVar12[1] == '.'" (subscript_expression "pcVar12[1]" (identifier "pcVar12") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (+ "+") (number_literal "1")) (] "]")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));\n            uVar16 = FUN_00016590(1,4,&DAT_0001db66);\n            uVar9 = FUN_00016590(0,4,&DAT_0001db67);\n            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);\n            error(0,0,uVar14,uVar9,uVar16,uVar15);\n          }" ({ "{") (expression_statement "uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c))" (identifier "uVar15") (= "=") (call_expression "FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c))" (identifier "FUN_00016590") (argument_list "(2,4,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (number_literal "2") (, ",") (number_literal "4") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar16 = FUN_00016590(1,4,&DAT_0001db66);" (assignment_expression "uVar16 = FUN_00016590(1,4,&DAT_0001db66)" (identifier "uVar16") (= "=") (call_expression "FUN_00016590(1,4,&DAT_0001db66)" (identifier "FUN_00016590") (argument_list "(1,4,&DAT_0001db66)" (( "(") (number_literal "1") (, ",") (number_literal "4") (, ",") (pointer_expression "&DAT_0001db66" (& "&") (identifier "DAT_0001db66")) () ")")))) (; ";")) (expression_statement "uVar9 = FUN_00016590(0,4,&DAT_0001db67);" (assignment_expression "uVar9 = FUN_00016590(0,4,&DAT_0001db67)" (identifier "uVar9") (= "=") (call_expression "FUN_00016590(0,4,&DAT_0001db67)" (identifier "FUN_00016590") (argument_list "(0,4,&DAT_0001db67)" (( "(") (number_literal "0") (, ",") (number_literal "4") (, ",") (pointer_expression "&DAT_0001db67" (& "&") (identifier "DAT_0001db67")) () ")")))) (; ";")) (expression_statement "uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);" (assignment_expression "uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5)" (identifier "dcgettext") (argument_list "(0,"refusing to remove %s or %s directory: skipping %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""refusing to remove %s or %s directory: skipping %s"" (" """) (string_content "refusing to remove %s or %s directory: skipping %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,0,uVar14,uVar9,uVar16,uVar15);" (call_expression "error(0,0,uVar14,uVar9,uVar16,uVar15)" (identifier "error") (argument_list "(0,0,uVar14,uVar9,uVar16,uVar15)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar14") (, ",") (identifier "uVar9") (, ",") (identifier "uVar16") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }" (else "else") (compound_statement "{\n            piVar13 = *(int **)(param_2 + 0xc);\n            if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }\n            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;\n            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);\n            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }\n          }" ({ "{") (expression_statement "piVar13 = *(int **)(param_2 + 0xc);" (assignment_expression "piVar13 = *(int **)(param_2 + 0xc)" (identifier "piVar13") (= "=") (pointer_expression "*(int **)(param_2 + 0xc)" (* "*") (cast_expression "(int **)(param_2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }" (if "if") (parenthesized_expression "((piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13))" (( "(") (binary_expression "(piVar13 != (int *)0x0) &&\n               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)" (parenthesized_expression "(piVar13 != (int *)0x0)" (( "(") (binary_expression "piVar13 != (int *)0x0" (identifier "piVar13") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)" (( "(") (binary_expression "*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13" (binary_expression "*(int *)(iVar8 + 0xa0) == piVar13[1]" (pointer_expression "*(int *)(iVar8 + 0xa0)" (* "*") (cast_expression "(int *)(iVar8 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xa0)" (( "(") (binary_expression "iVar8 + 0xa0" (identifier "iVar8") (+ "+") (number_literal "0xa0")) () ")")))) (== "==") (subscript_expression "piVar13[1]" (identifier "piVar13") ([ "[") (number_literal "1") (] "]"))) (&& "&&") (binary_expression "*(int *)(iVar8 + 0x9c) == *piVar13" (pointer_expression "*(int *)(iVar8 + 0x9c)" (* "*") (cast_expression "(int *)(iVar8 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x9c)" (( "(") (binary_expression "iVar8 + 0x9c" (identifier "iVar8") (+ "+") (number_literal "0x9c")) () ")")))) (== "==") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) () ")"))) () ")")) (compound_statement "{\n              bVar20 = false;\n              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];\n              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];\n              bVar21 = bVar5 && bVar6;\n              if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }\n            }" ({ "{") (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" (identifier "bVar20") (= "=") (false "false")) (; ";")) (expression_statement "bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];" (assignment_expression "bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3]" (identifier "bVar5") (= "=") (binary_expression "*(int *)(iVar8 + 0x48) == piVar13[3]" (pointer_expression "*(int *)(iVar8 + 0x48)" (* "*") (cast_expression "(int *)(iVar8 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x48)" (( "(") (binary_expression "iVar8 + 0x48" (identifier "iVar8") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];" (assignment_expression "bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2]" (identifier "bVar6") (= "=") (binary_expression "*(int *)(iVar8 + 0x44) == piVar13[2]" (pointer_expression "*(int *)(iVar8 + 0x44)" (* "*") (cast_expression "(int *)(iVar8 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x44)" (( "(") (binary_expression "iVar8 + 0x44" (identifier "iVar8") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (subscript_expression "piVar13[2]" (identifier "piVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "bVar21 = bVar5 && bVar6;" (assignment_expression "bVar21 = bVar5 && bVar6" (identifier "bVar21") (= "=") (binary_expression "bVar5 && bVar6" (identifier "bVar5") (&& "&&") (identifier "bVar6"))) (; ";")) (if_statement "if (bVar5 && bVar6) {\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }" (if "if") (parenthesized_expression "(bVar5 && bVar6)" (( "(") (binary_expression "bVar5 && bVar6" (identifier "bVar5") (&& "&&") (identifier "bVar6")) () ")")) (compound_statement "{\n                iVar17 = 2;\n                pbVar18 = *(byte **)(iVar8 + 0x1c);\n                pbVar19 = &DAT_0001dff2;\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }\n                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);\n                error(0,0,uVar15);\n                goto code_r0x00013dab;\n              }" ({ "{") (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" (identifier "iVar17") (= "=") (number_literal "2")) (; ";")) (expression_statement "pbVar18 = *(byte **)(iVar8 + 0x1c);" (assignment_expression "pbVar18 = *(byte **)(iVar8 + 0x1c)" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)(iVar8 + 0x1c)" (* "*") (cast_expression "(byte **)(iVar8 + 0x1c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "pbVar19 = &DAT_0001dff2;" (assignment_expression "pbVar19 = &DAT_0001dff2" (identifier "pbVar19") (= "=") (pointer_expression "&DAT_0001dff2" (& "&") (identifier "DAT_0001dff2"))) (; ";")) (do_statement "do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                } while (bVar21);" (do "do") (compound_statement "{\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar20 = *pbVar18 < *pbVar19;\n                  bVar21 = *pbVar18 == *pbVar19;\n                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n                }" ({ "{") (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar20 = *pbVar18 < *pbVar19;" (assignment_expression "bVar20 = *pbVar18 < *pbVar19" (identifier "bVar20") (= "=") (binary_expression "*pbVar18 < *pbVar19" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar21 = *pbVar18 == *pbVar19;" (assignment_expression "bVar21 = *pbVar18 == *pbVar19" (identifier "bVar21") (= "=") (binary_expression "*pbVar18 == *pbVar19" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar22 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar22")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar22 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar22")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar21)" (( "(") (identifier "bVar21") () ")")) (; ";")) (if_statement "if ((!bVar20 && !bVar21) == bVar20) {\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }\n                else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }" (if "if") (parenthesized_expression "((!bVar20 && !bVar21) == bVar20)" (( "(") (binary_expression "(!bVar20 && !bVar21) == bVar20" (parenthesized_expression "(!bVar20 && !bVar21)" (( "(") (binary_expression "!bVar20 && !bVar21" (unary_expression "!bVar20" (! "!") (identifier "bVar20")) (&& "&&") (unary_expression "!bVar21" (! "!") (identifier "bVar21"))) () ")")) (== "==") (identifier "bVar20")) () ")")) (compound_statement "{\n                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));\n                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);\n                  error(0,0,uVar16,uVar15);\n                }" ({ "{") (expression_statement "uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c))" (identifier "uVar15") (= "=") (call_expression "FUN_00016710(4,*(byte **)(iVar8 + 0x1c))" (identifier "FUN_00016710") (argument_list "(4,*(byte **)(iVar8 + 0x1c))" (( "(") (number_literal "4") (, ",") (pointer_expression "*(byte **)(iVar8 + 0x1c)" (* "*") (cast_expression "(byte **)(iVar8 + 0x1c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);" (assignment_expression "uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"it is dangerous to operate recursively on %s",5)" (identifier "dcgettext") (argument_list "(0,"it is dangerous to operate recursively on %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""it is dangerous to operate recursively on %s"" (" """) (string_content "it is dangerous to operate recursively on %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,0,uVar16,uVar15);" (call_expression "error(0,0,uVar16,uVar15)" (identifier "error") (argument_list "(0,0,uVar16,uVar15)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar16") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }" (else "else") (compound_statement "{\n                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);\n                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));\n                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;\n                  error(0,0,uVar9,uVar16,uVar15);\n                }" ({ "{") (expression_statement "uVar15 = FUN_00016590(1,4,&DAT_0001dff2);" (assignment_expression "uVar15 = FUN_00016590(1,4,&DAT_0001dff2)" (identifier "uVar15") (= "=") (call_expression "FUN_00016590(1,4,&DAT_0001dff2)" (identifier "FUN_00016590") (argument_list "(1,4,&DAT_0001dff2)" (( "(") (number_literal "1") (, ",") (number_literal "4") (, ",") (pointer_expression "&DAT_0001dff2" (& "&") (identifier "DAT_0001dff2")) () ")")))) (; ";")) (expression_statement "uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c))" (identifier "uVar16") (= "=") (call_expression "FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c))" (identifier "FUN_00016590") (argument_list "(0,4,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (number_literal "0") (, ",") (number_literal "4") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)\n                  ;" (assignment_expression "uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)" (identifier "dcgettext") (argument_list "(0,"it is dangerous to operate recursively on %s (same as %s)",5)" (( "(") (number_literal "0") (, ",") (string_literal ""it is dangerous to operate recursively on %s (same as %s)"" (" """) (string_content "it is dangerous to operate recursively on %s (same as %s)") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,0,uVar9,uVar16,uVar15);" (call_expression "error(0,0,uVar9,uVar16,uVar15)" (identifier "error") (argument_list "(0,0,uVar9,uVar16,uVar15)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar9") (, ",") (identifier "uVar16") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);" (assignment_expression "uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5)" (identifier "uVar15") (= "=") (call_expression "dcgettext(0,"use --no-preserve-root to override this failsafe",5)" (identifier "dcgettext") (argument_list "(0,"use --no-preserve-root to override this failsafe",5)" (( "(") (number_literal "0") (, ",") (string_literal ""use --no-preserve-root to override this failsafe"" (" """) (string_content "use --no-preserve-root to override this failsafe") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,0,uVar15);" (call_expression "error(0,0,uVar15)" (identifier "error") (argument_list "(0,0,uVar15)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar15") () ")"))) (; ";")) (goto_statement "goto code_r0x00013dab;" (goto "goto") (statement_identifier "code_r0x00013dab") (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0x10) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0x10) == '\0'" (pointer_expression "*(char *)(param_2 + 0x10)" (* "*") (cast_expression "(char *)(param_2 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00013c01;" (goto "goto") (statement_identifier "code_r0x00013c01") (; ";"))) (expression_statement "pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);" (assignment_expression "pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0)" (identifier "pcVar12") (= "=") (cast_expression "(char *)FUN_00014a10(uVar15,&DAT_0001db66,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00014a10(uVar15,&DAT_0001db66,0)" (identifier "FUN_00014a10") (argument_list "(uVar15,&DAT_0001db66,0)" (( "(") (identifier "uVar15") (, ",") (pointer_expression "&DAT_0001db66" (& "&") (identifier "DAT_0001db66")) (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               ) {\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }\n            else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }" (if "if") (parenthesized_expression "((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)\n               )" (( "(") (binary_expression "(pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)" (parenthesized_expression "(pcVar12 == (char *)0x0)" (( "(") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)" (( "(") (comma_expression "iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0" (assignment_expression "iVar10 = __lxstat64(3,pcVar12,&sStack_80)" (identifier "iVar10") (= "=") (call_expression "__lxstat64(3,pcVar12,&sStack_80)" (identifier "__lxstat64") (argument_list "(3,pcVar12,&sStack_80)" (( "(") (number_literal "3") (, ",") (identifier "pcVar12") (, ",") (pointer_expression "&sStack_80" (& "&") (identifier "sStack_80")) () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));\n              uVar16 = FUN_00016590(0,4,pcVar12);\n              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);\n              error(0,0,uVar9,uVar16,uVar15);\n              free(pcVar12);\n            }" ({ "{") (expression_statement "uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));" (assignment_expression "uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18))" (identifier "uVar15") (= "=") (call_expression "FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18))" (identifier "FUN_00016590") (argument_list "(1,4,*(undefined4 *)(iVar8 + 0x18))" (( "(") (number_literal "1") (, ",") (number_literal "4") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar16 = FUN_00016590(0,4,pcVar12);" (assignment_expression "uVar16 = FUN_00016590(0,4,pcVar12)" (identifier "uVar16") (= "=") (call_expression "FUN_00016590(0,4,pcVar12)" (identifier "FUN_00016590") (argument_list "(0,4,pcVar12)" (( "(") (number_literal "0") (, ",") (number_literal "4") (, ",") (identifier "pcVar12") () ")")))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);" (assignment_expression "uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"failed to stat %s: skipping %s",5)" (identifier "dcgettext") (argument_list "(0,"failed to stat %s: skipping %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""failed to stat %s: skipping %s"" (" """) (string_content "failed to stat %s: skipping %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,0,uVar9,uVar16,uVar15);" (call_expression "error(0,0,uVar9,uVar16,uVar15)" (identifier "error") (argument_list "(0,0,uVar9,uVar16,uVar15)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar9") (, ",") (identifier "uVar16") (, ",") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" (identifier "free") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }" (else "else") (compound_statement "{\n              free(pcVar12);\n              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;\n              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n              error(0,0,uVar16,uVar15);\n              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);\n              error(0,0,uVar15);\n            }" ({ "{") (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" (identifier "free") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev)" (( "(") (binary_expression "*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&\n                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev" (binary_expression "*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_" (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (field_expression "sStack_80.st_dev._4_4_" (field_expression "sStack_80.st_dev" (identifier "sStack_80") (. ".") (field_identifier "st_dev")) (. ".") (field_identifier "_4_4_"))) (&& "&&") (binary_expression "*(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev" (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (cast_expression "(int)sStack_80.st_dev" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "sStack_80.st_dev" (identifier "sStack_80") (. ".") (field_identifier "st_dev"))))) () ")")) (goto_statement "goto code_r0x00013c01;" (goto "goto") (statement_identifier "code_r0x00013c01") (; ";"))) (expression_statement "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" (identifier "uVar15") (= "=") (call_expression "FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" (identifier "FUN_00016710") (argument_list "(4,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (number_literal "4") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);" (assignment_expression "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"skipping %s, since it\'s on a different device",5)" (identifier "dcgettext") (argument_list "(0,"skipping %s, since it\'s on a different device",5)" (( "(") (number_literal "0") (, ",") (string_literal ""skipping %s, since it\'s on a different device"" (" """) (string_content "skipping %s, since it") (escape_sequence "\'") (string_content "s on a different device") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,0,uVar16,uVar15);" (call_expression "error(0,0,uVar16,uVar15)" (identifier "error") (argument_list "(0,0,uVar16,uVar15)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar16") (, ",") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);" (assignment_expression "uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5)" (identifier "uVar15") (= "=") (call_expression "dcgettext(0,"and --preserve-root=all is in effect",5)" (identifier "dcgettext") (argument_list "(0,"and --preserve-root=all is in effect",5)" (( "(") (number_literal "0") (, ",") (string_literal ""and --preserve-root=all is in effect"" (" """) (string_content "and --preserve-root=all is in effect") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,0,uVar15);" (call_expression "error(0,0,uVar15)" (identifier "error") (argument_list "(0,0,uVar15)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (labeled_statement "code_r0x00013dab:\n        fts_set(iVar7,iVar8,4);" (statement_identifier "code_r0x00013dab") (: ":") (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" (identifier "fts_set") (argument_list "(iVar7,iVar8,4)" (( "(") (identifier "iVar7") (, ",") (identifier "iVar8") (, ",") (number_literal "4") () ")"))) (; ";"))) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" (identifier "iVar17") (= "=") (number_literal "4")) (; ";")) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" (identifier "fts_read") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (goto_statement "goto code_r0x00013980;" (goto "goto") (statement_identifier "code_r0x00013980") (; ";"))) (case_statement "case 2:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);\n        uVar15 = 0;\n        break;" (case "case") (number_literal "2") (: ":") (expression_statement "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" (identifier "uVar16") (= "=") (call_expression "FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" (identifier "FUN_000168d0") (argument_list "(0,3,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (number_literal "0") (, ",") (number_literal "3") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5)" (identifier "dcgettext") (argument_list "(0,\n                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"\n                          ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"" (" """) (string_content "WARNING: Circular directory structure.") (escape_sequence "\n") (string_content "This almost certainly means that you have a corrupted file system.") (escape_sequence "\n") (string_content "NOTIFY YOUR SYSTEM MANAGER.") (escape_sequence "\n") (string_content "The following directory is part of the cycle:") (escape_sequence "\n") (string_content "  %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:" (case "case") (number_literal "3") (: ":")) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 6:" (case "case") (number_literal "6") (: ":")) (case_statement "case 8:" (case "case") (number_literal "8") (: ":")) (case_statement "case 10:" (case "case") (number_literal "10") (: ":")) (case_statement "case 0xb:" (case "case") (number_literal "0xb") (: ":")) (case_statement "case 0xc:" (case "case") (number_literal "0xc") (: ":")) (case_statement "case 0xd:\n        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }\n        goto code_r0x00013980;" (case "case") (number_literal "0xd") (: ":") (if_statement "if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }\n        else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }" (if "if") (parenthesized_expression "((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc)))" (( "(") (binary_expression "(((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&\n           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))" (parenthesized_expression "(((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30)))" (( "(") (binary_expression "((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))" (parenthesized_expression "((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0'))" (( "(") (binary_expression "(uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')" (parenthesized_expression "(uVar1 == 6)" (( "(") (binary_expression "uVar1 == 6" (identifier "uVar1") (== "==") (number_literal "6")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_2 + 8) != '\0')" (( "(") (binary_expression "*(char *)(param_2 + 8) != '\0'" (pointer_expression "*(char *)(param_2 + 8)" (* "*") (cast_expression "(char *)(param_2 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(0 < *(int *)(iVar8 + 0x30))" (( "(") (binary_expression "0 < *(int *)(iVar8 + 0x30)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar8 + 0x30)" (* "*") (cast_expression "(int *)(iVar8 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x30)" (( "(") (binary_expression "iVar8 + 0x30" (identifier "iVar8") (+ "+") (number_literal "0x30")) () ")"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))" (( "(") (binary_expression "*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||\n            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc)" (binary_expression "*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10)" (pointer_expression "*(int *)(iVar8 + 0x48)" (* "*") (cast_expression "(int *)(iVar8 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x48)" (( "(") (binary_expression "iVar8 + 0x48" (identifier "iVar8") (+ "+") (number_literal "0x48")) () ")")))) (!= "!=") (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (|| "||") (binary_expression "*(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc)" (pointer_expression "*(int *)(iVar8 + 0x44)" (* "*") (cast_expression "(int *)(iVar8 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x44)" (( "(") (binary_expression "iVar8 + 0x44" (identifier "iVar8") (+ "+") (number_literal "0x44")) () ")")))) (!= "!=") (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n          iVar17 = *(int *)(iVar8 + 4);\n          iVar10 = *(int *)(iVar17 + 0x30);\n          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }\n          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));\n          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);\n          iVar17 = 4;\n          error(0,0,uVar16,uVar15);\n        }" ({ "{") (expression_statement "iVar17 = *(int *)(iVar8 + 4);" (assignment_expression "iVar17 = *(int *)(iVar8 + 4)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar17 + 0x30)" (* "*") (cast_expression "(int *)(iVar17 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x30)" (( "(") (binary_expression "iVar17 + 0x30" (identifier "iVar17") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (while_statement "while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" (while "while") (parenthesized_expression "((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)))" (( "(") (parenthesized_expression "(-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))" (( "(") (binary_expression "-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0)" (binary_expression "-1 < iVar10" (number_literal "-1") (< "<") (identifier "iVar10")) (&& "&&") (parenthesized_expression "(*(int *)(iVar17 + 0x10) == 0)" (( "(") (binary_expression "*(int *)(iVar17 + 0x10) == 0" (pointer_expression "*(int *)(iVar17 + 0x10)" (* "*") (cast_expression "(int *)(iVar17 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x10)" (( "(") (binary_expression "iVar17 + 0x10" (identifier "iVar17") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")")) (compound_statement "{\n            *(undefined4 *)(iVar17 + 0x10) = 1;\n            iVar17 = *(int *)(iVar17 + 4);\n            iVar10 = *(int *)(iVar17 + 0x30);\n          }" ({ "{") (expression_statement "*(undefined4 *)(iVar17 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar17 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar17 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar17 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x10)" (( "(") (binary_expression "iVar17 + 0x10" (identifier "iVar17") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar17 = *(int *)(iVar17 + 4);" (assignment_expression "iVar17 = *(int *)(iVar17 + 4)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar17 + 4)" (* "*") (cast_expression "(int *)(iVar17 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 4)" (( "(") (binary_expression "iVar17 + 4" (identifier "iVar17") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar17 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar17 + 0x30)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar17 + 0x30)" (* "*") (cast_expression "(int *)(iVar17 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x30)" (( "(") (binary_expression "iVar17 + 0x30" (identifier "iVar17") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" (identifier "uVar15") (= "=") (call_expression "FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c))" (identifier "FUN_00016710") (argument_list "(4,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (number_literal "4") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);" (assignment_expression "uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"skipping %s, since it\'s on a different device",5)" (identifier "dcgettext") (argument_list "(0,"skipping %s, since it\'s on a different device",5)" (( "(") (number_literal "0") (, ",") (string_literal ""skipping %s, since it\'s on a different device"" (" """) (string_content "skipping %s, since it") (escape_sequence "\'") (string_content "s on a different device") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" (identifier "iVar17") (= "=") (number_literal "4")) (; ";")) (expression_statement "error(0,0,uVar16,uVar15);" (call_expression "error(0,0,uVar16,uVar15)" (identifier "error") (argument_list "(0,0,uVar16,uVar15)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar16") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }" (else "else") (compound_statement "{\n          iVar10 = FUN_00013400(param_2,3,0);\n          if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }\ncode_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }\n          if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }\n        }" ({ "{") (expression_statement "iVar10 = FUN_00013400(param_2,3,0);" (assignment_expression "iVar10 = FUN_00013400(param_2,3,0)" (identifier "iVar10") (= "=") (call_expression "FUN_00013400(param_2,3,0)" (identifier "FUN_00013400") (argument_list "(param_2,3,0)" (( "(") (identifier "param_2") (, ",") (number_literal "3") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar10 == 2) {\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }" (if "if") (parenthesized_expression "(iVar10 == 2)" (( "(") (binary_expression "iVar10 == 2" (identifier "iVar10") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);\n          }" ({ "{") (expression_statement "iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);" (assignment_expression "iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4)" (identifier "iVar10") (= "=") (call_expression "FUN_00013130((uVar1 & 0xfffd) == 4)" (identifier "FUN_00013130") (argument_list "((uVar1 & 0xfffd) == 4)" (( "(") (binary_expression "(uVar1 & 0xfffd) == 4" (parenthesized_expression "(uVar1 & 0xfffd)" (( "(") (binary_expression "uVar1 & 0xfffd" (identifier "uVar1") (& "&") (number_literal "0xfffd")) () ")")) (== "==") (number_literal "4")) () ")")))) (; ";")) (} "}"))) (labeled_statement "code_r0x00013a75:\n          if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" (statement_identifier "code_r0x00013a75") (: ":") (if_statement "if (2 < iVar10 - 2U) {\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" (if "if") (parenthesized_expression "(2 < iVar10 - 2U)" (( "(") (binary_expression "2 < iVar10 - 2U" (number_literal "2") (< "<") (binary_expression "iVar10 - 2U" (identifier "iVar10") (- "-") (number_literal "2U"))) () ")")) (compound_statement "{\n                    \n            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");\n          }" ({ "{") (expression_statement "__assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");" (call_expression "__assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm")" (identifier "__assert_fail") (argument_list "("VALID_STATUS (s)","src/remove.c",0x261,"rm")" (( "(") (string_literal ""VALID_STATUS (s)"" (" """) (string_content "VALID_STATUS (s)") (" """)) (, ",") (string_literal ""src/remove.c"" (" """) (string_content "src/remove.c") (" """)) (, ",") (number_literal "0x261") (, ",") (string_literal ""rm"" (" """) (string_content "rm") (" """)) () ")"))) (; ";")) (} "}")))) (if_statement "if (iVar10 == 4) {\n            iVar17 = 4;\n          }\n          else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }" (if "if") (parenthesized_expression "(iVar10 == 4)" (( "(") (binary_expression "iVar10 == 4" (identifier "iVar10") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n            iVar17 = 4;\n          }" ({ "{") (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" (identifier "iVar17") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }" (else "else") (if_statement "if ((iVar10 == 3) && (iVar17 == 2)) {\n            iVar17 = 3;\n          }" (if "if") (parenthesized_expression "((iVar10 == 3) && (iVar17 == 2))" (( "(") (binary_expression "(iVar10 == 3) && (iVar17 == 2)" (parenthesized_expression "(iVar10 == 3)" (( "(") (binary_expression "iVar10 == 3" (identifier "iVar10") (== "==") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(iVar17 == 2)" (( "(") (binary_expression "iVar17 == 2" (identifier "iVar17") (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n            iVar17 = 3;\n          }" ({ "{") (expression_statement "iVar17 = 3;" (assignment_expression "iVar17 = 3" (identifier "iVar17") (= "=") (number_literal "3")) (; ";")) (} "}"))))) (} "}")))) (goto_statement "goto code_r0x00013980;" (goto "goto") (statement_identifier "code_r0x00013980") (; ";"))) (case_statement "case 7:\n        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));\n        uVar9 = dcgettext(0,"traversal failed: %s",5);\n        uVar15 = *(undefined4 *)(iVar8 + 0x20);" (case "case") (number_literal "7") (: ":") (expression_statement "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));" (assignment_expression "uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" (identifier "uVar16") (= "=") (call_expression "FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c))" (identifier "FUN_000168d0") (argument_list "(0,3,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (number_literal "0") (, ",") (number_literal "3") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"traversal failed: %s",5);" (assignment_expression "uVar9 = dcgettext(0,"traversal failed: %s",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"traversal failed: %s",5)" (identifier "dcgettext") (argument_list "(0,"traversal failed: %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""traversal failed: %s"" (" """) (string_content "traversal failed: %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar15 = *(undefined4 *)(iVar8 + 0x20);" (assignment_expression "uVar15 = *(undefined4 *)(iVar8 + 0x20)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(iVar8 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")"))))) (; ";"))) (} "}"))) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" (identifier "iVar17") (= "=") (number_literal "4")) (; ";")) (expression_statement "error(0,uVar15,uVar9,uVar16);" (call_expression "error(0,uVar15,uVar9,uVar16)" (identifier "error") (argument_list "(0,uVar15,uVar9,uVar16)" (( "(") (number_literal "0") (, ",") (identifier "uVar15") (, ",") (identifier "uVar9") (, ",") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "fts_set(iVar7,iVar8,4);" (call_expression "fts_set(iVar7,iVar8,4)" (identifier "fts_set") (argument_list "(iVar7,iVar8,4)" (( "(") (identifier "iVar7") (, ",") (identifier "iVar8") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "fts_read(iVar7);" (call_expression "fts_read(iVar7)" (identifier "fts_read") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (goto_statement "goto code_r0x00013980;" (goto "goto") (statement_identifier "code_r0x00013980") (; ";")) (} "}"))) (expression_statement "piVar13 = __errno_location();" (assignment_expression "piVar13 = __errno_location()" (identifier "piVar13") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*piVar13 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }" (if "if") (parenthesized_expression "(*piVar13 != 0)" (( "(") (binary_expression "*piVar13 != 0" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_read failed",5);\n      error(0,*piVar13,uVar15);\n    }" ({ "{") (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" (identifier "iVar17") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar15 = dcgettext(0,"fts_read failed",5);" (assignment_expression "uVar15 = dcgettext(0,"fts_read failed",5)" (identifier "uVar15") (= "=") (call_expression "dcgettext(0,"fts_read failed",5)" (identifier "dcgettext") (argument_list "(0,"fts_read failed",5)" (( "(") (number_literal "0") (, ",") (string_literal ""fts_read failed"" (" """) (string_content "fts_read failed") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,*piVar13,uVar15);" (call_expression "error(0,*piVar13,uVar15)" (identifier "error") (argument_list "(0,*piVar13,uVar15)" (( "(") (number_literal "0") (, ",") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = fts_close(iVar7);" (assignment_expression "iVar7 = fts_close(iVar7)" (identifier "iVar7") (= "=") (call_expression "fts_close(iVar7)" (identifier "fts_close") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar17 = 4;\n      uVar15 = dcgettext(0,"fts_close failed",5);\n      error(0,*piVar13,uVar15);\n    }" ({ "{") (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" (identifier "iVar17") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar15 = dcgettext(0,"fts_close failed",5);" (assignment_expression "uVar15 = dcgettext(0,"fts_close failed",5)" (identifier "uVar15") (= "=") (call_expression "dcgettext(0,"fts_close failed",5)" (identifier "dcgettext") (argument_list "(0,"fts_close failed",5)" (( "(") (number_literal "0") (, ",") (string_literal ""fts_close failed"" (" """) (string_content "fts_close failed") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,*piVar13,uVar15);" (call_expression "error(0,*piVar13,uVar15)" (identifier "error") (argument_list "(0,*piVar13,uVar15)" (( "(") (number_literal "0") (, ",") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar17;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return iVar17;\n  }" ({ "{") (return_statement "return iVar17;" (return "return") (identifier "iVar17") (; ";")) (} "}"))) (expression_statement "FUN_0001c5a0();" (call_expression "FUN_0001c5a0()" (identifier "FUN_0001c5a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

type_1 function_1(char **file,type_2 *x)

{
  type_3 var_39;
  type_4 *var_28;
  type_5 *p_Var3;
  bool var_30;
  type_6 *sp;
  type_7 *var_4;
  type_1 var_20;
  type_8 *var_12;
  type_9 *var_16;
  char *pcVar7;
  int *piVar8;
  int var_10;
  type_10 uVar10;
  char *pcVar11;
  char *var_35;
  type_10 uVar13;
  type_1 var_43;
  type_11 *var_31;
  type_11 *var_32;
  int var_1;
  bool var_33;
  bool var_29;
  bool bVar19;
  type_11 bVar20;
  type_12 var_22;
  int var_38;
  int var_45;
  type_10 uStack_14;
  
  bVar20 = 0;
  uStack_14 = 0x13919;
  var_45 = *(int *)(var_1 + 0x14);
  if (*file == (char *)0x0) {
    var_43 = var_21;
  }
  else {
    var_43 = var_21;
    sp = var_2(file,(-(type_14)(x->one_file_system == false) & 0xffffffc0) + 600,
                   (type_13 *)0x0);
LAB_00013980:
    var_4 = var_3(sp);
    if (var_4 != (type_7 *)0x0) {
      var_39 = var_4->fts_info;
      switch(var_39) {
      default:
        var_35 = var_5(0,shell_escape_quoting_style,var_4->fts_path);
        var_39 = var_4->fts_info;
        uVar13 = var_6(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);
        var_7(0,0,uVar13,var_39,var_35,"bug-coreutils@gnu.org");
                    /* WARNING: Subroutine does not return */
        var_8();
      case 1:
        if (x->recursive == false) {
          if (x->remove_empty_directories == false) {
LAB_00013d50:
            uVar13 = 0x15;
          }
          else {
            var_10 = var_9(sp->fts_cwd_fd,var_4->fts_accpath,0x30900);
            if (-1 < var_10) {
              var_12 = var_11(var_10);
              if (var_12 == (type_8 *)0x0) {
                var_13(var_10);
              }
              else {
                piVar8 = var_14();
                *piVar8 = 0;
                do {
                  var_16 = var_15(var_12);
                  if (var_16 == (type_9 *)0x0) {
                    var_10 = *piVar8;
                    var_17(var_12);
                    if (var_10 != 0) goto LAB_00013b61;
                    goto LAB_00013ba0;
                  }
                } while ((var_16->d_name[0] == '.') &&
                        ((var_16->d_name[(var_16->d_name[1] == '.') + 1] == '\0' ||
                         (var_16->d_name[(var_16->d_name[1] == '.') + 1] == '/'))));
                var_17(var_12);
              }
            }
LAB_00013b61:
            if (x->remove_empty_directories == false) goto LAB_00013d50;
            uVar13 = 0x27;
          }
          var_35 = var_18(shell_escape_always_quoting_style,var_4->fts_path);
          uVar10 = var_6(0,"cannot remove %s",5);
          var_7(0,uVar13,uVar10,var_35);
          p_Var3 = var_4->fts_parent;
          var_10 = p_Var3->fts_level;
          while ((-1 < var_10 && (p_Var3->fts_number == 0))) {
            p_Var3->fts_number = 1;
            p_Var3 = p_Var3->fts_parent;
            var_10 = p_Var3->fts_level;
          }
        }
        else {
LAB_00013ba0:
          if (var_4->fts_level != 0) {
LAB_00013c01:
            var_20 = var_19(sp,var_4,true,x,PA_DESCEND_INTO_DIR,&var_22);
            if (var_20 == var_21) {
              if (var_22 != var_23) goto LAB_00013980;
              var_20 = var_24(sp,var_4,x,true);
              var_25(sp,var_4,4);
              var_3(sp);
              if (var_20 == var_21) goto LAB_00013980;
            }
            p_Var3 = var_4->fts_parent;
            var_10 = p_Var3->fts_level;
            while ((-1 < var_10 && (p_Var3->fts_number == 0))) {
              p_Var3->fts_number = 1;
              p_Var3 = p_Var3->fts_parent;
              var_10 = p_Var3->fts_level;
            }
            var_25(sp,var_4,4);
            var_3(sp);
            goto LAB_00013a75;
          }
          var_35 = var_4->fts_accpath;
          pcVar7 = var_26(var_35);
          if ((*pcVar7 == '.') &&
             ((pcVar7[(pcVar7[1] == '.') + 1] == '\0' || (pcVar7[(pcVar7[1] == '.') + 1] == '/'))))
          {
            var_35 = var_27(2,shell_escape_always_quoting_style,var_4->fts_path);
            pcVar7 = var_27(1,shell_escape_always_quoting_style,"..");
            pcVar11 = var_27(0,shell_escape_always_quoting_style,".");
            uVar13 = var_6(0,"refusing to remove %s or %s directory: skipping %s",5);
            var_7(0,0,uVar13,pcVar11,pcVar7,var_35);
          }
          else {
            var_28 = x->root_dev_ino;
            if ((var_28 != (type_4 *)0x0) &&
               (*(int *)((int)&var_4->fts_statp[0].st_ino + 4) == *(int *)((int)&var_28->st_ino + 4)
                && (int)var_4->fts_statp[0].st_ino == (int)var_28->st_ino)) {
              var_33 = false;
              var_29 = *(int *)((int)&var_4->fts_statp[0].st_dev + 4) ==
                       *(int *)((int)&var_28->st_dev + 4);
              var_30 = (int)var_4->fts_statp[0].st_dev == (int)var_28->st_dev;
              bVar19 = var_29 && var_30;
              if (var_29 && var_30) {
                var_10 = 2;
                var_31 = (type_11 *)var_4->fts_path;
                var_32 = &DAT_0001dff2;
                do {
                  if (var_10 == 0) break;
                  var_10 = var_10 + -1;
                  var_33 = *var_31 < *var_32;
                  bVar19 = *var_31 == *var_32;
                  var_31 = var_31 + (type_14)bVar20 * -2 + 1;
                  var_32 = var_32 + (type_14)bVar20 * -2 + 1;
                } while (bVar19);
                if ((!var_33 && !bVar19) == var_33) {
                  var_35 = var_18(shell_escape_always_quoting_style,var_4->fts_path);
                  uVar13 = var_6(0,"it is dangerous to operate recursively on %s",5);
                  var_7(0,0,uVar13,var_35);
                }
                else {
                  var_35 = var_27(1,shell_escape_always_quoting_style,"/");
                  pcVar7 = var_27(0,shell_escape_always_quoting_style,var_4->fts_path);
                  uVar13 = var_6(0,"it is dangerous to operate recursively on %s (same as %s)",5
                                    );
                  var_7(0,0,uVar13,pcVar7,var_35);
                }
                uVar13 = var_6(0,"use --no-preserve-root to override this failsafe",5);
                var_7(0,0,uVar13);
                goto LAB_00013dab;
              }
            }
            if (x->preserve_all_root == false) goto LAB_00013c01;
            var_35 = var_34(var_35,"..",(char **)0x0);
            if ((var_35 == (char *)0x0) ||
               (var_10 = var_36(3,var_35,(type_15 *)&var_22), var_10 != 0)) {
              pcVar7 = var_27(1,shell_escape_always_quoting_style,var_4->fts_accpath);
              pcVar11 = var_27(0,shell_escape_always_quoting_style,var_35);
              uVar13 = var_6(0,"failed to stat %s: skipping %s",5);
              var_7(0,0,uVar13,pcVar11,pcVar7);
              var_37(var_35);
            }
            else {
              var_37(var_35);
              if (*(int *)((int)&sp->fts_dev + 4) == var_38 &&
                  (type_12)sp->fts_dev == var_22) goto LAB_00013c01;
              var_35 = var_18(shell_escape_always_quoting_style,var_4->fts_path);
              uVar13 = var_6(0,"skipping %s, since it\'s on a different device",5);
              var_7(0,0,uVar13,var_35);
              uVar13 = var_6(0,"and --preserve-root=all is in effect",5);
              var_7(0,0,uVar13);
            }
          }
        }
LAB_00013dab:
        var_25(sp,var_4,4);
        var_43 = var_41;
        var_3(sp);
        goto LAB_00013980;
      case 2:
        var_35 = var_5(0,shell_escape_quoting_style,var_4->fts_path);
        uVar13 = var_6(0,
                           "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"
                           ,5);
        var_10 = 0;
        break;
      case 3:
      case 4:
      case 6:
      case 8:
      case 10:
      case 0xb:
      case 0xc:
      case 0xd:
        if ((((var_39 == 6) && (x->one_file_system != false)) && (0 < var_4->fts_level)) &&
           (*(int *)((int)&var_4->fts_statp[0].st_dev + 4) != *(int *)((int)&sp->fts_dev + 4) ||
            (int)var_4->fts_statp[0].st_dev != (int)sp->fts_dev)) {
          p_Var3 = var_4->fts_parent;
          var_10 = p_Var3->fts_level;
          while ((-1 < var_10 && (p_Var3->fts_number == 0))) {
            p_Var3->fts_number = 1;
            p_Var3 = p_Var3->fts_parent;
            var_10 = p_Var3->fts_level;
          }
          var_35 = var_18(shell_escape_always_quoting_style,var_4->fts_path);
          uVar13 = var_6(0,"skipping %s, since it\'s on a different device",5);
          var_43 = var_41;
          var_7(0,0,uVar13,var_35);
        }
        else {
          var_29 = (var_39 & 0xfffd) == 4;
          var_20 = var_19(sp,var_4,var_29,x,PA_REMOVE_DIR,(type_12 *)0x0);
          if (var_20 == var_21) {
            var_20 = var_24(sp,var_4,x,var_29);
          }
LAB_00013a75:
          if (2 < var_20 - var_21) {
                    /* WARNING: Subroutine does not return */
            var_40("VALID_STATUS (s)","src/remove.c",0x261,"rm");
          }
          if (var_20 == var_41) {
            var_43 = var_41;
          }
          else if ((var_20 == var_42) && (var_43 == var_21)) {
            var_43 = var_42;
          }
        }
        goto LAB_00013980;
      case 7:
        var_35 = var_5(0,shell_escape_quoting_style,var_4->fts_path);
        uVar13 = var_6(0,"traversal failed: %s",5);
        var_10 = var_4->fts_errno;
      }
      var_43 = var_41;
      var_7(0,var_10,uVar13,var_35);
      var_25(sp,var_4,4);
      var_3(sp);
      goto LAB_00013980;
    }
    piVar8 = var_14();
    if (*piVar8 != 0) {
      var_43 = var_41;
      uVar13 = var_6(0,"fts_read failed",5);
      var_7(0,*piVar8,uVar13);
    }
    var_10 = var_44(sp);
    if (var_10 != 0) {
      var_43 = var_41;
      uVar13 = var_6(0,"fts_close failed",5);
      var_7(0,*piVar8,uVar13);
    }
  }
  if (var_45 == *(int *)(var_1 + 0x14)) {
    return var_43;
  }
                    /* WARNING: Subroutine does not return */
  var_46();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))))) right: (number_literal))) right: (number_literal)) (number_literal))))) (labeled_statement label: (statement_identifier) (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: (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))))))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (identifier) (identifier) (string_literal (string_content))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (case_statement value: (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: (char_literal (escape_sequence)))) 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: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (do_statement body: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (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))) (goto_statement label: (statement_identifier))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (char_literal (character)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (char_literal (character)))) right: (number_literal))) right: (char_literal (escape_sequence))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (char_literal (character)))) right: (number_literal))) right: (char_literal (character)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (identifier) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) 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: (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: (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: (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)))))))))) alternative: (else_clause (compound_statement (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: (identifier) arguments: (argument_list (identifier) (number_literal) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (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))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) 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: (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: (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: (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: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (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))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) right: (number_literal))) right: (char_literal (escape_sequence))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) right: (number_literal))) right: (char_literal (character))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (identifier) (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal))) 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: (pointer_expression argument: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (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: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (identifier) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier)))) (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: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier))))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))))) right: (parenthesized_expression (binary_expression left: (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: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (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)))))))))) 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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) 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: (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: (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: (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: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (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 (binary_expression left: (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: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (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: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (identifier)))))) (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: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_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))))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int MASKED(int *param_1,int param_2)

{
  ushort uVar1;
  undefined2 uVar2;
  int iVar3;
  int iVar4;
  bool bVar5;
  bool bVar6;
  int iVar7;
  int iVar8;
  undefined4 uVar9;
  int iVar10;
  DIR *__dirp;
  dirent64 *pdVar11;
  char *pcVar12;
  int *piVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  int iVar17;
  byte *pbVar18;
  byte *pbVar19;
  int in_GS_OFFSET;
  bool bVar20;
  bool bVar21;
  byte bVar22;
  stat64 sStack_80;
  int local_20;
  undefined4 uStack_14;
  
  bVar22 = 0;
  uStack_14 = 0x13919;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (*param_1 == 0) {
    iVar17 = 2;
  }
  else {
    iVar17 = 2;
    iVar7 = FUN_00017550(param_1,(-(uint)(*(char *)(param_2 + 8) == '\0') & 0xffffffc0) + 600,0);
code_r0x00013980:
    iVar8 = fts_read(iVar7);
    if (iVar8 != 0) {
      uVar1 = *(ushort *)(iVar8 + 0x3c);
      switch(uVar1) {
      default:
        uVar15 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));
        uVar2 = *(undefined2 *)(iVar8 + 0x3c);
        uVar16 = dcgettext(0,"unexpected failure: fts_info=%d: %s\nplease report to %s",5);
        error(0,0,uVar16,uVar2,uVar15,"bug-coreutils@gnu.org");
                    /* WARNING: Subroutine does not return */
        abort();
      case 1:
        if (*(char *)(param_2 + 9) == '\0') {
          if (*(char *)(param_2 + 10) == '\0') {
code_r0x00013d50:
            uVar15 = 0x15;
          }
          else {
            iVar10 = openat64(*(int *)(iVar7 + 0x1c),*(char **)(iVar8 + 0x18),0x30900);
            if (-1 < iVar10) {
              __dirp = fdopendir(iVar10);
              if (__dirp == (DIR *)0x0) {
                close(iVar10);
              }
              else {
                piVar13 = __errno_location();
                *piVar13 = 0;
                do {
                  pdVar11 = readdir64(__dirp);
                  if (pdVar11 == (dirent64 *)0x0) {
                    iVar10 = *piVar13;
                    closedir(__dirp);
                    if (iVar10 != 0) goto code_r0x00013b61;
                    goto code_r0x00013ba0;
                  }
                } while ((pdVar11->d_name[0] == '.') &&
                        ((pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '\0' ||
                         (pdVar11->d_name[(pdVar11->d_name[1] == '.') + 1] == '/'))));
                closedir(__dirp);
              }
            }
code_r0x00013b61:
            if (*(char *)(param_2 + 10) == '\0') goto code_r0x00013d50;
            uVar15 = 0x27;
          }
          uVar16 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));
          uVar9 = dcgettext(0,"cannot remove %s",5);
          error(0,uVar15,uVar9,uVar16);
          iVar17 = *(int *)(iVar8 + 4);
          iVar10 = *(int *)(iVar17 + 0x30);
          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {
            *(undefined4 *)(iVar17 + 0x10) = 1;
            iVar17 = *(int *)(iVar17 + 4);
            iVar10 = *(int *)(iVar17 + 0x30);
          }
        }
        else {
code_r0x00013ba0:
          if (*(int *)(iVar8 + 0x30) != 0) {
code_r0x00013c01:
            iVar10 = FUN_00013400(param_2,2,&sStack_80);
            if (iVar10 == 2) {
              if ((int)sStack_80.st_dev != 4) goto code_r0x00013980;
              iVar10 = FUN_00013130(1);
              fts_set(iVar7,iVar8,4);
              fts_read(iVar7);
              if (iVar10 == 2) goto code_r0x00013980;
            }
            iVar3 = *(int *)(iVar8 + 4);
            iVar4 = *(int *)(iVar3 + 0x30);
            while ((-1 < iVar4 && (*(int *)(iVar3 + 0x10) == 0))) {
              *(undefined4 *)(iVar3 + 0x10) = 1;
              iVar3 = *(int *)(iVar3 + 4);
              iVar4 = *(int *)(iVar3 + 0x30);
            }
            fts_set(iVar7,iVar8,4);
            fts_read(iVar7);
            goto code_r0x00013a75;
          }
          uVar15 = *(undefined4 *)(iVar8 + 0x18);
          pcVar12 = (char *)FUN_000147f0(uVar15);
          if ((*pcVar12 == '.') &&
             ((pcVar12[(pcVar12[1] == '.') + 1] == '\0' || (pcVar12[(pcVar12[1] == '.') + 1] == '/')
              ))) {
            uVar15 = FUN_00016590(2,4,*(undefined4 *)(iVar8 + 0x1c));
            uVar16 = FUN_00016590(1,4,&DAT_0001db66);
            uVar9 = FUN_00016590(0,4,&DAT_0001db67);
            uVar14 = dcgettext(0,"refusing to remove %s or %s directory: skipping %s",5);
            error(0,0,uVar14,uVar9,uVar16,uVar15);
          }
          else {
            piVar13 = *(int **)(param_2 + 0xc);
            if ((piVar13 != (int *)0x0) &&
               (*(int *)(iVar8 + 0xa0) == piVar13[1] && *(int *)(iVar8 + 0x9c) == *piVar13)) {
              bVar20 = false;
              bVar5 = *(int *)(iVar8 + 0x48) == piVar13[3];
              bVar6 = *(int *)(iVar8 + 0x44) == piVar13[2];
              bVar21 = bVar5 && bVar6;
              if (bVar5 && bVar6) {
                iVar17 = 2;
                pbVar18 = *(byte **)(iVar8 + 0x1c);
                pbVar19 = &DAT_0001dff2;
                do {
                  if (iVar17 == 0) break;
                  iVar17 = iVar17 + -1;
                  bVar20 = *pbVar18 < *pbVar19;
                  bVar21 = *pbVar18 == *pbVar19;
                  pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;
                  pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;
                } while (bVar21);
                if ((!bVar20 && !bVar21) == bVar20) {
                  uVar15 = FUN_00016710(4,*(byte **)(iVar8 + 0x1c));
                  uVar16 = dcgettext(0,"it is dangerous to operate recursively on %s",5);
                  error(0,0,uVar16,uVar15);
                }
                else {
                  uVar15 = FUN_00016590(1,4,&DAT_0001dff2);
                  uVar16 = FUN_00016590(0,4,*(undefined4 *)(iVar8 + 0x1c));
                  uVar9 = dcgettext(0,"it is dangerous to operate recursively on %s (same as %s)",5)
                  ;
                  error(0,0,uVar9,uVar16,uVar15);
                }
                uVar15 = dcgettext(0,"use --no-preserve-root to override this failsafe",5);
                error(0,0,uVar15);
                goto code_r0x00013dab;
              }
            }
            if (*(char *)(param_2 + 0x10) == '\0') goto code_r0x00013c01;
            pcVar12 = (char *)FUN_00014a10(uVar15,&DAT_0001db66,0);
            if ((pcVar12 == (char *)0x0) || (iVar10 = __lxstat64(3,pcVar12,&sStack_80), iVar10 != 0)
               ) {
              uVar15 = FUN_00016590(1,4,*(undefined4 *)(iVar8 + 0x18));
              uVar16 = FUN_00016590(0,4,pcVar12);
              uVar9 = dcgettext(0,"failed to stat %s: skipping %s",5);
              error(0,0,uVar9,uVar16,uVar15);
              free(pcVar12);
            }
            else {
              free(pcVar12);
              if (*(int *)(iVar7 + 0x10) == sStack_80.st_dev._4_4_ &&
                  *(int *)(iVar7 + 0xc) == (int)sStack_80.st_dev) goto code_r0x00013c01;
              uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));
              uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);
              error(0,0,uVar16,uVar15);
              uVar15 = dcgettext(0,"and --preserve-root=all is in effect",5);
              error(0,0,uVar15);
            }
          }
        }
code_r0x00013dab:
        fts_set(iVar7,iVar8,4);
        iVar17 = 4;
        fts_read(iVar7);
        goto code_r0x00013980;
      case 2:
        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));
        uVar9 = dcgettext(0,
                          "WARNING: Circular directory structure.\nThis almost certainly means that you have a corrupted file system.\nNOTIFY YOUR SYSTEM MANAGER.\nThe following directory is part of the cycle:\n  %s\n"
                          ,5);
        uVar15 = 0;
        break;
      case 3:
      case 4:
      case 6:
      case 8:
      case 10:
      case 0xb:
      case 0xc:
      case 0xd:
        if ((((uVar1 == 6) && (*(char *)(param_2 + 8) != '\0')) && (0 < *(int *)(iVar8 + 0x30))) &&
           (*(int *)(iVar8 + 0x48) != *(int *)(iVar7 + 0x10) ||
            *(int *)(iVar8 + 0x44) != *(int *)(iVar7 + 0xc))) {
          iVar17 = *(int *)(iVar8 + 4);
          iVar10 = *(int *)(iVar17 + 0x30);
          while ((-1 < iVar10 && (*(int *)(iVar17 + 0x10) == 0))) {
            *(undefined4 *)(iVar17 + 0x10) = 1;
            iVar17 = *(int *)(iVar17 + 4);
            iVar10 = *(int *)(iVar17 + 0x30);
          }
          uVar15 = FUN_00016710(4,*(undefined4 *)(iVar8 + 0x1c));
          uVar16 = dcgettext(0,"skipping %s, since it\'s on a different device",5);
          iVar17 = 4;
          error(0,0,uVar16,uVar15);
        }
        else {
          iVar10 = FUN_00013400(param_2,3,0);
          if (iVar10 == 2) {
            iVar10 = FUN_00013130((uVar1 & 0xfffd) == 4);
          }
code_r0x00013a75:
          if (2 < iVar10 - 2U) {
                    /* WARNING: Subroutine does not return */
            __assert_fail("VALID_STATUS (s)","src/remove.c",0x261,"rm");
          }
          if (iVar10 == 4) {
            iVar17 = 4;
          }
          else if ((iVar10 == 3) && (iVar17 == 2)) {
            iVar17 = 3;
          }
        }
        goto code_r0x00013980;
      case 7:
        uVar16 = FUN_000168d0(0,3,*(undefined4 *)(iVar8 + 0x1c));
        uVar9 = dcgettext(0,"traversal failed: %s",5);
        uVar15 = *(undefined4 *)(iVar8 + 0x20);
      }
      iVar17 = 4;
      error(0,uVar15,uVar9,uVar16);
      fts_set(iVar7,iVar8,4);
      fts_read(iVar7);
      goto code_r0x00013980;
    }
    piVar13 = __errno_location();
    if (*piVar13 != 0) {
      iVar17 = 4;
      uVar15 = dcgettext(0,"fts_read failed",5);
      error(0,*piVar13,uVar15);
    }
    iVar7 = fts_close(iVar7);
    if (iVar7 != 0) {
      iVar17 = 4;
      uVar15 = dcgettext(0,"fts_close failed",5);
      error(0,*piVar13,uVar15);
    }
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar17;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0001c5a0();
}

