
int main(int argc,char **argv)

{
  uint8_t uVar1;
  long lVar2;
  bool bVar3;
  ushort uVar4;
  bool bVar5;
  bool bVar6;
  bool bVar7;
  char cVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  undefined8 uVar13;
  char *pcVar14;
  long lVar15;
  uint64_t uVar16;
  char *pcVar17;
  size_t sVar18;
  long lVar19;
  FILE *pFVar20;
  uint8_t *puVar21;
  uint *puVar22;
  uint uVar23;
  uint64_t *puVar24;
  uint32_t *puVar25;
  int iVar26;
  ulong uVar27;
  ulong uVar28;
  long in_FS_OFFSET;
  byte bVar29;
  int local_ed0;
  int local_ec8;
  int local_ec4;
  char *local_ec0;
  FILE *local_eb8;
  char *local_eb0;
  uint local_ea4;
  undefined1 local_e9d;
  int local_e9c;
  char *local_e98;
  ulong local_e90;
  int res;
  int option_index;
  sg_simple_inquiry_resp inq_resp;
  uint32_t num_arr [128];
  uint64_t addr_arr [128];
  uint8_t param_arr [2056];
  undefined1 local_38 [8];
  
  bVar29 = 0;
  lVar2 = *(long *)(in_FS_OFFSET + 0x28);
  local_ec0 = (char *)0x0;
  local_eb0 = (char *)0x0;
  local_eb8 = (FILE *)0x0;
  local_e90 = 0;
  uVar28 = 0;
  local_ea4 = 0;
  local_ec4 = 0;
  iVar26 = 0x3c;
  local_e9c = 0;
  bVar3 = false;
  bVar5 = false;
  bVar7 = false;
  bVar6 = false;
  local_e9d = 0;
  while( true ) {
    option_index = 0;
    iVar9 = getopt_long(argc,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index);
    pcVar17 = optarg;
    if (iVar9 == -1) break;
    switch(iVar9) {
    case 0x3f:
    case 0x68:
      usage();
      iVar9 = 0;
      goto LAB_00101539;
    default:
      pr2serr("unrecognised option code 0x%x ??\n",iVar9);
      usage();
      iVar9 = 1;
      goto LAB_00101539;
    case 0x41:
      pcVar14 = strchr(optarg,0x2c);
      if (pcVar14 == (char *)0x0) {
        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");
        iVar9 = 1;
        goto LAB_00101539;
      }
      uVar28 = sg_get_llnum(pcVar17);
      if ((long)uVar28 < 0) {
        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");
        iVar9 = 1;
        goto LAB_00101539;
      }
      uVar27 = sg_get_llnum(pcVar14 + 1);
      if (0xffffffff < uVar27) {
        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");
        iVar9 = 1;
        goto LAB_00101539;
      }
      local_ea4 = (uint)uVar27;
      if (uVar27 == 0) {
        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");
      }
      pcVar17 = strchr(pcVar14 + 1,0x2c);
      if ((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))
      {
        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");
        iVar9 = 1;
        goto LAB_00101539;
      }
      break;
    case 0x49:
      local_ec0 = optarg;
      break;
    case 0x56:
      bVar3 = true;
      break;
    case 0x61:
      local_e9d = 1;
      break;
    case 100:
      bVar7 = true;
      break;
    case 0x66:
      bVar6 = true;
      break;
    case 0x67:
      iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res);
      if ((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)) goto LAB_00101512;
      break;
    case 0x6c:
      local_eb8 = (FILE *)optarg;
      break;
    case 0x6e:
      local_eb0 = optarg;
      break;
    case 0x74:
      iVar26 = sg_get_num(optarg);
      if (iVar26 < 0) {
        pr2serr("bad argument to \'--timeout\'\n");
        iVar9 = 1;
        goto LAB_00101539;
      }
      if (iVar26 == 0) {
        iVar26 = 0x3c;
      }
      break;
    case 0x76:
      local_ec4 = local_ec4 + 1;
      bVar5 = true;
    }
  }
  if (optind < argc) {
    local_e98 = argv[optind];
    optind = optind + 1;
    if (optind < argc) goto LAB_0010172e;
  }
  else {
    local_e98 = (char *)0x0;
  }
  if ((bVar5) && (bVar3)) {
    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");
  }
  else if (!bVar3) {
    if (local_e98 == (char *)0x0) {
      pr2serr("missing device name!\n\n");
      usage();
      iVar9 = 1;
      goto LAB_00101539;
    }
    bVar5 = false;
    if (local_ea4 != 0) {
      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {
        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");
        usage();
        iVar9 = 0x1f;
        goto LAB_00101539;
      }
      bVar3 = local_e90 < uVar28 && local_e90 != 0;
      if (bVar3) {
        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");
        iVar9 = 0x1f;
        goto LAB_00101539;
      }
      iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);
      if (iVar10 < 0) goto LAB_001016ce;
      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);
      bVar5 = bVar3;
      if (local_e90 == 0) {
        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);
        if (res == 6) {
          pr2serr("Read capacity(16) unit attention, try again\n");
          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);
        }
        if (res == 0) {
          if (3 < local_ec4) {
            pr2serr("Read capacity(16) response:\n");
            hex2stderr(param_arr,0x20,1);
          }
          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);
          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |
                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |
                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |
                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |
                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |
                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;
        }
        else {
          if ((res - 5U & 0xfffffffb) != 0) {
            if (res < 0) {
              res = sg_convert_errno(-res);
            }
            pr2serr("Read capacity(16) failed\n");
            iVar9 = res;
            goto switchD_00101fe9_caseD_3;
          }
          if (local_ec4 == 0) {
            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);
            if (res != 0) {
LAB_001022f0:
              if (res < 0) {
                res = sg_convert_errno(-res);
              }
              pr2serr("Read capacity(10) failed\n");
              iVar9 = res;
              goto switchD_00101fe9_caseD_3;
            }
          }
          else {
            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");
            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);
            if (res != 0) goto LAB_001022f0;
            if (3 < local_ec4) {
              pr2serr("Read capacity(10) response:\n");
              hex2stderr(param_arr,8,1);
            }
          }
          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |
                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |
                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |
                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);
        }
        if (local_e90 < uVar28) {
          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",
                  uVar28,local_e90);
          iVar9 = 0x1f;
          goto switchD_00101fe9_caseD_3;
        }
        if (!bVar6) {
          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,
                       inq_resp.revision);
          sleep(3);
          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,
                         local_e90);
          goto LAB_001020d7;
        }
      }
      else if (!bVar6) {
        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,
                     inq_resp.revision);
        sleep(3);
        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);
LAB_001020d7:
        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");
        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);
        puts("        Press control-C to abort");
        sleep(5);
        puts("\nAn UNMAP will commence in 10 seconds");
        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);
        puts("        Press control-C to abort");
        sleep(5);
        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");
        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);
        puts("        Press control-C to abort");
        sleep(7);
      }
      local_ec8 = 0;
      if (bVar7) {
        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"
                ,uVar28,local_e90,local_ea4);
      }
      else {
        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {
          uVar23 = local_ea4;
          if (local_e90 - uVar28 < (ulong)local_ea4) {
            uVar23 = ((int)local_e90 + 1) - (int)uVar28;
          }
          uVar27 = uVar23 + uVar28;
          bVar5 = false;
          while( true ) {
            puVar21 = param_arr + 4;
            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {
              puVar21[0] = '\0';
              puVar21[1] = '\0';
              puVar21[2] = '\0';
              puVar21[3] = '\0';
              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;
            }
            param_arr._8_8_ =
                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |
                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |
                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |
                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;
            param_arr._16_4_ =
                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18
            ;
            param_arr[0] = '\0';
            param_arr[1] = '\x16';
            param_arr[2] = '\0';
            param_arr[3] = '\x10';
            iVar9 = 2;
            if (1 < local_ec4) {
              iVar9 = local_ec4;
            }
            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);
            if (bVar5) goto LAB_00102795;
            if (iVar9 == 0) break;
            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;
            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");
            uVar27 = uVar27 - 1;
            if (uVar23 < 2) goto LAB_00102795;
            uVar23 = uVar23 - 1;
            bVar5 = true;
          }
          local_ec8 = local_ec8 + 1;
        }
LAB_00102795:
        bVar5 = bVar7;
        if (local_ec4 != 0) {
          pr2serr("Completed %d UNMAP commands\n",local_ec8);
        }
      }
      goto switchD_00101fe9_caseD_3;
    }
    if (local_ec0 != (char *)0x0) {
      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {
        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");
        usage();
        iVar9 = 0x1f;
        goto LAB_00101539;
      }
      puVar24 = addr_arr;
      for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {
        *puVar24 = 0;
        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;
      }
      puVar25 = num_arr;
      for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {
        puVar25[0] = 0;
        puVar25[1] = 0;
        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;
      }
      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;
LAB_00101840:
      lVar19 = -1;
      pcVar17 = local_ec0;
      do {
        if (lVar19 == 0) break;
        lVar19 = lVar19 + -1;
        cVar8 = *pcVar17;
        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;
      } while (cVar8 != '\0');
      if ((lVar19 == -3) && (*local_ec0 == '-')) {
        local_eb8 = stdin;
        bVar3 = true;
LAB_00101bce:
        uVar23 = 0;
        iVar9 = 0;
        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {
          lVar19 = -1;
          puVar21 = param_arr;
          do {
            if (lVar19 == 0) break;
            lVar19 = lVar19 + -1;
            uVar1 = *puVar21;
            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;
          } while (uVar1 != '\0');
          iVar10 = ~(uint)lVar19 - 1;
          if (0 < iVar10) {
            iVar11 = ~(uint)lVar19 - 2;
            if ((param_arr[iVar11] == '\n') &&
               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;
            sVar18 = strspn((char *)param_arr," \t");
            iVar11 = (int)sVar18;
            if (iVar11 == iVar10) goto LAB_00101d67;
            puVar21 = param_arr + iVar11;
            if (*puVar21 == '#') goto LAB_00101d67;
            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");
            iVar12 = (int)sVar18;
            if (iVar10 - iVar11 <= iVar12) {
              iVar10 = 0;
LAB_00101d1a:
              while( true ) {
                uVar16 = sg_get_llnum(puVar21);
                if (uVar16 == 0xffffffffffffffff) break;
                iVar11 = (int)(iVar10 + uVar23) >> 1;
                if (0x7f < iVar11) {
                  pr2serr("%s: array length exceeded\n","build_joint_arr");
                  goto LAB_00101c6b;
                }
                if ((iVar10 + uVar23 & 1) == 0) {
                  addr_arr[iVar11] = uVar16;
                }
                else {
                  if (0xffffffff < (long)uVar16) {
                    local_ed0 = (int)local_38;
                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",
                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);
                    goto LAB_00101c6b;
                  }
                  num_arr[iVar11] = (uint32_t)uVar16;
                }
                pcVar17 = strpbrk((char *)puVar21," ,\t");
                if (pcVar17 == (char *)0x0) goto LAB_00101d62;
                sVar18 = strspn(pcVar17," ,\t");
                puVar21 = (uint8_t *)(pcVar17 + sVar18);
                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;
              }
              if (*puVar21 != '#') {
                local_ed0 = (int)local_38;
                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,
                        ((int)puVar21 - local_ed0) + 0x811);
                goto LAB_00101c6b;
              }
              iVar10 = iVar10 + -1;
LAB_00101d62:
              uVar23 = iVar10 + 1 + uVar23;
              goto LAB_00101d67;
            }
            if (puVar21[iVar12] == '#') {
              iVar10 = 0;
              goto LAB_00101d1a;
            }
            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,
                    iVar11 + 1 + iVar12);
            goto LAB_00101c6b;
          }
LAB_00101d67:
          iVar9 = iVar9 + 1;
          if (iVar9 == 0x200) break;
        }
        if ((uVar23 & 1) == 0) {
          iVar11 = (int)uVar23 >> 1;
          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {
            fclose(local_eb8);
          }
          if (iVar11 < 1) {
            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);
            iVar9 = 1;
            goto LAB_00101539;
          }
          goto LAB_00101e88;
        }
        pcVar17 = "stdin";
        if (!bVar3) {
          pcVar17 = local_ec0;
        }
        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",
                pcVar17);
LAB_00101c6b:
        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {
          fclose(local_eb8);
        }
      }
      else {
        local_eb8 = fopen64(local_ec0,"r");
        if (local_eb8 != (FILE *)0x0) {
          bVar3 = false;
          goto LAB_00101bce;
        }
        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);
      }
      pr2serr("bad argument to \'--in\'\n");
      iVar9 = 1;
      goto LAB_00101539;
    }
    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {
      if (local_eb8 == (FILE *)0x0) {
        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");
      }
      else {
        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");
      }
      usage();
      iVar9 = 0x1f;
      goto LAB_00101539;
    }
    puVar24 = addr_arr;
    for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {
      *puVar24 = 0;
      puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;
    }
    puVar25 = num_arr;
    for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {
      puVar25[0] = 0;
      puVar25[1] = 0;
      puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;
    }
LAB_001018ea:
    lVar19 = -1;
    pFVar20 = local_eb8;
    do {
      if (lVar19 == 0) break;
      lVar19 = lVar19 + -1;
      cVar8 = *(char *)pFVar20;
      pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);
    } while (cVar8 != '\0');
    if (*(char *)local_eb8 == '-') {
      pr2serr("\'--lba\' cannot be read from stdin\n");
LAB_001019b7:
      pr2serr("bad argument to \'--lba\'\n");
      iVar9 = 1;
      goto LAB_00101539;
    }
    sVar18 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");
    if (~(uint)lVar19 - 1 != (int)sVar18) {
      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);
      goto LAB_001019b7;
    }
    lVar19 = 0;
    pFVar20 = local_eb8;
    do {
      iVar9 = (int)lVar19;
      uVar16 = sg_get_llnum(pFVar20);
      if (uVar16 == 0xffffffffffffffff) {
        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);
        goto LAB_001019b7;
      }
      addr_arr[lVar19] = uVar16;
      pcVar14 = strchr((char *)pFVar20,0x2c);
      pcVar17 = strchr((char *)pFVar20,0x20);
      if (pcVar14 == (char *)0x0) {
        if (pcVar17 != (char *)0x0) goto LAB_001019db;
        iVar11 = iVar9 + 1;
        goto LAB_00102805;
      }
      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {
        pcVar17 = pcVar14;
      }
LAB_001019db:
      pFVar20 = (FILE *)(pcVar17 + 1);
      lVar19 = lVar19 + 1;
    } while (lVar19 != 0x80);
    iVar11 = iVar9 + 2;
    if (iVar9 == 0x7f) {
      pr2serr("build_lba_arr: array length exceeded\n");
      goto LAB_001019b7;
    }
LAB_00102805:
    if (*local_eb0 == '-') {
      pr2serr("\'--len\' cannot be read from stdin\n");
LAB_00101aa5:
      pr2serr("bad argument to \'--num\'\n");
      iVar9 = 1;
      goto LAB_00101539;
    }
    lVar19 = -1;
    pcVar17 = local_eb0;
    do {
      if (lVar19 == 0) break;
      lVar19 = lVar19 + -1;
      cVar8 = *pcVar17;
      pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;
    } while (cVar8 != '\0');
    sVar18 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");
    if ((int)sVar18 != ~(uint)lVar19 - 1) {
      pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);
      goto LAB_00101aa5;
    }
    lVar19 = 0;
    pcVar17 = local_eb0;
    do {
      iVar9 = (int)lVar19;
      lVar15 = sg_get_llnum(pcVar17);
      if (lVar15 == -1) {
        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);
        goto LAB_00101aa5;
      }
      if (0xffffffff < lVar15) {
        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",
                ((int)pcVar17 - (int)local_eb0) + 1);
        goto LAB_00101aa5;
      }
      num_arr[lVar19] = (uint32_t)lVar15;
      pcVar14 = strchr(pcVar17,0x2c);
      pcVar17 = strchr(pcVar17,0x20);
      if (pcVar14 == (char *)0x0) {
        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;
        iVar10 = iVar9 + 1;
        goto LAB_001027df;
      }
      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {
        pcVar17 = pcVar14;
      }
LAB_00101ae7:
      pcVar17 = pcVar17 + 1;
      lVar19 = lVar19 + 1;
    } while (lVar19 != 0x80);
    iVar10 = iVar9 + 2;
    if (iVar9 == 0x7f) {
      pr2serr("build_num_arr: array length exceeded\n");
      goto LAB_00101aa5;
    }
LAB_001027df:
    if ((iVar11 != iVar10) || (iVar10 < 1)) {
      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");
      iVar9 = 0x1f;
      goto LAB_00101539;
    }
    if (local_ec0 != (char *)0x0) goto LAB_00101840;
LAB_00101e88:
    iVar12 = iVar11 * 0x10 + 8;
    __memset_chk(param_arr,0,(long)iVar12,0x808);
    puVar22 = (uint *)param_arr;
    for (lVar19 = 0; (int)lVar19 < iVar11; lVar19 = lVar19 + 1) {
      uVar28 = addr_arr[lVar19];
      *(ulong *)(puVar22 + 2) =
           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18
           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18
           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;
      uVar23 = num_arr[lVar19];
      puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |
                   uVar23 << 0x18;
      puVar22 = puVar22 + 4;
    }
    uVar4 = (ushort)(iVar11 * 0x10);
    param_arr._0_2_ = (uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8;
    param_arr._2_2_ = uVar4 << 8 | uVar4 >> 8;
    iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);
    if (iVar10 < 0) {
LAB_001016ce:
      iVar9 = sg_convert_errno(-iVar10);
      uVar13 = safe_strerror(-iVar10);
      pr2serr("open error: %s: %s\n",local_e98,uVar13);
    }
    else {
      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);
      if (bVar7) {
        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");
        puVar22 = (uint *)param_arr;
        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {
          uVar23 = puVar22[4];
          uVar28 = *(ulong *)(puVar22 + 2);
          __printf_chk(1,"    0x%lx, 0x%u\n",
                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |
                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |
                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |
                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,
                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |
                       uVar23 << 0x18);
          puVar22 = puVar22 + 4;
        }
      }
      else {
        if (!bVar6) {
          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,
                       inq_resp.revision);
          sleep(3);
          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");
          puts("    Some data will be LOST");
          puts("        Press control-C to abort");
          sleep(5);
          puts("\nAn UNMAP will commence in 10 seconds");
          puts("    Some data will be LOST");
          puts("        Press control-C to abort");
          sleep(5);
          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");
          puts("    Some data will be LOST");
          puts("        Press control-C to abort");
          sleep(7);
        }
        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);
        res = iVar9;
        bVar5 = bVar7;
        switch(iVar9) {
        case 2:
          pr2serr("UNMAP failed, device not ready\n");
          bVar5 = true;
          break;
        case 5:
          pr2serr("bad field in UNMAP cdb\n");
          bVar5 = true;
          break;
        case 6:
          pr2serr("UNMAP, unit attention\n");
          bVar5 = true;
          break;
        case 9:
          pr2serr("UNMAP not supported\n");
          bVar5 = true;
          break;
        case 0xb:
          pr2serr("UNMAP, aborted command\n");
          bVar5 = true;
        }
      }
switchD_00101fe9_caseD_3:
      res = sg_cmds_close_device(iVar10);
      if (res < 0) {
        uVar13 = safe_strerror(-res);
        pr2serr("close error: %s\n",uVar13);
        if (iVar9 == 0) {
          iVar9 = sg_convert_errno(-res);
        }
      }
    }
    if (((local_ec4 == 0) && (!bVar5)) &&
       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')) {
      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
    }
    if (iVar9 < 0) {
      iVar9 = 99;
    }
    goto LAB_00101539;
  }
  pr2serr("version: %s\n","1.17 20180628");
  iVar9 = 0;
  goto LAB_00101539;
LAB_00101512:
  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");
  iVar9 = 1;
  goto LAB_00101539;
LAB_0010172e:
  do {
    pr2serr("Unexpected extra argument: %s\n",argv[optind]);
    optind = optind + 1;
  } while (optind < argc);
  usage();
  iVar9 = 1;
LAB_00101539:
  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar9;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



/* WARNING: Type propagation algorithm not settling */

uint FUN_00101300(int param_1,long param_2)

{
  bool bVar1;
  ushort uVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  char cVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  undefined8 uVar12;
  char *pcVar13;
  long lVar14;
  char *pcVar15;
  size_t sVar16;
  long lVar17;
  FILE *pFVar18;
  uint *puVar19;
  uint uVar20;
  ulong *puVar21;
  int iVar22;
  ulong uVar23;
  ulong uVar24;
  long in_FS_OFFSET;
  byte bVar25;
  int local_ed0;
  int local_ec8;
  int local_ec4;
  char *local_ec0;
  FILE *local_eb8;
  char *local_eb0;
  uint local_ea4;
  undefined1 local_e9d;
  uint local_e9c;
  long local_e98;
  ulong local_e90;
  uint local_e80 [2];
  undefined1 local_e78 [8];
  undefined1 local_e70 [9];
  undefined1 local_e67 [17];
  undefined1 local_e56 [14];
  uint local_e48 [128];
  ulong local_c48 [128];
  undefined4 local_848;
  uint uStack_844;
  ulong local_840;
  uint local_838 [510];
  long local_40;
  undefined1 local_38 [8];
  
  bVar25 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_ec0 = (char *)0x0;
  local_eb0 = (char *)0x0;
  local_eb8 = (FILE *)0x0;
  local_e90 = 0;
  uVar24 = 0;
  local_ea4 = 0;
  local_ec4 = 0;
  iVar22 = 0x3c;
  local_e9c = 0;
  bVar1 = false;
  bVar3 = false;
  bVar5 = false;
  bVar4 = false;
  local_e9d = 0;
  while( true ) {
    local_e80[1] = 0;
    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);
    pcVar15 = optarg;
    if (iVar7 == -1) break;
    switch(iVar7) {
    case 0x3f:
    case 0x68:
      FUN_001012d5();
      uVar8 = 0;
      goto LAB_00101539;
    default:
      pr2serr("unrecognised option code 0x%x ??\n",iVar7);
      FUN_001012d5();
      uVar8 = 1;
      goto LAB_00101539;
    case 0x41:
      pcVar13 = strchr(optarg,0x2c);
      if (pcVar13 == (char *)0x0) {
        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");
        uVar8 = 1;
        goto LAB_00101539;
      }
      uVar24 = sg_get_llnum(pcVar15);
      if ((long)uVar24 < 0) {
        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");
        uVar8 = 1;
        goto LAB_00101539;
      }
      uVar23 = sg_get_llnum(pcVar13 + 1);
      if (0xffffffff < uVar23) {
        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");
        uVar8 = 1;
        goto LAB_00101539;
      }
      local_ea4 = (uint)uVar23;
      if (uVar23 == 0) {
        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");
      }
      pcVar15 = strchr(pcVar13 + 1,0x2c);
      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))
      {
        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");
        uVar8 = 1;
        goto LAB_00101539;
      }
      break;
    case 0x49:
      local_ec0 = optarg;
      break;
    case 0x56:
      bVar1 = true;
      break;
    case 0x61:
      local_e9d = 1;
      break;
    case 100:
      bVar5 = true;
      break;
    case 0x66:
      bVar4 = true;
      break;
    case 0x67:
      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);
      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;
      break;
    case 0x6c:
      local_eb8 = (FILE *)optarg;
      break;
    case 0x6e:
      local_eb0 = optarg;
      break;
    case 0x74:
      iVar22 = sg_get_num(optarg);
      if (iVar22 < 0) {
        pr2serr("bad argument to \'--timeout\'\n");
        uVar8 = 1;
        goto LAB_00101539;
      }
      if (iVar22 == 0) {
        iVar22 = 0x3c;
      }
      break;
    case 0x76:
      local_ec4 = local_ec4 + 1;
      bVar3 = true;
    }
  }
  if (optind < param_1) {
    local_e98 = *(long *)(param_2 + (long)optind * 8);
    optind = optind + 1;
    if (optind < param_1) goto LAB_0010172e;
  }
  else {
    local_e98 = 0;
  }
  if ((bVar3) && (bVar1)) {
    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");
  }
  else if (!bVar1) {
    if (local_e98 == 0) {
      pr2serr("missing device name!\n\n");
      FUN_001012d5();
      uVar8 = 1;
      goto LAB_00101539;
    }
    bVar3 = false;
    if (local_ea4 != 0) {
      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {
        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");
        FUN_001012d5();
        uVar8 = 0x1f;
        goto LAB_00101539;
      }
      bVar1 = local_e90 < uVar24 && local_e90 != 0;
      if (bVar1) {
        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");
        uVar8 = 0x1f;
        goto LAB_00101539;
      }
      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);
      if (iVar7 < 0) goto LAB_001016ce;
      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);
      bVar3 = bVar1;
      if (local_e90 == 0) {
        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);
        if (local_e80[0] == 6) {
          pr2serr("Read capacity(16) unit attention, try again\n");
          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);
        }
        if (local_e80[0] == 0) {
          if (3 < local_ec4) {
            pr2serr("Read capacity(16) response:\n");
            hex2stderr(&local_848,0x20,1);
          }
          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);
          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28
                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |
                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8
                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |
                      CONCAT44(uStack_844,uVar20) << 0x38;
        }
        else {
          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {
            if ((int)local_e80[0] < 0) {
              local_e80[0] = sg_convert_errno(-local_e80[0]);
            }
            pr2serr("Read capacity(16) failed\n");
            uVar8 = local_e80[0];
            goto switchD_00101fe9_caseD_3;
          }
          if (local_ec4 == 0) {
            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);
            if (local_e80[0] != 0) {
LAB_001022f0:
              if ((int)local_e80[0] < 0) {
                local_e80[0] = sg_convert_errno(-local_e80[0]);
              }
              pr2serr("Read capacity(10) failed\n");
              uVar8 = local_e80[0];
              goto switchD_00101fe9_caseD_3;
            }
          }
          else {
            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");
            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);
            if (local_e80[0] != 0) goto LAB_001022f0;
            if (3 < local_ec4) {
              pr2serr("Read capacity(10) response:\n");
              hex2stderr(&local_848,8,1);
            }
          }
          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8
                              | ((ushort)local_848 & 0xff00) << 8 |
                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);
        }
        if (local_e90 < uVar24) {
          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",
                  uVar24,local_e90);
          uVar8 = 0x1f;
          goto switchD_00101fe9_caseD_3;
        }
        if (!bVar4) {
          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);
          sleep(3);
          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,
                         local_e90);
          goto LAB_001020d7;
        }
      }
      else if (!bVar4) {
        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);
        sleep(3);
        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)
        ;
LAB_001020d7:
        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");
        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);
        puts("        Press control-C to abort");
        sleep(5);
        puts("\nAn UNMAP will commence in 10 seconds");
        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);
        puts("        Press control-C to abort");
        sleep(5);
        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");
        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);
        puts("        Press control-C to abort");
        sleep(7);
      }
      local_ec8 = 0;
      if (bVar5) {
        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"
                ,uVar24,local_e90,local_ea4);
      }
      else {
        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {
          uVar20 = local_ea4;
          if (local_e90 - uVar24 < (ulong)local_ea4) {
            uVar20 = ((int)local_e90 + 1) - (int)uVar24;
          }
          uVar23 = uVar20 + uVar24;
          bVar3 = false;
          while( true ) {
            puVar19 = &uStack_844;
            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {
              *puVar19 = 0;
              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;
            }
            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |
                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |
                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |
                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;
            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |
                           uVar20 << 0x18;
            local_848._0_2_ = 0x1600;
            local_848._2_2_ = 0x1000;
            iVar9 = 2;
            if (1 < local_ec4) {
              iVar9 = local_ec4;
            }
            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);
            if (bVar3) goto LAB_00102795;
            if (uVar8 == 0) break;
            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;
            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");
            uVar23 = uVar23 - 1;
            if (uVar20 < 2) goto LAB_00102795;
            uVar20 = uVar20 - 1;
            bVar3 = true;
          }
          local_ec8 = local_ec8 + 1;
        }
LAB_00102795:
        bVar3 = bVar5;
        if (local_ec4 != 0) {
          pr2serr("Completed %d UNMAP commands\n",local_ec8);
        }
      }
      goto switchD_00101fe9_caseD_3;
    }
    if (local_ec0 != (char *)0x0) {
      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {
        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");
        FUN_001012d5();
        uVar8 = 0x1f;
        goto LAB_00101539;
      }
      puVar21 = local_c48;
      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {
        *puVar21 = 0;
        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;
      }
      puVar19 = local_e48;
      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {
        puVar19[0] = 0;
        puVar19[1] = 0;
        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;
      }
      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;
LAB_00101840:
      lVar17 = -1;
      pcVar15 = local_ec0;
      do {
        if (lVar17 == 0) break;
        lVar17 = lVar17 + -1;
        cVar6 = *pcVar15;
        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;
      } while (cVar6 != '\0');
      if ((lVar17 == -3) && (*local_ec0 == '-')) {
        local_eb8 = stdin;
        bVar1 = true;
LAB_00101bce:
        uVar8 = 0;
        iVar7 = 0;
        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {
          lVar17 = -1;
          pcVar15 = (char *)&local_848;
          do {
            if (lVar17 == 0) break;
            lVar17 = lVar17 + -1;
            cVar6 = *pcVar15;
            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;
          } while (cVar6 != '\0');
          iVar9 = ~(uint)lVar17 - 1;
          if (0 < iVar9) {
            iVar10 = ~(uint)lVar17 - 2;
            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&
               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))
            goto LAB_00101d67;
            sVar16 = strspn((char *)&local_848," \t");
            iVar10 = (int)sVar16;
            if (iVar10 == iVar9) goto LAB_00101d67;
            pcVar15 = (char *)((long)&local_848 + (long)iVar10);
            if (*pcVar15 == '#') goto LAB_00101d67;
            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");
            iVar11 = (int)sVar16;
            if (iVar9 - iVar10 <= iVar11) {
              iVar9 = 0;
LAB_00101d1a:
              while( true ) {
                uVar24 = sg_get_llnum(pcVar15);
                if (uVar24 == 0xffffffffffffffff) break;
                iVar10 = (int)(iVar9 + uVar8) >> 1;
                if (0x7f < iVar10) {
                  pr2serr("%s: array length exceeded\n","build_joint_arr");
                  goto LAB_00101c6b;
                }
                if ((iVar9 + uVar8 & 1) == 0) {
                  local_c48[iVar10] = uVar24;
                }
                else {
                  if (0xffffffff < (long)uVar24) {
                    local_ed0 = (int)local_38;
                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",
                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);
                    goto LAB_00101c6b;
                  }
                  local_e48[iVar10] = (uint)uVar24;
                }
                pcVar15 = strpbrk(pcVar15," ,\t");
                if (pcVar15 == (char *)0x0) goto LAB_00101d62;
                sVar16 = strspn(pcVar15," ,\t");
                pcVar15 = pcVar15 + sVar16;
                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;
              }
              if (*pcVar15 != '#') {
                local_ed0 = (int)local_38;
                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,
                        ((int)pcVar15 - local_ed0) + 0x811);
                goto LAB_00101c6b;
              }
              iVar9 = iVar9 + -1;
LAB_00101d62:
              uVar8 = iVar9 + 1 + uVar8;
              goto LAB_00101d67;
            }
            if (pcVar15[iVar11] == '#') {
              iVar9 = 0;
              goto LAB_00101d1a;
            }
            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,
                    iVar10 + 1 + iVar11);
            goto LAB_00101c6b;
          }
LAB_00101d67:
          iVar7 = iVar7 + 1;
          if (iVar7 == 0x200) break;
        }
        if ((uVar8 & 1) == 0) {
          iVar9 = (int)uVar8 >> 1;
          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {
            fclose(local_eb8);
          }
          if (iVar9 < 1) {
            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);
            uVar8 = 1;
            goto LAB_00101539;
          }
          goto LAB_00101e88;
        }
        pcVar15 = "stdin";
        if (!bVar1) {
          pcVar15 = local_ec0;
        }
        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",
                pcVar15);
LAB_00101c6b:
        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {
          fclose(local_eb8);
        }
      }
      else {
        local_eb8 = fopen64(local_ec0,"r");
        if (local_eb8 != (FILE *)0x0) {
          bVar1 = false;
          goto LAB_00101bce;
        }
        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);
      }
      pr2serr("bad argument to \'--in\'\n");
      uVar8 = 1;
      goto LAB_00101539;
    }
    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {
      if (local_eb8 == (FILE *)0x0) {
        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");
      }
      else {
        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");
      }
      FUN_001012d5();
      uVar8 = 0x1f;
      goto LAB_00101539;
    }
    puVar21 = local_c48;
    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {
      *puVar21 = 0;
      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;
    }
    puVar19 = local_e48;
    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {
      puVar19[0] = 0;
      puVar19[1] = 0;
      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;
    }
LAB_001018ea:
    lVar17 = -1;
    pFVar18 = local_eb8;
    do {
      if (lVar17 == 0) break;
      lVar17 = lVar17 + -1;
      cVar6 = *(char *)pFVar18;
      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);
    } while (cVar6 != '\0');
    if (*(char *)local_eb8 == '-') {
      pr2serr("\'--lba\' cannot be read from stdin\n");
LAB_001019b7:
      pr2serr("bad argument to \'--lba\'\n");
      uVar8 = 1;
      goto LAB_00101539;
    }
    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");
    if (~(uint)lVar17 - 1 != (int)sVar16) {
      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);
      goto LAB_001019b7;
    }
    lVar17 = 0;
    pFVar18 = local_eb8;
    do {
      iVar7 = (int)lVar17;
      uVar24 = sg_get_llnum(pFVar18);
      if (uVar24 == 0xffffffffffffffff) {
        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);
        goto LAB_001019b7;
      }
      local_c48[lVar17] = uVar24;
      pcVar13 = strchr((char *)pFVar18,0x2c);
      pcVar15 = strchr((char *)pFVar18,0x20);
      if (pcVar13 == (char *)0x0) {
        if (pcVar15 != (char *)0x0) goto LAB_001019db;
        iVar9 = iVar7 + 1;
        goto LAB_00102805;
      }
      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {
        pcVar15 = pcVar13;
      }
LAB_001019db:
      pFVar18 = (FILE *)(pcVar15 + 1);
      lVar17 = lVar17 + 1;
    } while (lVar17 != 0x80);
    iVar9 = iVar7 + 2;
    if (iVar7 == 0x7f) {
      pr2serr("build_lba_arr: array length exceeded\n");
      goto LAB_001019b7;
    }
LAB_00102805:
    if (*local_eb0 == '-') {
      pr2serr("\'--len\' cannot be read from stdin\n");
LAB_00101aa5:
      pr2serr("bad argument to \'--num\'\n");
      uVar8 = 1;
      goto LAB_00101539;
    }
    lVar17 = -1;
    pcVar15 = local_eb0;
    do {
      if (lVar17 == 0) break;
      lVar17 = lVar17 + -1;
      cVar6 = *pcVar15;
      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;
    } while (cVar6 != '\0');
    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");
    if ((int)sVar16 != ~(uint)lVar17 - 1) {
      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);
      goto LAB_00101aa5;
    }
    lVar17 = 0;
    pcVar15 = local_eb0;
    do {
      iVar7 = (int)lVar17;
      lVar14 = sg_get_llnum(pcVar15);
      if (lVar14 == -1) {
        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);
        goto LAB_00101aa5;
      }
      if (0xffffffff < lVar14) {
        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",
                ((int)pcVar15 - (int)local_eb0) + 1);
        goto LAB_00101aa5;
      }
      local_e48[lVar17] = (uint)lVar14;
      pcVar13 = strchr(pcVar15,0x2c);
      pcVar15 = strchr(pcVar15,0x20);
      if (pcVar13 == (char *)0x0) {
        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;
        iVar10 = iVar7 + 1;
        goto LAB_001027df;
      }
      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {
        pcVar15 = pcVar13;
      }
LAB_00101ae7:
      pcVar15 = pcVar15 + 1;
      lVar17 = lVar17 + 1;
    } while (lVar17 != 0x80);
    iVar10 = iVar7 + 2;
    if (iVar7 == 0x7f) {
      pr2serr("build_num_arr: array length exceeded\n");
      goto LAB_00101aa5;
    }
LAB_001027df:
    if ((iVar9 != iVar10) || (iVar10 < 1)) {
      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");
      uVar8 = 0x1f;
      goto LAB_00101539;
    }
    if (local_ec0 != (char *)0x0) goto LAB_00101840;
LAB_00101e88:
    iVar10 = iVar9 * 0x10 + 8;
    __memset_chk(&local_848,0,(long)iVar10,0x808);
    puVar19 = &local_848;
    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {
      uVar24 = local_c48[lVar17];
      *(ulong *)(puVar19 + 2) =
           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18
           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18
           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;
      uVar8 = local_e48[lVar17];
      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
      puVar19 = puVar19 + 4;
    }
    uVar2 = (ushort)(iVar9 * 0x10);
    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;
    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;
    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);
    if (iVar7 < 0) {
LAB_001016ce:
      uVar8 = sg_convert_errno(-iVar7);
      uVar12 = safe_strerror(-iVar7);
      pr2serr("open error: %s: %s\n",local_e98,uVar12);
    }
    else {
      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);
      if (bVar5) {
        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");
        puVar19 = &local_848;
        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {
          uVar20 = puVar19[4];
          uVar24 = *(ulong *)(puVar19 + 2);
          __printf_chk(1,"    0x%lx, 0x%u\n",
                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |
                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |
                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |
                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,
                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |
                       uVar20 << 0x18);
          puVar19 = puVar19 + 4;
        }
      }
      else {
        if (!bVar4) {
          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);
          sleep(3);
          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");
          puts("    Some data will be LOST");
          puts("        Press control-C to abort");
          sleep(5);
          puts("\nAn UNMAP will commence in 10 seconds");
          puts("    Some data will be LOST");
          puts("        Press control-C to abort");
          sleep(5);
          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");
          puts("    Some data will be LOST");
          puts("        Press control-C to abort");
          sleep(7);
        }
        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);
        local_e80[0] = uVar8;
        bVar3 = bVar5;
        switch(uVar8) {
        case 2:
          pr2serr("UNMAP failed, device not ready\n");
          bVar3 = true;
          break;
        case 5:
          pr2serr("bad field in UNMAP cdb\n");
          bVar3 = true;
          break;
        case 6:
          pr2serr("UNMAP, unit attention\n");
          bVar3 = true;
          break;
        case 9:
          pr2serr("UNMAP not supported\n");
          bVar3 = true;
          break;
        case 0xb:
          pr2serr("UNMAP, aborted command\n");
          bVar3 = true;
        }
      }
switchD_00101fe9_caseD_3:
      local_e80[0] = sg_cmds_close_device(iVar7);
      if ((int)local_e80[0] < 0) {
        uVar12 = safe_strerror(-local_e80[0]);
        pr2serr("close error: %s\n",uVar12);
        if (uVar8 == 0) {
          uVar8 = sg_convert_errno(-local_e80[0]);
        }
      }
    }
    if (((local_ec4 == 0) && (!bVar3)) &&
       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {
      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
    }
    if ((int)uVar8 < 0) {
      uVar8 = 99;
    }
    goto LAB_00101539;
  }
  pr2serr("version: %s\n","1.17 20180628");
  uVar8 = 0;
  goto LAB_00101539;
LAB_00101512:
  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");
  uVar8 = 1;
  goto LAB_00101539;
LAB_0010172e:
  do {
    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));
    optind = optind + 1;
  } while (optind < param_1);
  FUN_001012d5();
  uVar8 = 1;
LAB_00101539:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar8;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0xea8
MOV EBP,EDI
MOV R12,RSI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0xe98],RAX
XOR EAX,EAX
MOV qword ptr [RSP + 0x18],0x0
MOV qword ptr [RSP + 0x28],0x0
MOV qword ptr [RSP + 0x20],0x0
MOV qword ptr [RSP + 0x48],0x0
MOV R15D,0x0
MOV dword ptr [RSP + 0x34],0x0
MOV dword ptr [RSP + 0x14],0x0
MOV dword ptr [RSP + 0x8],0x3c
MOV dword ptr [RSP + 0x3c],0x0
MOV byte ptr [RSP + 0x10],0x0
MOV byte ptr [RSP + 0x30],0x0
MOV byte ptr [RSP + 0x39],0x0
MOV byte ptr [RSP + 0x3a],0x0
MOV byte ptr [RSP + 0x3b],0x0
LEA R13,[RSP + 0x5c]
LEA RBX,[0x1042a0]
LEA RAX,[RSP + 0x58]
MOV qword ptr [RSP + 0x40],RAX
MOV dword ptr [RSP + 0x5c],0x0
MOV R8,R13
LEA RCX,[0x106020]
LEA RDX,[0x103fe6]
MOV RSI,R12
MOV EDI,EBP
CALL 0x001010d0
CMP EAX,-0x1
JZ 0x00101632
LEA EDX,[RAX + -0x3f]
CMP EDX,0x37
JA 0x001015f7
MOV EDX,EDX
MOVSXD RDX,dword ptr [RBX + RDX*0x4]
ADD RDX,RBX
JMP RDX
MOV byte ptr [RSP + 0x39],0x1
JMP 0x001013a2
MOV R15,qword ptr [0x001061f0]
MOV ESI,0x2c
MOV RDI,R15
CALL 0x001010e0
MOV R14,RAX
TEST RAX,RAX
JZ 0x00101465
MOV RDI,R15
CALL 0x00101150
TEST RAX,RAX
JS 0x00101480
MOV R15,RAX
ADD R14,0x1
MOV RDI,R14
CALL 0x00101150
MOV ECX,0xffffffff
CMP RAX,RCX
JA 0x0010149b
MOV dword ptr [RSP + 0x34],EAX
TEST RAX,RAX
JZ 0x001014b6
MOV ESI,0x2c
MOV RDI,R14
CALL 0x001010e0
TEST RAX,RAX
JZ 0x001013a2
LEA RDI,[RAX + 0x1]
CALL 0x00101150
TEST RAX,RAX
JS 0x001014c7
MOV qword ptr [RSP + 0x48],RAX
JMP 0x001013a2
LEA RDI,[0x103720]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1
JMP 0x00101539
LEA RDI,[0x103768]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1
JMP 0x00101539
LEA RDI,[0x103798]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1
JMP 0x00101539
LEA RDI,[0x1037d0]
CALL 0x001010c0
JMP 0x00101437
LEA RDI,[0x103808]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1
JMP 0x00101539
MOV RDX,qword ptr [RSP + 0x40]
LEA RSI,[0x103ffa]
MOV RDI,qword ptr [0x001061f0]
MOV EAX,0x0
CALL 0x00101130
CMP EAX,0x1
JNZ 0x00101512
MOV EAX,dword ptr [RSP + 0x58]
MOV dword ptr [RSP + 0x3c],EAX
CMP EAX,0x3f
JBE 0x001013a2
LEA RDI,[0x103838]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1
JMP 0x00101539
MOV EAX,0x0
CALL 0x001012d5
MOV EBX,0x0
MOV EAX,EBX
MOV RCX,qword ptr [RSP + 0xe98]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x0010285f
ADD RSP,0xea8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RAX,qword ptr [0x001061f0]
MOV qword ptr [RSP + 0x18],RAX
JMP 0x001013a2
MOV RAX,qword ptr [0x001061f0]
MOV qword ptr [RSP + 0x20],RAX
JMP 0x001013a2
MOV RAX,qword ptr [0x001061f0]
MOV qword ptr [RSP + 0x28],RAX
JMP 0x001013a2
MOV RDI,qword ptr [0x001061f0]
CALL 0x001011a0
MOV dword ptr [RSP + 0x8],EAX
TEST EAX,EAX
JS 0x001015c3
CMP dword ptr [RSP + 0x8],0x0
JNZ 0x001013a2
MOV dword ptr [RSP + 0x8],0x3c
JMP 0x001013a2
LEA RDI,[0x103ffd]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1
JMP 0x00101539
ADD dword ptr [RSP + 0x14],0x1
MOV byte ptr [RSP + 0x30],0x1
JMP 0x001013a2
MOV byte ptr [RSP + 0x10],0x1
JMP 0x001013a2
MOV ESI,EAX
LEA RDI,[0x103860]
MOV EAX,0x0
CALL 0x001010c0
MOV EAX,0x0
CALL 0x001012d5
MOV EBX,0x1
JMP 0x00101539
MOV byte ptr [RSP + 0x3b],0x1
JMP 0x001013a2
MOV byte ptr [RSP + 0x3a],0x1
JMP 0x001013a2
MOV EAX,dword ptr [0x001061e8]
CMP EAX,EBP
JL 0x0010170a
MOV qword ptr [RSP + 0x40],0x0
CMP byte ptr [RSP + 0x30],0x0
JZ 0x0010165b
CMP byte ptr [RSP + 0x10],0x0
JNZ 0x00101768
CMP byte ptr [RSP + 0x10],0x0
JNZ 0x00101779
CMP qword ptr [RSP + 0x40],0x0
JZ 0x0010179b
CMP dword ptr [RSP + 0x34],0x0
JZ 0x001017e5
MOV RAX,qword ptr [RSP + 0x20]
OR RAX,qword ptr [RSP + 0x28]
MOV RCX,qword ptr [RSP + 0x18]
OR RCX,RAX
JNZ 0x001017c0
MOV RSI,qword ptr [RSP + 0x48]
TEST RSI,RSI
SETNZ AL
CMP R15,RSI
SETA R12B
AND R12B,AL
JNZ 0x00101975
MOV EDX,dword ptr [RSP + 0x14]
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x40]
CALL 0x001011c0
MOV R13D,EAX
TEST EAX,EAX
JNS 0x0010265f
NEG R13D
MOV EDI,R13D
CALL 0x00101160
MOV EBX,EAX
MOV EDI,R13D
CALL 0x00101180
MOV RDX,RAX
MOV RSI,qword ptr [RSP + 0x40]
LEA RDI,[0x104085]
MOV EAX,0x0
CALL 0x001010c0
MOVZX EAX,byte ptr [RSP + 0x10]
MOV byte ptr [RSP + 0x39],AL
JMP 0x001027b4
MOVSXD RDX,EAX
MOV RSI,qword ptr [R12 + RDX*0x8]
MOV qword ptr [RSP + 0x40],RSI
ADD EAX,0x1
MOV dword ptr [0x001061e8],EAX
CMP EAX,EBP
JGE 0x00101649
LEA RBX,[0x103888]
CDQE
MOV RSI,qword ptr [R12 + RAX*0x8]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x001010c0
MOV EAX,dword ptr [0x001061e8]
ADD EAX,0x1
MOV dword ptr [0x001061e8],EAX
CMP EAX,EBP
JL 0x0010172e
MOV EAX,0x0
CALL 0x001012d5
MOV EBX,0x1
JMP 0x00101539
LEA RDI,[0x1038a8]
MOV EAX,0x0
CALL 0x001010c0
LEA RSI,[0x10401a]
LEA RDI,[0x104028]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x0
JMP 0x00101539
LEA RDI,[0x104035]
MOV EAX,0x0
CALL 0x001010c0
MOV EAX,0x0
CALL 0x001012d5
MOV EBX,0x1
JMP 0x00101539
LEA RDI,[0x1038e0]
MOV EAX,0x0
CALL 0x001010c0
MOV EAX,0x0
CALL 0x001012d5
MOV EBX,0x1f
JMP 0x00101539
CMP qword ptr [RSP + 0x18],0x0
JZ 0x001018af
MOV RAX,qword ptr [RSP + 0x20]
OR RAX,qword ptr [RSP + 0x28]
JNZ 0x0010188a
LEA RDX,[RSP + 0x290]
MOV EAX,0x0
MOV ECX,0x80
MOV RDI,RDX
STOSQ.REP RDI
LEA RDX,[RSP + 0x90]
MOV ECX,0x40
MOV RDI,RDX
STOSQ.REP RDI
CMP qword ptr [RSP + 0x28],0x0
JZ 0x00101840
CMP qword ptr [RSP + 0x20],0x0
JNZ 0x001018ea
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,qword ptr [RSP + 0x18]
SCASB.REPNE RDI
CMP RCX,-0x3
JZ 0x00101baf
LEA RSI,[0x104256]
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x00101110
MOV qword ptr [RSP + 0x20],RAX
TEST RAX,RAX
JZ 0x00101bed
MOVZX EAX,byte ptr [RSP + 0x10]
MOV byte ptr [RSP + 0x30],AL
JMP 0x00101bce
LEA RDI,[0x103920]
MOV EAX,0x0
CALL 0x001010c0
MOV EAX,0x0
CALL 0x001012d5
MOV EBX,0x1f
JMP 0x00101539
CMP qword ptr [RSP + 0x20],0x0
JZ 0x00101935
CMP qword ptr [RSP + 0x28],0x0
JZ 0x00101935
LEA RDX,[RSP + 0x290]
MOV EAX,0x0
MOV ECX,0x80
MOV RDI,RDX
STOSQ.REP RDI
LEA RDX,[RSP + 0x90]
MOV ECX,0x40
MOV RDI,RDX
STOSQ.REP RDI
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,qword ptr [RSP + 0x20]
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RBX,[RAX + -0x1]
MOV RDI,qword ptr [RSP + 0x20]
CMP byte ptr [RDI],0x2d
JZ 0x00101990
LEA RSI,[0x103a40]
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x001010f0
CMP EBX,EAX
JNZ 0x001019a3
MOV RBX,qword ptr [RSP + 0x20]
MOV EBP,0x0
JMP 0x001019ec
CMP qword ptr [RSP + 0x20],0x0
JZ 0x00101962
LEA RDI,[0x103960]
MOV EAX,0x0
CALL 0x001010c0
MOV EAX,0x0
CALL 0x001012d5
MOV EBX,0x1f
JMP 0x00101539
LEA RDI,[0x103990]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x0010194e
LEA RDI,[0x1039d8]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1f
JMP 0x00101539
LEA RDI,[0x103a18]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x001019b7
LEA ESI,[RAX + 0x1]
LEA RDI,[0x103a70]
MOV EAX,0x0
CALL 0x001010c0
LEA RDI,[0x104234]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1
JMP 0x00101539
TEST RAX,RAX
JZ 0x00102801
LEA RBX,[RAX + 0x1]
ADD RBP,0x1
CMP RBP,0x80
JZ 0x00101a5a
MOV R13D,EBP
MOV R14D,EBP
MOV RDI,RBX
CALL 0x00101150
CMP RAX,-0x1
JZ 0x00101a39
MOV qword ptr [RSP + RBP*0x8 + 0x290],RAX
MOV ESI,0x2c
MOV RDI,RBX
CALL 0x001010e0
MOV R12,RAX
MOV ESI,0x20
MOV RDI,RBX
CALL 0x001010e0
TEST R12,R12
JZ 0x001019d2
TEST RAX,RAX
JZ 0x00101a34
CMP R12,RAX
JA 0x001019db
MOV RAX,R12
JMP 0x001019db
MOV RSI,RBX
SUB RSI,qword ptr [RSP + 0x20]
ADD ESI,0x1
LEA RDI,[0x103a70]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x001019b7
ADD R14D,0x2
CMP R13D,0x7f
JNZ 0x00102805
LEA RDI,[0x103a90]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x001019b7
LEA RDI,[0x103ab8]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x00101aa5
LEA ESI,[RAX + 0x1]
LEA RDI,[0x103ae0]
MOV EAX,0x0
CALL 0x001010c0
LEA RDI,[0x10421b]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1
JMP 0x00101539
MOV RSI,RBP
SUB RSI,qword ptr [RSP + 0x28]
ADD ESI,0x1
LEA RDI,[0x103b00]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x00101aa5
TEST RAX,RAX
JZ 0x001027d8
LEA RBP,[RAX + 0x1]
ADD R12,0x1
CMP R12,0x80
JZ 0x00101b6d
MOV R15D,R12D
MOV dword ptr [RSP + 0x20],R12D
MOV RDI,RBP
CALL 0x00101150
CMP RAX,-0x1
JZ 0x00101b4c
CMP RAX,R13
JG 0x00101ac0
MOV dword ptr [RSP + R12*0x4 + 0x90],EAX
MOV ESI,0x2c
MOV RDI,RBP
CALL 0x001010e0
MOV RBX,RAX
MOV ESI,0x20
MOV RDI,RBP
CALL 0x001010e0
TEST RBX,RBX
JZ 0x00101ade
TEST RAX,RAX
JZ 0x00101b47
CMP RBX,RAX
JA 0x00101ae7
MOV RAX,RBX
JMP 0x00101ae7
MOV RSI,RBP
SUB RSI,qword ptr [RSP + 0x28]
ADD ESI,0x1
LEA RDI,[0x103ae0]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x00101aa5
MOV EAX,dword ptr [RSP + 0x20]
ADD EAX,0x2
CMP R15D,0x7f
JNZ 0x001027df
LEA RDI,[0x103b38]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x00101aa5
LEA RDI,[0x103b60]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1f
JMP 0x00101539
MOV RAX,qword ptr [RSP + 0x18]
CMP byte ptr [RAX],0x2d
JNZ 0x0010185d
MOV RAX,qword ptr [0x001061e0]
MOV qword ptr [RSP + 0x20],RAX
MOV byte ptr [RSP + 0x30],0x1
MOV R12D,0x0
MOV R14D,0x0
LEA R13,[RSP + 0x690]
MOV R15D,0xffffffff
JMP 0x00101d78
MOV RDX,qword ptr [RSP + 0x18]
LEA RSI,[0x1043b0]
LEA RDI,[0x10404c]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x00101c86
MOV byte ptr [RSP + RDX*0x1 + 0x690],0x0
TEST EAX,EAX
JLE 0x00101d67
MOV EBP,EAX
JMP 0x00101dc5
MOV EAX,dword ptr [RSP + 0x28]
LEA ECX,[RAX + RDX*0x1 + 0x1]
LEA EDX,[R14 + 0x1]
LEA RSI,[0x1043b0]
LEA RDI,[0x103bd0]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x00101c6b
MOV EBP,0x0
JMP 0x00101d1a
LEA RSI,[0x1043b0]
LEA RDI,[0x104066]
MOV EAX,0x0
CALL 0x001010c0
MOV RAX,qword ptr [RSP + 0x20]
TEST RAX,RAX
JZ 0x00101c86
CMP RAX,qword ptr [0x001061e0]
JZ 0x00101c86
MOV RDI,RAX
CALL 0x00101090
LEA RDI,[0x104203]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1
JMP 0x00101539
LEA RAX,[RSP + 0xea0]
MOV qword ptr [RSP + 0x8],RAX
SUB EBX,dword ptr [RSP + 0x8]
LEA ECX,[RBX + 0x811]
LEA EDX,[R14 + 0x1]
LEA RSI,[0x1043b0]
LEA RDI,[0x103bf8]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x00101c6b
MOVSXD RCX,ECX
MOV qword ptr [RSP + RCX*0x8 + 0x290],RAX
LEA RSI,[0x104081]
MOV RDI,RBX
CALL 0x00101140
MOV RBX,RAX
TEST RAX,RAX
JZ 0x00101d62
LEA RSI,[0x104081]
MOV RDI,RAX
CALL 0x001010f0
ADD RBX,RAX
CMP byte ptr [RBX],0x0
JZ 0x00101d62
ADD EBP,0x1
CMP EBP,0x400
JZ 0x00101d62
MOV RDI,RBX
CALL 0x00101150
CMP RAX,-0x1
JZ 0x00101d56
LEA EDX,[RBP + R12*0x1]
MOV ECX,EDX
SAR ECX,0x1
AND EDX,0x1
CMP ECX,0x7f
JG 0x00101c53
TEST EDX,EDX
JZ 0x00101cd6
CMP RAX,R15
JG 0x00101ca1
MOVSXD RCX,ECX
MOV dword ptr [RSP + RCX*0x4 + 0x90],EAX
JMP 0x00101ce1
CMP byte ptr [RBX],0x23
JNZ 0x00101e1c
SUB EBP,0x1
LEA R12D,[RBP + R12*0x1 + 0x1]
ADD R14D,0x1
CMP R14D,0x200
JZ 0x00101e54
MOV RDX,qword ptr [RSP + 0x20]
MOV ESI,0x400
MOV RDI,R13
CALL 0x00101100
TEST RAX,RAX
JZ 0x00101e54
MOV RCX,-0x1
MOV RDI,R13
MOV EAX,0x0
SCASB.REPNE RDI
NOT RCX
LEA RAX,[RCX + -0x1]
MOV EBP,EAX
TEST EAX,EAX
JLE 0x00101d67
SUB EAX,0x1
MOVSXD RDX,EAX
CMP byte ptr [RSP + RDX*0x1 + 0x690],0xa
JZ 0x00101c0c
LEA RSI,[0x104063]
MOV RDI,R13
CALL 0x001010f0
MOV dword ptr [RSP + 0x28],EAX
CMP EAX,EBP
JZ 0x00101d67
MOVSXD RBX,EAX
ADD RBX,R13
SUB EBP,EAX
CMP byte ptr [RBX],0x23
JZ 0x00101d67
LEA RSI,[0x103ba0]
MOV RDI,RBX
CALL 0x001010f0
MOV EDX,EAX
CMP EBP,EAX
JLE 0x00101c49
CDQE
CMP byte ptr [RBX + RAX*0x1],0x23
JNZ 0x00101c23
MOV EBP,0x0
JMP 0x00101d1a
LEA RAX,[RSP + 0xea0]
MOV qword ptr [RSP + 0x8],RAX
SUB EBX,dword ptr [RSP + 0x8]
LEA ECX,[RBX + 0x811]
LEA EDX,[R14 + 0x1]
LEA RSI,[0x1043b0]
LEA RDI,[0x103c30]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x00101c6b
TEST R12B,0x1
JNZ 0x00101ee1
MOV R14D,R12D
SAR R14D,0x1
MOV RAX,qword ptr [RSP + 0x20]
TEST RAX,RAX
JZ 0x00101e7f
CMP RAX,qword ptr [0x001061e0]
JZ 0x00101e7f
MOV RDI,RAX
CALL 0x00101090
TEST R14D,R14D
JLE 0x00101f13
MOV R13D,R14D
SHL R13D,0x4
LEA R12D,[R13 + 0x8]
MOVSXD RDX,R12D
LEA RBX,[RSP + 0x690]
MOV ECX,0x808
MOV ESI,0x0
MOV RDI,RBX
CALL 0x00101190
MOV RBP,RBX
MOV EAX,0x0
ADD RBX,0x10
CMP R14D,EAX
JLE 0x00101f33
MOV RDX,qword ptr [RSP + RAX*0x8 + 0x290]
BSWAP RDX
MOV qword ptr [RBX + -0x8],RDX
MOV EDX,dword ptr [RSP + RAX*0x4 + 0x90]
BSWAP EDX
MOV dword ptr [RBX],EDX
ADD RAX,0x1
JMP 0x00101eb8
CMP byte ptr [RSP + 0x30],0x0
LEA RAX,[0x103fe0]
CMOVZ RAX,qword ptr [RSP + 0x18]
MOV RDX,RAX
LEA RSI,[0x1043b0]
LEA RDI,[0x103c58]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x00101c6b
MOV RSI,qword ptr [RSP + 0x18]
LEA RDI,[0x103c98]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1
JMP 0x00101539
LEA EAX,[R13 + 0x6]
ROL AX,0x8
MOV word ptr [RSP + 0x690],AX
ROL R13W,0x8
MOV word ptr [RSP + 0x692],R13W
MOV EDX,dword ptr [RSP + 0x14]
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x40]
CALL 0x001011c0
MOV R13D,EAX
TEST EAX,EAX
JS 0x001016ce
LEA RSI,[RSP + 0x60]
MOV ECX,dword ptr [RSP + 0x14]
MOV EDX,0x1
MOV EDI,EAX
CALL 0x00101030
MOV EBX,EAX
CMP byte ptr [RSP + 0x39],0x0
JNZ 0x001023e7
CMP byte ptr [RSP + 0x3a],0x0
JZ 0x00102440
MOVZX ESI,byte ptr [RSP + 0x3b]
MOV EAX,dword ptr [RSP + 0x14]
PUSH RAX
PUSH 0x1
MOV R9D,R12D
LEA R8,[RSP + 0x6a0]
MOV ECX,dword ptr [RSP + 0x18]
MOV EDX,dword ptr [RSP + 0x4c]
MOV EDI,R13D
CALL 0x001010a0
MOV EBX,EAX
MOV dword ptr [RSP + 0x68],EAX
ADD RSP,0x10
LEA EAX,[RAX + -0x2]
CMP EAX,0x9
JA 0x001027a0
MOV EAX,EAX
LEA RDX,[0x104380]
MOVSXD RAX,dword ptr [RDX + RAX*0x4]
ADD RAX,RDX
JMP RAX
LEA RCX,[RSP + 0x690]
SUB RSP,0x8
MOV EAX,dword ptr [RSP + 0x1c]
PUSH RAX
MOV R9D,0x1
MOV R8D,0x20
MOV EDX,0x0
MOV ESI,0x0
MOV EDI,R13D
CALL 0x00101060
MOV dword ptr [RSP + 0x68],EAX
ADD RSP,0x10
CMP EAX,0x6
JZ 0x00102195
MOV EAX,dword ptr [RSP + 0x58]
TEST EAX,EAX
JNZ 0x0010220a
CMP dword ptr [RSP + 0x14],0x3
JG 0x001021e2
MOV RAX,qword ptr [RSP + 0x690]
BSWAP RAX
MOV qword ptr [RSP + 0x48],RAX
CMP R15,qword ptr [RSP + 0x48]
JA 0x0010234c
CMP byte ptr [RSP + 0x3a],0x0
JNZ 0x0010268e
LEA RCX,[RSP + 0x68]
LEA R9,[RSP + 0x82]
LEA R8,[RSP + 0x71]
MOV R14,qword ptr [RSP + 0x40]
MOV RDX,R14
LEA RSI,[0x104135]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x00101170
MOV EDI,0x3
CALL 0x001011d0
LEA RDI,[RSP + 0x690]
PUSH qword ptr [RSP + 0x48]
PUSH R14
MOV R9,R15
LEA R8,[0x103fc0]
MOV ECX,0x78
MOV EDX,0x1
MOV ESI,0x78
MOV EAX,0x0
CALL 0x00101040
ADD RSP,0x10
LEA RDI,[0x103d88]
CALL 0x00101070
LEA RBP,[RSP + 0x690]
MOV RDX,RBP
LEA RSI,[0x103dc0]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x00101170
LEA RDI,[0x103de8]
CALL 0x00101070
MOV EDI,0x5
CALL 0x001011d0
LEA RDI,[0x103e10]
CALL 0x00101070
MOV RDX,RBP
LEA RSI,[0x103dc0]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x00101170
LEA RDI,[0x103de8]
CALL 0x00101070
MOV EDI,0x5
CALL 0x001011d0
LEA RDI,[0x103e38]
CALL 0x00101070
MOV RDX,RBP
LEA RSI,[0x103dc0]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x00101170
LEA RDI,[0x103de8]
CALL 0x00101070
MOV EDI,0x7
CALL 0x001011d0
JMP 0x0010268e
LEA RDI,[0x103cd0]
MOV EAX,0x0
CALL 0x001010c0
LEA RCX,[RSP + 0x690]
SUB RSP,0x8
MOV EAX,dword ptr [RSP + 0x1c]
PUSH RAX
MOV R9D,0x1
MOV R8D,0x20
MOV EDX,0x0
MOV ESI,0x0
MOV EDI,R13D
CALL 0x00101060
MOV dword ptr [RSP + 0x68],EAX
ADD RSP,0x10
JMP 0x0010202b
LEA RDI,[0x104099]
CALL 0x001010c0
LEA RDI,[RSP + 0x690]
MOV EDX,0x1
MOV ESI,0x20
CALL 0x001011b0
JMP 0x00102042
LEA EDX,[RAX + -0x5]
TEST EDX,0xfffffffb
JNZ 0x0010231a
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x00102274
LEA RCX,[RSP + 0x690]
SUB RSP,0x8
MOV EAX,dword ptr [RSP + 0x1c]
PUSH RAX
MOV R9D,0x1
MOV R8D,0x8
MOV EDX,0x0
MOV ESI,0x0
MOV EDI,R13D
CALL 0x00101050
MOV dword ptr [RSP + 0x68],EAX
ADD RSP,0x10
TEST EAX,EAX
JNZ 0x001022f0
MOV EAX,dword ptr [RSP + 0x690]
BSWAP EAX
MOV EAX,EAX
MOV qword ptr [RSP + 0x48],RAX
JMP 0x00102052
LEA RDI,[0x103d00]
MOV EAX,0x0
CALL 0x001010c0
LEA RCX,[RSP + 0x690]
SUB RSP,0x8
MOV R14D,dword ptr [RSP + 0x1c]
PUSH R14
MOV R9D,0x1
MOV R8D,0x8
MOV EDX,0x0
MOV ESI,0x0
MOV EDI,R13D
CALL 0x00101050
MOV dword ptr [RSP + 0x68],EAX
ADD RSP,0x10
TEST EAX,EAX
JNZ 0x001022f0
CMP R14D,0x3
JLE 0x0010225f
LEA RDI,[0x1040b6]
CALL 0x001010c0
LEA RDI,[RSP + 0x690]
MOV EDX,0x1
MOV ESI,0x8
CALL 0x001011b0
JMP 0x0010225f
TEST EAX,EAX
JS 0x0010230b
LEA RDI,[0x1040d3]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,dword ptr [RSP + 0x58]
JMP 0x00102333
NEG EAX
MOV EDI,EAX
CALL 0x00101160
MOV dword ptr [RSP + 0x58],EAX
JMP 0x001022f4
TEST EAX,EAX
JS 0x0010233d
LEA RDI,[0x1040ed]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,dword ptr [RSP + 0x58]
MOV byte ptr [RSP + 0x39],R12B
JMP 0x001027a0
NEG EAX
MOV EDI,EAX
CALL 0x00101160
MOV dword ptr [RSP + 0x58],EAX
JMP 0x0010231e
MOV RDX,qword ptr [RSP + 0x48]
MOV RSI,R15
LEA RDI,[0x103d38]
MOV EAX,0x0
CALL 0x001010c0
MOV EBX,0x1f
JMP 0x00102333
MOV ECX,dword ptr [RSP + 0x34]
MOV RDX,qword ptr [RSP + 0x48]
MOV RSI,R15
LEA RDI,[0x103e70]
MOV EAX,0x0
CALL 0x001010c0
MOV byte ptr [RSP + 0x39],R12B
JMP 0x001027a0
LEA RDI,[0x103ed0]
MOV EAX,0x0
CALL 0x001010c0
SUB R12,0x1
CMP EBP,0x1
JBE 0x00102795
SUB EBP,0x1
MOV byte ptr [RSP + 0x18],0x1
JMP 0x00102700
MOV EBP,EBP
ADD R15,RBP
ADD dword ptr [RSP + 0x10],0x1
JMP 0x001026c3
MOV ESI,dword ptr [RSP + 0x10]
LEA RDI,[0x104107]
MOV EAX,0x0
CALL 0x001010c0
JMP 0x001027a0
LEA RDI,[0x103f10]
MOV EAX,0x0
CALL 0x001010c0
MOV R12D,0x0
LEA R15,[0x104124]
ADD RBP,0x10
CMP R12D,R14D
JGE 0x00102432
MOV ECX,dword ptr [RBP]
BSWAP ECX
MOV RDX,qword ptr [RBP + -0x8]
BSWAP RDX
MOV RSI,R15
MOV EDI,0x1
MOV EAX,0x0
CALL 0x00101170
ADD R12D,0x1
JMP 0x00102405
MOVZX EAX,byte ptr [RSP + 0x10]
MOV byte ptr [RSP + 0x39],AL
JMP 0x001027a0
LEA RCX,[RSP + 0x68]
LEA R9,[RSP + 0x82]
LEA R8,[RSP + 0x71]
MOV RDX,qword ptr [RSP + 0x40]
LEA RSI,[0x104135]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x00101170
MOV EDI,0x3
CALL 0x001011d0
LEA RDI,[0x103d88]
CALL 0x00101070
LEA RDI,[0x104150]
CALL 0x00101070
LEA RDI,[0x103de8]
CALL 0x00101070
MOV EDI,0x5
CALL 0x001011d0
LEA RDI,[0x103e10]
CALL 0x00101070
LEA RDI,[0x104150]
CALL 0x00101070
LEA RDI,[0x103de8]
CALL 0x00101070
MOV EDI,0x5
CALL 0x001011d0
LEA RDI,[0x103e38]
CALL 0x00101070
LEA RDI,[0x104150]
CALL 0x00101070
LEA RDI,[0x103de8]
CALL 0x00101070
MOV EDI,0x7
CALL 0x001011d0
JMP 0x00101f9c
LEA RDI,[0x103f58]
MOV EAX,0x0
CALL 0x001010c0
MOV byte ptr [RSP + 0x39],0x1
JMP 0x001027a0
LEA RDI,[0x10416b]
MOV EAX,0x0
CALL 0x001010c0
MOV byte ptr [RSP + 0x39],0x1
JMP 0x001027a0
LEA RDI,[0x104182]
MOV EAX,0x0
CALL 0x001010c0
MOV byte ptr [RSP + 0x39],0x1
JMP 0x001027a0
LEA RDI,[0x10419a]
MOV EAX,0x0
CALL 0x001010c0
MOV byte ptr [RSP + 0x39],0x1
JMP 0x001027a0
LEA RDI,[0x1041af]
MOV EAX,0x0
CALL 0x001010c0
MOV byte ptr [RSP + 0x39],0x1
JMP 0x001027a0
NEG EAX
MOV EDI,EAX
CALL 0x00101180
MOV RSI,RAX
LEA RDI,[0x1041c7]
MOV EAX,0x0
CALL 0x001010c0
TEST EBX,EBX
JNZ 0x001027b4
MOV EDI,dword ptr [RSP + 0x58]
NEG EDI
CALL 0x00101160
MOV EBX,EAX
JMP 0x001027b4
MOV ESI,EBX
LEA RDI,[0x1041d8]
CALL 0x00101120
TEST AL,AL
JNZ 0x001027c6
LEA RDI,[0x103f78]
CALL 0x001010c0
JMP 0x001027c6
LEA RCX,[RSP + 0x68]
LEA R9,[RSP + 0x82]
LEA R8,[RSP + 0x71]
MOV R14,qword ptr [RSP + 0x40]
MOV RDX,R14
LEA RSI,[0x104135]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x00101170
MOV EDI,0x3
CALL 0x001011d0
LEA RDI,[RSP + 0x690]
PUSH R14
PUSH qword ptr [RSP + 0x50]
MOV R9,R15
LEA R8,[0x1041ea]
MOV ECX,0x78
MOV EDX,0x1
MOV ESI,0x78
MOV EAX,0x0
CALL 0x00101040
ADD RSP,0x10
JMP 0x001020d7
LEA RSI,[RSP + 0x60]
MOV ECX,dword ptr [RSP + 0x14]
MOV EDX,0x1
MOV EDI,R13D
CALL 0x00101030
MOV EBX,EAX
CMP qword ptr [RSP + 0x48],0x0
JZ 0x00101feb
CMP byte ptr [RSP + 0x3a],0x0
JZ 0x001025eb
MOV dword ptr [RSP + 0x10],0x0
MOVZX EAX,byte ptr [RSP + 0x39]
TEST AL,AL
JNZ 0x0010236c
MOV ECX,dword ptr [RSP + 0x48]
ADD ECX,0x1
MOV dword ptr [RSP + 0x30],ECX
MOV byte ptr [RSP + 0x3a],AL
LEA R14,[RSP + 0x690]
MOVZX EAX,byte ptr [RSP + 0x3b]
MOV dword ptr [RSP + 0x28],EAX
CMP R15,qword ptr [RSP + 0x48]
JA 0x00102795
MOV RDX,qword ptr [RSP + 0x48]
SUB RDX,R15
MOV EBP,dword ptr [RSP + 0x34]
MOV EAX,EBP
CMP RDX,RAX
JNC 0x001026e8
MOV EBP,dword ptr [RSP + 0x30]
SUB EBP,R15D
MOV R12D,EBP
ADD R12,R15
MOVZX EAX,byte ptr [RSP + 0x3a]
MOV byte ptr [RSP + 0x18],AL
LEA RAX,[R14 + 0x4]
MOV qword ptr [RSP + 0x20],RAX
MOV ECX,0x5
MOV RDI,qword ptr [RSP + 0x20]
MOV EAX,0x0
STOSD.REP RDI
MOV RAX,R15
BSWAP RAX
MOV qword ptr [RSP + 0x698],RAX
MOV EAX,EBP
BSWAP EAX
MOV dword ptr [RSP + 0x6a0],EAX
MOV word ptr [RSP + 0x690],0x1600
MOV word ptr [RSP + 0x692],0x1000
MOV ESI,dword ptr [RSP + 0x14]
CMP ESI,0x2
MOV EAX,0x2
CMOVGE EAX,ESI
SUB EAX,0x2
PUSH RAX
PUSH 0x1
MOV R9D,0x18
MOV R8,R14
MOV ECX,dword ptr [RSP + 0x18]
MOV EDX,dword ptr [RSP + 0x4c]
MOV ESI,dword ptr [RSP + 0x38]
MOV EDI,R13D
CALL 0x001010a0
MOV EBX,EAX
ADD RSP,0x10
CMP byte ptr [RSP + 0x18],0x0
JNZ 0x00102795
TEST EAX,EAX
JZ 0x001023be
CMP EAX,0x16
JNZ 0x00102795
CMP R12,qword ptr [RSP + 0x48]
JA 0x00102393
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x001023cd
MOV EDI,R13D
CALL 0x00101080
MOV dword ptr [RSP + 0x58],EAX
TEST EAX,EAX
JS 0x0010258d
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x001027c6
CMP byte ptr [RSP + 0x39],0x1
JNZ 0x001025c4
TEST EBX,EBX
JNS 0x00101539
MOV EBX,0x63
JMP 0x00101539
MOV EAX,dword ptr [RSP + 0x20]
ADD EAX,0x1
CMP R14D,EAX
JNZ 0x00101b94
TEST EAX,EAX
JLE 0x00101b94
CMP qword ptr [RSP + 0x18],0x0
JZ 0x00101e88
JMP 0x00101840
ADD R14D,0x1
MOV RAX,qword ptr [RSP + 0x28]
CMP byte ptr [RAX],0x2d
JZ 0x00101a7e
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,qword ptr [RSP + 0x28]
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RBX,[RAX + -0x1]
LEA RSI,[0x103a40]
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x001010f0
CMP EAX,EBX
JNZ 0x00101a91
MOV RBP,qword ptr [RSP + 0x28]
MOV R12D,0x0
MOV R13D,0xffffffff
JMP 0x00101af8
CALL 0x001010b0
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nuint FUN_00101300(int param_1,long param_2)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  char *pcVar13;\n  long lVar14;\n  char *pcVar15;\n  size_t sVar16;\n  long lVar17;\n  FILE *pFVar18;\n  uint *puVar19;\n  uint uVar20;\n  ulong *puVar21;\n  int iVar22;\n  ulong uVar23;\n  ulong uVar24;\n  long in_FS_OFFSET;\n  byte bVar25;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  uint local_e9c;\n  long local_e98;\n  ulong local_e90;\n  uint local_e80 [2];\n  undefined1 local_e78 [8];\n  undefined1 local_e70 [9];\n  undefined1 local_e67 [17];\n  undefined1 local_e56 [14];\n  uint local_e48 [128];\n  ulong local_c48 [128];\n  undefined4 local_848;\n  uint uStack_844;\n  ulong local_840;\n  uint local_838 [510];\n  long local_40;\n  undefined1 local_38 [8];\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar24 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar22 = 0x3c;\n  local_e9c = 0;\n  bVar1 = false;\n  bVar3 = false;\n  bVar5 = false;\n  bVar4 = false;\n  local_e9d = 0;\n  while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }\n  if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }\n  if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  uVar8 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  uVar8 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  FUN_001012d5();\n  uVar8 = 1;\nLAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "uint FUN_00101300(int param_1,long param_2)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  char *pcVar13;\n  long lVar14;\n  char *pcVar15;\n  size_t sVar16;\n  long lVar17;\n  FILE *pFVar18;\n  uint *puVar19;\n  uint uVar20;\n  ulong *puVar21;\n  int iVar22;\n  ulong uVar23;\n  ulong uVar24;\n  long in_FS_OFFSET;\n  byte bVar25;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  uint local_e9c;\n  long local_e98;\n  ulong local_e90;\n  uint local_e80 [2];\n  undefined1 local_e78 [8];\n  undefined1 local_e70 [9];\n  undefined1 local_e67 [17];\n  undefined1 local_e56 [14];\n  uint local_e48 [128];\n  ulong local_c48 [128];\n  undefined4 local_848;\n  uint uStack_844;\n  ulong local_840;\n  uint local_838 [510];\n  long local_40;\n  undefined1 local_38 [8];\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar24 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar22 = 0x3c;\n  local_e9c = 0;\n  bVar1 = false;\n  bVar3 = false;\n  bVar5 = false;\n  bVar4 = false;\n  local_e9d = 0;\n  while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }\n  if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }\n  if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  uVar8 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  uVar8 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  FUN_001012d5();\n  uVar8 = 1;\nLAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (function_declarator "FUN_00101300(int param_1,long param_2)" identifier (parameter_list "(int param_1,long param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  char *pcVar13;\n  long lVar14;\n  char *pcVar15;\n  size_t sVar16;\n  long lVar17;\n  FILE *pFVar18;\n  uint *puVar19;\n  uint uVar20;\n  ulong *puVar21;\n  int iVar22;\n  ulong uVar23;\n  ulong uVar24;\n  long in_FS_OFFSET;\n  byte bVar25;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  uint local_e9c;\n  long local_e98;\n  ulong local_e90;\n  uint local_e80 [2];\n  undefined1 local_e78 [8];\n  undefined1 local_e70 [9];\n  undefined1 local_e67 [17];\n  undefined1 local_e56 [14];\n  uint local_e48 [128];\n  ulong local_c48 [128];\n  undefined4 local_848;\n  uint uStack_844;\n  ulong local_840;\n  uint local_838 [510];\n  long local_40;\n  undefined1 local_38 [8];\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar24 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar22 = 0x3c;\n  local_e9c = 0;\n  bVar1 = false;\n  bVar3 = false;\n  bVar5 = false;\n  bVar4 = false;\n  local_e9d = 0;\n  while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }\n  if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }\n  if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  uVar8 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  uVar8 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  FUN_001012d5();\n  uVar8 = 1;\nLAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "size_t sVar16;" primitive_type identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "FILE *pFVar18;" type_identifier (pointer_declarator "*pFVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "ulong *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "ulong uVar24;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "int local_ed0;" primitive_type identifier ;) (declaration "int local_ec8;" primitive_type identifier ;) (declaration "int local_ec4;" primitive_type identifier ;) (declaration "char *local_ec0;" primitive_type (pointer_declarator "*local_ec0" * identifier) ;) (declaration "FILE *local_eb8;" type_identifier (pointer_declarator "*local_eb8" * identifier) ;) (declaration "char *local_eb0;" primitive_type (pointer_declarator "*local_eb0" * identifier) ;) (declaration "uint local_ea4;" type_identifier identifier ;) (declaration "undefined1 local_e9d;" type_identifier identifier ;) (declaration "uint local_e9c;" type_identifier identifier ;) (declaration "long local_e98;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong local_e90;" type_identifier identifier ;) (declaration "uint local_e80 [2];" type_identifier (array_declarator "local_e80 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e78 [8];" type_identifier (array_declarator "local_e78 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e70 [9];" type_identifier (array_declarator "local_e70 [9]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e67 [17];" type_identifier (array_declarator "local_e67 [17]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e56 [14];" type_identifier (array_declarator "local_e56 [14]" identifier [ number_literal ]) ;) (declaration "uint local_e48 [128];" type_identifier (array_declarator "local_e48 [128]" identifier [ number_literal ]) ;) (declaration "ulong local_c48 [128];" type_identifier (array_declarator "local_c48 [128]" identifier [ number_literal ]) ;) (declaration "undefined4 local_848;" type_identifier identifier ;) (declaration "uint uStack_844;" type_identifier identifier ;) (declaration "ulong local_840;" type_identifier identifier ;) (declaration "uint local_838 [510];" type_identifier (array_declarator "local_838 [510]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_38 [8];" type_identifier (array_declarator "local_38 [8]" identifier [ number_literal ]) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_ec0 = (char *)0x0;" (assignment_expression "local_ec0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_eb0 = (char *)0x0;" (assignment_expression "local_eb0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_eb8 = (FILE *)0x0;" (assignment_expression "local_eb8 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e90 = 0;" (assignment_expression "local_e90 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "local_ea4 = 0;" (assignment_expression "local_ea4 = 0" identifier = number_literal) ;) (expression_statement "local_ec4 = 0;" (assignment_expression "local_ec4 = 0" identifier = number_literal) ;) (expression_statement "iVar22 = 0x3c;" (assignment_expression "iVar22 = 0x3c" identifier = number_literal) ;) (expression_statement "local_e9c = 0;" (assignment_expression "local_e9c = 0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "local_e9d = 0;" (assignment_expression "local_e9d = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }" { (expression_statement "local_e80[1] = 0;" (assignment_expression "local_e80[1] = 0" (subscript_expression "local_e80[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);" (assignment_expression "iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1)" identifier = (call_expression "getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1)" identifier (argument_list "(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1)" ( identifier , identifier , (string_literal ""aA:dfg:hI:Hl:n:t:vV"" " string_content ") , (pointer_expression "&PTR_DAT_00106020" & identifier) , (binary_expression "local_e80 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar15 = optarg;" (assignment_expression "pcVar15 = optarg" identifier = identifier) ;) (if_statement "if (iVar7 == -1) break;" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (switch_statement "switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }" switch (parenthesized_expression "(iVar7)" ( identifier )) (compound_statement "{\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }" { (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;" case number_literal : (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;)) (case_statement "default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;" default : (expression_statement "pr2serr("unrecognised option code 0x%x ??\n",iVar7);" (call_expression "pr2serr("unrecognised option code 0x%x ??\n",iVar7)" identifier (argument_list "("unrecognised option code 0x%x ??\n",iVar7)" ( (string_literal ""unrecognised option code 0x%x ??\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;)) (case_statement "case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;" case number_literal : (expression_statement "pcVar13 = strchr(optarg,0x2c);" (assignment_expression "pcVar13 = strchr(optarg,0x2c)" identifier = (call_expression "strchr(optarg,0x2c)" identifier (argument_list "(optarg,0x2c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");" (call_expression "pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n")" identifier (argument_list "("--all=ST,RN[,LA] expects at least one comma in argument, found none\n")" ( (string_literal ""--all=ST,RN[,LA] expects at least one comma in argument, found none\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "uVar24 = sg_get_llnum(pcVar15);" (assignment_expression "uVar24 = sg_get_llnum(pcVar15)" identifier = (call_expression "sg_get_llnum(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (if_statement "if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "((long)uVar24 < 0)" ( (binary_expression "(long)uVar24 < 0" (cast_expression "(long)uVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("unable to decode --all=ST,.... (starting LBA)\n");" (call_expression "pr2serr("unable to decode --all=ST,.... (starting LBA)\n")" identifier (argument_list "("unable to decode --all=ST,.... (starting LBA)\n")" ( (string_literal ""unable to decode --all=ST,.... (starting LBA)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "uVar23 = sg_get_llnum(pcVar13 + 1);" (assignment_expression "uVar23 = sg_get_llnum(pcVar13 + 1)" identifier = (call_expression "sg_get_llnum(pcVar13 + 1)" identifier (argument_list "(pcVar13 + 1)" ( (binary_expression "pcVar13 + 1" identifier + number_literal) )))) ;) (if_statement "if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(0xffffffff < uVar23)" ( (binary_expression "0xffffffff < uVar23" number_literal < identifier) )) (compound_statement "{\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");" (call_expression "pr2serr("unable to decode --all=ST,RN.... (repeat number)\n")" identifier (argument_list "("unable to decode --all=ST,RN.... (repeat number)\n")" ( (string_literal ""unable to decode --all=ST,RN.... (repeat number)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "local_ea4 = (uint)uVar23;" (assignment_expression "local_ea4 = (uint)uVar23" identifier = (cast_expression "(uint)uVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }" { (expression_statement "pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");" (call_expression "pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n")" identifier (argument_list "("warning: --all=ST,RN... being ignored because RN is 0\n")" ( (string_literal ""warning: --all=ST,RN... being ignored because RN is 0\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "pcVar15 = strchr(pcVar13 + 1,0x2c);" (assignment_expression "pcVar15 = strchr(pcVar13 + 1,0x2c)" identifier = (call_expression "strchr(pcVar13 + 1,0x2c)" identifier (argument_list "(pcVar13 + 1,0x2c)" ( (binary_expression "pcVar13 + 1" identifier + number_literal) , number_literal )))) ;) (if_statement "if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))" ( (binary_expression "(pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0)" (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0)" ( (comma_expression "local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0" (assignment_expression "local_e90 = sg_get_llnum(pcVar15 + 1)" identifier = (call_expression "sg_get_llnum(pcVar15 + 1)" identifier (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) , (binary_expression "(long)local_e90 < 0" (cast_expression "(long)local_e90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal)) ))) )) (compound_statement "{\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");" (call_expression "pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n")" identifier (argument_list "("unable to decode --all=ST,NR,LA (last LBA)\n")" ( (string_literal ""unable to decode --all=ST,NR,LA (last LBA)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x49:\n      local_ec0 = optarg;\n      break;" case number_literal : (expression_statement "local_ec0 = optarg;" (assignment_expression "local_ec0 = optarg" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x56:\n      bVar1 = true;\n      break;" case number_literal : (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x61:\n      local_e9d = 1;\n      break;" case number_literal : (expression_statement "local_e9d = 1;" (assignment_expression "local_e9d = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 100:\n      bVar5 = true;\n      break;" case number_literal : (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x66:\n      bVar4 = true;\n      break;" case number_literal : (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;" case number_literal : (expression_statement "iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);" (assignment_expression "iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80)" identifier = (call_expression "__isoc99_sscanf(optarg,&DAT_00103ffa,local_e80)" identifier (argument_list "(optarg,&DAT_00103ffa,local_e80)" ( identifier , (pointer_expression "&DAT_00103ffa" & identifier) , identifier )))) ;) (if_statement "if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;" if (parenthesized_expression "((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0]))" ( (binary_expression "(iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])" (parenthesized_expression "(iVar7 != 1)" ( (binary_expression "iVar7 != 1" identifier != number_literal) )) || (parenthesized_expression "(local_e9c = local_e80[0], 0x3f < local_e80[0])" ( (comma_expression "local_e9c = local_e80[0], 0x3f < local_e80[0]" (assignment_expression "local_e9c = local_e80[0]" identifier = (subscript_expression "local_e80[0]" identifier [ number_literal ])) , (binary_expression "0x3f < local_e80[0]" number_literal < (subscript_expression "local_e80[0]" identifier [ number_literal ]))) ))) )) (goto_statement "goto LAB_00101512;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;" case number_literal : (expression_statement "local_eb8 = (FILE *)optarg;" (assignment_expression "local_eb8 = (FILE *)optarg" identifier = (cast_expression "(FILE *)optarg" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x6e:\n      local_eb0 = optarg;\n      break;" case number_literal : (expression_statement "local_eb0 = optarg;" (assignment_expression "local_eb0 = optarg" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;" case number_literal : (expression_statement "iVar22 = sg_get_num(optarg);" (assignment_expression "iVar22 = sg_get_num(optarg)" identifier = (call_expression "sg_get_num(optarg)" identifier (argument_list "(optarg)" ( identifier )))) ;) (if_statement "if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(iVar22 < 0)" ( (binary_expression "iVar22 < 0" identifier < number_literal) )) (compound_statement "{\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("bad argument to \'--timeout\'\n");" (call_expression "pr2serr("bad argument to \'--timeout\'\n")" identifier (argument_list "("bad argument to \'--timeout\'\n")" ( (string_literal ""bad argument to \'--timeout\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (if_statement "if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar22 = 0x3c;\n      }" { (expression_statement "iVar22 = 0x3c;" (assignment_expression "iVar22 = 0x3c" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;" case number_literal : (expression_statement "local_ec4 = local_ec4 + 1;" (assignment_expression "local_ec4 = local_ec4 + 1" identifier = (binary_expression "local_ec4 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;)) })) })) (if_statement "if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }" if (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) (compound_statement "{\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }" { (expression_statement "local_e98 = *(long *)(param_2 + (long)optind * 8);" (assignment_expression "local_e98 = *(long *)(param_2 + (long)optind * 8)" identifier = (pointer_expression "*(long *)(param_2 + (long)optind * 8)" * (cast_expression "(long *)(param_2 + (long)optind * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + (long)optind * 8)" ( (binary_expression "param_2 + (long)optind * 8" identifier + (binary_expression "(long)optind * 8" (cast_expression "(long)optind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ))))) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) (if_statement "if (optind < param_1) goto LAB_0010172e;" if (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) (goto_statement "goto LAB_0010172e;" goto statement_identifier ;)) }) (else_clause "else {\n    local_e98 = 0;\n  }" else (compound_statement "{\n    local_e98 = 0;\n  }" { (expression_statement "local_e98 = 0;" (assignment_expression "local_e98 = 0" identifier = number_literal) ;) }))) (if_statement "if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" if (parenthesized_expression "((bVar3) && (bVar1))" ( (binary_expression "(bVar3) && (bVar1)" (parenthesized_expression "(bVar3)" ( identifier )) && (parenthesized_expression "(bVar1)" ( identifier ))) )) (compound_statement "{\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }" { (expression_statement "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (call_expression "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" identifier (argument_list "("Not in DEBUG mode, so \'-vV\' has no special action\n")" ( (string_literal ""Not in DEBUG mode, so \'-vV\' has no special action\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) }) (else_clause "else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" else (if_statement "if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" { (if_statement "if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(local_e98 == 0)" ( (binary_expression "local_e98 == 0" identifier == number_literal) )) (compound_statement "{\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("missing device name!\n\n");" (call_expression "pr2serr("missing device name!\n\n")" identifier (argument_list "("missing device name!\n\n")" ( (string_literal ""missing device name!\n\n"" " string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (if_statement "if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }" if (parenthesized_expression "(local_ea4 != 0)" ( (binary_expression "local_ea4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }" { (if_statement "if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0))" ( (binary_expression "local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" (binary_expression "local_ec0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0" (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_eb0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");" (call_expression "pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n")" identifier (argument_list "("Can\'t have --all= together with --lba=, --num= or --in=\n\n")" ( (string_literal ""Can\'t have --all= together with --lba=, --num= or --in=\n\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "bVar1 = local_e90 < uVar24 && local_e90 != 0;" (assignment_expression "bVar1 = local_e90 < uVar24 && local_e90 != 0" identifier = (binary_expression "local_e90 < uVar24 && local_e90 != 0" (binary_expression "local_e90 < uVar24" identifier < identifier) && (binary_expression "local_e90 != 0" identifier != number_literal))) ;) (if_statement "if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");" (call_expression "pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n")" identifier (argument_list "("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n")" ( (string_literal ""in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);" (assignment_expression "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4)" identifier = (call_expression "sg_cmds_open_device(local_e98,0,local_ec4)" identifier (argument_list "(local_e98,0,local_ec4)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 < 0) goto LAB_001016ce;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto LAB_001016ce;" goto statement_identifier ;)) (expression_statement "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);" (assignment_expression "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" identifier = (call_expression "sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" identifier (argument_list "(iVar7,local_e78,1,local_ec4)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "bVar3 = bVar1;" (assignment_expression "bVar3 = bVar1" identifier = identifier) ;) (if_statement "if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" if (parenthesized_expression "(local_e90 == 0)" ( (binary_expression "local_e90 == 0" identifier == number_literal) )) (compound_statement "{\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }" { (expression_statement "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);" (assignment_expression "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" identifier (argument_list "(iVar7,0,0,&local_848,0x20,1,local_ec4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_848" & identifier) , number_literal , number_literal , identifier )))) ;) (if_statement "if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }" if (parenthesized_expression "(local_e80[0] == 6)" ( (binary_expression "local_e80[0] == 6" (subscript_expression "local_e80[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }" { (expression_statement "pr2serr("Read capacity(16) unit attention, try again\n");" (call_expression "pr2serr("Read capacity(16) unit attention, try again\n")" identifier (argument_list "("Read capacity(16) unit attention, try again\n")" ( (string_literal ""Read capacity(16) unit attention, try again\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);" (assignment_expression "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" identifier (argument_list "(iVar7,0,0,&local_848,0x20,1,local_ec4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_848" & identifier) , number_literal , number_literal , identifier )))) ;) })) (if_statement "if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }" if (parenthesized_expression "(local_e80[0] == 0)" ( (binary_expression "local_e80[0] == 0" (subscript_expression "local_e80[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }" { (if_statement "if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }" if (parenthesized_expression "(3 < local_ec4)" ( (binary_expression "3 < local_ec4" number_literal < identifier) )) (compound_statement "{\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }" { (expression_statement "pr2serr("Read capacity(16) response:\n");" (call_expression "pr2serr("Read capacity(16) response:\n")" identifier (argument_list "("Read capacity(16) response:\n")" ( (string_literal ""Read capacity(16) response:\n"" " string_content escape_sequence ") ))) ;) (expression_statement "hex2stderr(&local_848,0x20,1);" (call_expression "hex2stderr(&local_848,0x20,1)" identifier (argument_list "(&local_848,0x20,1)" ( (pointer_expression "&local_848" & identifier) , number_literal , number_literal ))) ;) })) (expression_statement "uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);" (assignment_expression "uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848)" identifier = (call_expression "CONCAT22(local_848._2_2_,(ushort)local_848)" identifier (argument_list "(local_848._2_2_,(ushort)local_848)" ( (field_expression "local_848._2_2_" identifier . field_identifier) , (cast_expression "(ushort)local_848" ( (type_descriptor "ushort" type_identifier) ) identifier) )))) ;) (expression_statement "local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;" (assignment_expression "local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38" identifier = (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28" (call_expression "(ulong)(uStack_844 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uStack_844 >> 0x18)" ( (binary_expression "uStack_844 >> 0x18" identifier >> number_literal) ))) | (binary_expression "(((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28" (parenthesized_expression "(((ulong)uStack_844 & 0xff0000) << 0x20)" ( (binary_expression "((ulong)uStack_844 & 0xff0000) << 0x20" (parenthesized_expression "((ulong)uStack_844 & 0xff0000)" ( (binary_expression "(ulong)uStack_844 & 0xff0000" (cast_expression "(ulong)uStack_844" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "(((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18" (parenthesized_expression "(((ulong)uStack_844 & 0xff00) << 0x20)" ( (binary_expression "((ulong)uStack_844 & 0xff00) << 0x20" (parenthesized_expression "((ulong)uStack_844 & 0xff00)" ( (binary_expression "(ulong)uStack_844 & 0xff00" (cast_expression "(ulong)uStack_844" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "(((ulong)uStack_844 & 0xff) << 0x20) >> 8" (parenthesized_expression "(((ulong)uStack_844 & 0xff) << 0x20)" ( (binary_expression "((ulong)uStack_844 & 0xff) << 0x20" (parenthesized_expression "((ulong)uStack_844 & 0xff)" ( (binary_expression "(ulong)uStack_844 & 0xff" (cast_expression "(ulong)uStack_844" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "((ulong)uVar20 & 0xff000000) << 8" (parenthesized_expression "((ulong)uVar20 & 0xff000000)" ( (binary_expression "(ulong)uVar20 & 0xff000000" (cast_expression "(ulong)uVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)uVar20 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)uVar20 & 0xff0000)" ( (binary_expression "(ulong)uVar20 & 0xff0000" (cast_expression "(ulong)uVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)uVar20 & 0xff00) << 0x28" (parenthesized_expression "((ulong)uVar20 & 0xff00)" ( (binary_expression "(ulong)uVar20 & 0xff00" (cast_expression "(ulong)uVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "CONCAT44(uStack_844,uVar20) << 0x38" (call_expression "CONCAT44(uStack_844,uVar20)" identifier (argument_list "(uStack_844,uVar20)" ( identifier , identifier ))) << number_literal))) ;) }) (else_clause "else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }" else (compound_statement "{\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }" { (if_statement "if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }" if (parenthesized_expression "((local_e80[0] - 5 & 0xfffffffb) != 0)" ( (binary_expression "(local_e80[0] - 5 & 0xfffffffb) != 0" (parenthesized_expression "(local_e80[0] - 5 & 0xfffffffb)" ( (binary_expression "local_e80[0] - 5 & 0xfffffffb" (binary_expression "local_e80[0] - 5" (subscript_expression "local_e80[0]" identifier [ number_literal ]) - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }" { (if_statement "if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }" if (parenthesized_expression "((int)local_e80[0] < 0)" ( (binary_expression "(int)local_e80[0] < 0" (cast_expression "(int)local_e80[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_e80[0]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }" { (expression_statement "local_e80[0] = sg_convert_errno(-local_e80[0]);" (assignment_expression "local_e80[0] = sg_convert_errno(-local_e80[0])" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_convert_errno(-local_e80[0])" identifier (argument_list "(-local_e80[0])" ( (unary_expression "-local_e80[0]" - (subscript_expression "local_e80[0]" identifier [ number_literal ])) )))) ;) })) (expression_statement "pr2serr("Read capacity(16) failed\n");" (call_expression "pr2serr("Read capacity(16) failed\n")" identifier (argument_list "("Read capacity(16) failed\n")" ( (string_literal ""Read capacity(16) failed\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = local_e80[0];" (assignment_expression "uVar8 = local_e80[0]" identifier = (subscript_expression "local_e80[0]" identifier [ number_literal ])) ;) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) (if_statement "if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }" if (parenthesized_expression "(local_ec4 == 0)" ( (binary_expression "local_ec4 == 0" identifier == number_literal) )) (compound_statement "{\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }" { (expression_statement "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);" (assignment_expression "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0)" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0)" identifier (argument_list "(iVar7,0,0,&local_848,8,1,0)" ( identifier , number_literal , number_literal , (pointer_expression "&local_848" & identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }" if (parenthesized_expression "(local_e80[0] != 0)" ( (binary_expression "local_e80[0] != 0" (subscript_expression "local_e80[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }" { (labeled_statement "LAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }" statement_identifier : (if_statement "if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }" if (parenthesized_expression "((int)local_e80[0] < 0)" ( (binary_expression "(int)local_e80[0] < 0" (cast_expression "(int)local_e80[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_e80[0]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }" { (expression_statement "local_e80[0] = sg_convert_errno(-local_e80[0]);" (assignment_expression "local_e80[0] = sg_convert_errno(-local_e80[0])" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_convert_errno(-local_e80[0])" identifier (argument_list "(-local_e80[0])" ( (unary_expression "-local_e80[0]" - (subscript_expression "local_e80[0]" identifier [ number_literal ])) )))) ;) }))) (expression_statement "pr2serr("Read capacity(10) failed\n");" (call_expression "pr2serr("Read capacity(10) failed\n")" identifier (argument_list "("Read capacity(10) failed\n")" ( (string_literal ""Read capacity(10) failed\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = local_e80[0];" (assignment_expression "uVar8 = local_e80[0]" identifier = (subscript_expression "local_e80[0]" identifier [ number_literal ])) ;) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) }) (else_clause "else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }" else (compound_statement "{\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }" { (expression_statement "pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");" (call_expression "pr2serr("Read capacity(16) not supported, try Read capacity(10)\n")" identifier (argument_list "("Read capacity(16) not supported, try Read capacity(10)\n")" ( (string_literal ""Read capacity(16) not supported, try Read capacity(10)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);" (assignment_expression "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4)" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4)" identifier (argument_list "(iVar7,0,0,&local_848,8,1,local_ec4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_848" & identifier) , number_literal , number_literal , identifier )))) ;) (if_statement "if (local_e80[0] != 0) goto LAB_001022f0;" if (parenthesized_expression "(local_e80[0] != 0)" ( (binary_expression "local_e80[0] != 0" (subscript_expression "local_e80[0]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_001022f0;" goto statement_identifier ;)) (if_statement "if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }" if (parenthesized_expression "(3 < local_ec4)" ( (binary_expression "3 < local_ec4" number_literal < identifier) )) (compound_statement "{\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }" { (expression_statement "pr2serr("Read capacity(10) response:\n");" (call_expression "pr2serr("Read capacity(10) response:\n")" identifier (argument_list "("Read capacity(10) response:\n")" ( (string_literal ""Read capacity(10) response:\n"" " string_content escape_sequence ") ))) ;) (expression_statement "hex2stderr(&local_848,8,1);" (call_expression "hex2stderr(&local_848,8,1)" identifier (argument_list "(&local_848,8,1)" ( (pointer_expression "&local_848" & identifier) , number_literal , number_literal ))) ;) })) }))) (expression_statement "local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);" (assignment_expression "local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18)" identifier = (call_expression "(ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18)" ( (binary_expression "(uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18" (binary_expression "(uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8" (binary_expression "(uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8" (call_expression "(uint)(local_848._2_2_ >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_848._2_2_ >> 8)" ( (binary_expression "local_848._2_2_ >> 8" (field_expression "local_848._2_2_" identifier . field_identifier) >> number_literal) ))) | (binary_expression "((local_848._2_2_ & 0xff) << 0x10) >> 8" (parenthesized_expression "((local_848._2_2_ & 0xff) << 0x10)" ( (binary_expression "(local_848._2_2_ & 0xff) << 0x10" (parenthesized_expression "(local_848._2_2_ & 0xff)" ( (binary_expression "local_848._2_2_ & 0xff" (field_expression "local_848._2_2_" identifier . field_identifier) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "((ushort)local_848 & 0xff00) << 8" (parenthesized_expression "((ushort)local_848 & 0xff00)" ( (binary_expression "(ushort)local_848 & 0xff00" (cast_expression "(ushort)local_848" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18" (call_expression "CONCAT22(local_848._2_2_,(ushort)local_848)" identifier (argument_list "(local_848._2_2_,(ushort)local_848)" ( (field_expression "local_848._2_2_" identifier . field_identifier) , (cast_expression "(ushort)local_848" ( (type_descriptor "ushort" type_identifier) ) identifier) ))) << number_literal)) )))) ;) }))) (if_statement "if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }" if (parenthesized_expression "(local_e90 < uVar24)" ( (binary_expression "local_e90 < uVar24" identifier < identifier) )) (compound_statement "{\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }" { (expression_statement "pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);" (call_expression "pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90)" identifier (argument_list "("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90)" ( (string_literal ""after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) (if_statement "if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }" { (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" identifier (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" ( number_literal , (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "sleep(3);" (call_expression "sleep(3)" identifier (argument_list "(3)" ( number_literal ))) ;) (expression_statement "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);" (call_expression "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90)" identifier (argument_list "(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90)" ( (pointer_expression "&local_848" & identifier) , number_literal , number_literal , number_literal , (string_literal ""LBA 0x%lx to end of %s (0x%lx)"" " string_content ") , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_001020d7;" goto statement_identifier ;) })) }) (else_clause "else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" else (if_statement "if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" { (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" identifier (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" ( number_literal , (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "sleep(3);" (call_expression "sleep(3)" identifier (argument_list "(3)" ( number_literal ))) ;) (expression_statement "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;" (call_expression "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)" identifier (argument_list "(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)" ( (pointer_expression "&local_848" & identifier) , number_literal , number_literal , number_literal , (string_literal ""LBA 0x%lx to 0x%lx on %s"" " string_content ") , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" statement_identifier : (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 15 seconds"" " escape_sequence string_content ") ))) ;)) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848)" identifier (argument_list "(1,"    ALL data from %s will be LOST\n",&local_848)" ( number_literal , (string_literal ""    ALL data from %s will be LOST\n"" " string_content escape_sequence ") , (pointer_expression "&local_848" & identifier) ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP will commence in 10 seconds");" (call_expression "puts("\nAn UNMAP will commence in 10 seconds")" identifier (argument_list "("\nAn UNMAP will commence in 10 seconds")" ( (string_literal ""\nAn UNMAP will commence in 10 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848)" identifier (argument_list "(1,"    ALL data from %s will be LOST\n",&local_848)" ( number_literal , (string_literal ""    ALL data from %s will be LOST\n"" " string_content escape_sequence ") , (pointer_expression "&local_848" & identifier) ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 5 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848)" identifier (argument_list "(1,"    ALL data from %s will be LOST\n",&local_848)" ( number_literal , (string_literal ""    ALL data from %s will be LOST\n"" " string_content escape_sequence ") , (pointer_expression "&local_848" & identifier) ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(7);" (call_expression "sleep(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })))) (expression_statement "local_ec8 = 0;" (assignment_expression "local_ec8 = 0" identifier = number_literal) ;) (if_statement "if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }" { (expression_statement "pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);" (call_expression "pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4)" identifier (argument_list "("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4)" ( (string_literal ""Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" else (compound_statement "{\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" { (for_statement "for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }" for ( ; (binary_expression "uVar24 <= local_e90" identifier <= identifier) ; (assignment_expression "uVar24 = uVar24 + uVar20" identifier = (binary_expression "uVar24 + uVar20" identifier + identifier)) ) (compound_statement "{\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }" { (expression_statement "uVar20 = local_ea4;" (assignment_expression "uVar20 = local_ea4" identifier = identifier) ;) (if_statement "if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }" if (parenthesized_expression "(local_e90 - uVar24 < (ulong)local_ea4)" ( (binary_expression "local_e90 - uVar24 < (ulong)local_ea4" (binary_expression "local_e90 - uVar24" identifier - identifier) < (cast_expression "(ulong)local_ea4" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) (compound_statement "{\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }" { (expression_statement "uVar20 = ((int)local_e90 + 1) - (int)uVar24;" (assignment_expression "uVar20 = ((int)local_e90 + 1) - (int)uVar24" identifier = (binary_expression "((int)local_e90 + 1) - (int)uVar24" (parenthesized_expression "((int)local_e90 + 1)" ( (binary_expression "(int)local_e90 + 1" (cast_expression "(int)local_e90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - (cast_expression "(int)uVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "uVar23 = uVar20 + uVar24;" (assignment_expression "uVar23 = uVar20 + uVar24" identifier = (binary_expression "uVar20 + uVar24" identifier + identifier)) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (while_statement "while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }" { (expression_statement "puVar19 = &uStack_844;" (assignment_expression "puVar19 = &uStack_844" identifier = (pointer_expression "&uStack_844" & identifier)) ;) (for_statement "for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }" for ( (assignment_expression "lVar17 = 5" identifier = number_literal) ; (binary_expression "lVar17 != 0" identifier != number_literal) ; (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }" { (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" * identifier) = number_literal) ;) (expression_statement "puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;" (assignment_expression "puVar19 = puVar19 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "puVar19 + (ulong)bVar25 * -2 + 1" (binary_expression "puVar19 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;" (assignment_expression "local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" identifier = (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28" (binary_expression "uVar24 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar24 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar24 & 0xff000000000000)" ( (binary_expression "uVar24 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar24 & 0xff0000000000)" ( (binary_expression "uVar24 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff00000000) >> 8" (parenthesized_expression "(uVar24 & 0xff00000000)" ( (binary_expression "uVar24 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff000000) << 8" (parenthesized_expression "(uVar24 & 0xff000000)" ( (binary_expression "uVar24 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff0000) << 0x18" (parenthesized_expression "(uVar24 & 0xff0000)" ( (binary_expression "uVar24 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff00) << 0x28" (parenthesized_expression "(uVar24 & 0xff00)" ( (binary_expression "uVar24 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar24 << 0x38" identifier << number_literal))) ;) (expression_statement "local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;" (assignment_expression "local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18" (subscript_expression "local_838[0]" identifier [ number_literal ]) = (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" ( (binary_expression "uVar20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" ( (binary_expression "uVar20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar20 << 0x18" identifier << number_literal))) ;) (expression_statement "local_848._0_2_ = 0x1600;" (assignment_expression "local_848._0_2_ = 0x1600" (field_expression "local_848._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_848._2_2_ = 0x1000;" (assignment_expression "local_848._2_2_ = 0x1000" (field_expression "local_848._2_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (if_statement "if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }" if (parenthesized_expression "(1 < local_ec4)" ( (binary_expression "1 < local_ec4" number_literal < identifier) )) (compound_statement "{\n              iVar9 = local_ec4;\n            }" { (expression_statement "iVar9 = local_ec4;" (assignment_expression "iVar9 = local_ec4" identifier = identifier) ;) })) (expression_statement "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);" (assignment_expression "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2)" identifier = (call_expression "sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2)" identifier (argument_list "(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_848" & identifier) , number_literal , number_literal , (binary_expression "iVar9 + -2" identifier + number_literal) )))) ;) (if_statement "if (bVar3) goto LAB_00102795;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00102795;" goto statement_identifier ;)) (if_statement "if (uVar8 == 0) break;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;" if (parenthesized_expression "((uVar8 != 0x16) || (uVar23 <= local_e90))" ( (binary_expression "(uVar8 != 0x16) || (uVar23 <= local_e90)" (parenthesized_expression "(uVar8 != 0x16)" ( (binary_expression "uVar8 != 0x16" identifier != number_literal) )) || (parenthesized_expression "(uVar23 <= local_e90)" ( (binary_expression "uVar23 <= local_e90" identifier <= identifier) ))) )) (goto_statement "goto LAB_00102795;" goto statement_identifier ;)) (expression_statement "pr2serr("Typical end of disk out-of-range, decrement count and retry\n");" (call_expression "pr2serr("Typical end of disk out-of-range, decrement count and retry\n")" identifier (argument_list "("Typical end of disk out-of-range, decrement count and retry\n")" ( (string_literal ""Typical end of disk out-of-range, decrement count and retry\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" identifier = (binary_expression "uVar23 - 1" identifier - number_literal)) ;) (if_statement "if (uVar20 < 2) goto LAB_00102795;" if (parenthesized_expression "(uVar20 < 2)" ( (binary_expression "uVar20 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00102795;" goto statement_identifier ;)) (expression_statement "uVar20 = uVar20 - 1;" (assignment_expression "uVar20 = uVar20 - 1" identifier = (binary_expression "uVar20 - 1" identifier - number_literal)) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) })) (expression_statement "local_ec8 = local_ec8 + 1;" (assignment_expression "local_ec8 = local_ec8 + 1" identifier = (binary_expression "local_ec8 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00102795:\n        bVar3 = bVar5;" statement_identifier : (expression_statement "bVar3 = bVar5;" (assignment_expression "bVar3 = bVar5" identifier = identifier) ;)) (if_statement "if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }" if (parenthesized_expression "(local_ec4 != 0)" ( (binary_expression "local_ec4 != 0" identifier != number_literal) )) (compound_statement "{\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }" { (expression_statement "pr2serr("Completed %d UNMAP commands\n",local_ec8);" (call_expression "pr2serr("Completed %d UNMAP commands\n",local_ec8)" identifier (argument_list "("Completed %d UNMAP commands\n",local_ec8)" ( (string_literal ""Completed %d UNMAP commands\n"" " string_content escape_sequence ") , identifier ))) ;) })) }))) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) (if_statement "if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(local_ec0 != (char *)0x0)" ( (binary_expression "local_ec0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" { (if_statement "if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0" (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_eb0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");" (call_expression "pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n")" identifier (argument_list "("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n")" ( (string_literal ""expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "puVar21 = local_c48;" (assignment_expression "puVar21 = local_c48" identifier = identifier) ;) (for_statement "for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }" for ( (assignment_expression "lVar17 = 0x80" identifier = number_literal) ; (binary_expression "lVar17 != 0" identifier != number_literal) ; (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }" { (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;" (assignment_expression "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "puVar21 + (ulong)bVar25 * -2 + 1" (binary_expression "puVar21 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "puVar19 = local_e48;" (assignment_expression "puVar19 = local_e48" identifier = identifier) ;) (for_statement "for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }" for ( (assignment_expression "lVar17 = 0x40" identifier = number_literal) ; (binary_expression "lVar17 != 0" identifier != number_literal) ; (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }" { (expression_statement "puVar19[0] = 0;" (assignment_expression "puVar19[0] = 0" (subscript_expression "puVar19[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[1] = 0;" (assignment_expression "puVar19[1] = 0" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;" (assignment_expression "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2" identifier = (binary_expression "puVar19 + ((ulong)bVar25 * -2 + 1) * 2" identifier + (binary_expression "((ulong)bVar25 * -2 + 1) * 2" (parenthesized_expression "((ulong)bVar25 * -2 + 1)" ( (binary_expression "(ulong)bVar25 * -2 + 1" (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) + number_literal) )) * number_literal))) ;) })) (if_statement "if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;" if (parenthesized_expression "((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0))" ( (binary_expression "(local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)" (parenthesized_expression "(local_eb0 != (char *)0x0)" ( (binary_expression "local_eb0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_001018ea;" goto statement_identifier ;)) (labeled_statement "LAB_00101840:\n      lVar17 = -1;" statement_identifier : (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" identifier = number_literal) ;)) (expression_statement "pcVar15 = local_ec0;" (assignment_expression "pcVar15 = local_ec0" identifier = identifier) ;) (do_statement "do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');" do (compound_statement "{\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "cVar6 = *pcVar15;" (assignment_expression "cVar6 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar15 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" if (parenthesized_expression "((lVar17 == -3) && (*local_ec0 == '-'))" ( (binary_expression "(lVar17 == -3) && (*local_ec0 == '-')" (parenthesized_expression "(lVar17 == -3)" ( (binary_expression "lVar17 == -3" identifier == number_literal) )) && (parenthesized_expression "(*local_ec0 == '-')" ( (binary_expression "*local_ec0 == '-'" (pointer_expression "*local_ec0" * identifier) == (char_literal "'-'" ' character ')) ))) )) (compound_statement "{\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }" { (expression_statement "local_eb8 = stdin;" (assignment_expression "local_eb8 = stdin" identifier = identifier) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (labeled_statement "LAB_00101bce:\n        uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (while_statement "while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }" while (parenthesized_expression "(pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0)" ( (comma_expression "pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0" (assignment_expression "pcVar15 = fgets((char *)&local_848,0x400,local_eb8)" identifier = (call_expression "fgets((char *)&local_848,0x400,local_eb8)" identifier (argument_list "((char *)&local_848,0x400,local_eb8)" ( (cast_expression "(char *)&local_848" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_848" & identifier)) , number_literal , identifier )))) , (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }" { (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" identifier = number_literal) ;) (expression_statement "pcVar15 = (char *)&local_848;" (assignment_expression "pcVar15 = (char *)&local_848" identifier = (cast_expression "(char *)&local_848" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_848" & identifier))) ;) (do_statement "do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');" do (compound_statement "{\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "cVar6 = *pcVar15;" (assignment_expression "cVar6 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar15 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar9 = ~(uint)lVar17 - 1;" (assignment_expression "iVar9 = ~(uint)lVar17 - 1" identifier = (binary_expression "~(uint)lVar17 - 1" (unary_expression "~(uint)lVar17" ~ (cast_expression "(uint)lVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (if_statement "if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }" if (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) (compound_statement "{\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }" { (expression_statement "iVar10 = ~(uint)lVar17 - 2;" (assignment_expression "iVar10 = ~(uint)lVar17 - 2" identifier = (binary_expression "~(uint)lVar17 - 2" (unary_expression "~(uint)lVar17" ~ (cast_expression "(uint)lVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (if_statement "if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;" if (parenthesized_expression "((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))" ( (binary_expression "(*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1)" (parenthesized_expression "(*(char *)((long)&local_848 + (long)iVar10) == '\n')" ( (binary_expression "*(char *)((long)&local_848 + (long)iVar10) == '\n'" (pointer_expression "*(char *)((long)&local_848 + (long)iVar10)" * (cast_expression "(char *)((long)&local_848 + (long)iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + (long)iVar10)" ( (binary_expression "(long)&local_848 + (long)iVar10" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + (cast_expression "(long)iVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) == (char_literal "'\n'" ' escape_sequence ')) )) && (parenthesized_expression "(*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1)" ( (comma_expression "*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1" (assignment_expression "*(undefined1 *)((long)&local_848 + (long)iVar10) = 0" (pointer_expression "*(undefined1 *)((long)&local_848 + (long)iVar10)" * (cast_expression "(undefined1 *)((long)&local_848 + (long)iVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + (long)iVar10)" ( (binary_expression "(long)&local_848 + (long)iVar10" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + (cast_expression "(long)iVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) = number_literal) , (comma_expression "iVar9 = iVar10, iVar10 < 1" (assignment_expression "iVar9 = iVar10" identifier = identifier) , (binary_expression "iVar10 < 1" identifier < number_literal))) ))) )) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;)) (expression_statement "sVar16 = strspn((char *)&local_848," \t");" (assignment_expression "sVar16 = strspn((char *)&local_848," \t")" identifier = (call_expression "strspn((char *)&local_848," \t")" identifier (argument_list "((char *)&local_848," \t")" ( (cast_expression "(char *)&local_848" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_848" & identifier)) , (string_literal "" \t"" " string_content escape_sequence ") )))) ;) (expression_statement "iVar10 = (int)sVar16;" (assignment_expression "iVar10 = (int)sVar16" identifier = (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar10 == iVar9) goto LAB_00101d67;" if (parenthesized_expression "(iVar10 == iVar9)" ( (binary_expression "iVar10 == iVar9" identifier == identifier) )) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;)) (expression_statement "pcVar15 = (char *)((long)&local_848 + (long)iVar10);" (assignment_expression "pcVar15 = (char *)((long)&local_848 + (long)iVar10)" identifier = (cast_expression "(char *)((long)&local_848 + (long)iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + (long)iVar10)" ( (binary_expression "(long)&local_848 + (long)iVar10" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + (cast_expression "(long)iVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if (*pcVar15 == '#') goto LAB_00101d67;" if (parenthesized_expression "(*pcVar15 == '#')" ( (binary_expression "*pcVar15 == '#'" (pointer_expression "*pcVar15" * identifier) == (char_literal "'#'" ' character ')) )) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;)) (expression_statement "sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");" (assignment_expression "sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" identifier = (call_expression "strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" identifier (argument_list "(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" ( identifier , (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t"" " string_content escape_sequence ") )))) ;) (expression_statement "iVar11 = (int)sVar16;" (assignment_expression "iVar11 = (int)sVar16" identifier = (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }" if (parenthesized_expression "(iVar9 - iVar10 <= iVar11)" ( (binary_expression "iVar9 - iVar10 <= iVar11" (binary_expression "iVar9 - iVar10" identifier - identifier) <= identifier) )) (compound_statement "{\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }" statement_identifier : (while_statement "while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }" { (expression_statement "uVar24 = sg_get_llnum(pcVar15);" (assignment_expression "uVar24 = sg_get_llnum(pcVar15)" identifier = (call_expression "sg_get_llnum(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (if_statement "if (uVar24 == 0xffffffffffffffff) break;" if (parenthesized_expression "(uVar24 == 0xffffffffffffffff)" ( (binary_expression "uVar24 == 0xffffffffffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = (int)(iVar9 + uVar8) >> 1;" (assignment_expression "iVar10 = (int)(iVar9 + uVar8) >> 1" identifier = (binary_expression "(int)(iVar9 + uVar8) >> 1" (cast_expression "(int)(iVar9 + uVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar9 + uVar8)" ( (binary_expression "iVar9 + uVar8" identifier + identifier) ))) >> number_literal)) ;) (if_statement "if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }" if (parenthesized_expression "(0x7f < iVar10)" ( (binary_expression "0x7f < iVar10" number_literal < identifier) )) (compound_statement "{\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }" { (expression_statement "pr2serr("%s: array length exceeded\n","build_joint_arr");" (call_expression "pr2serr("%s: array length exceeded\n","build_joint_arr")" identifier (argument_list "("%s: array length exceeded\n","build_joint_arr")" ( (string_literal ""%s: array length exceeded\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (if_statement "if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }" if (parenthesized_expression "((iVar9 + uVar8 & 1) == 0)" ( (binary_expression "(iVar9 + uVar8 & 1) == 0" (parenthesized_expression "(iVar9 + uVar8 & 1)" ( (binary_expression "iVar9 + uVar8 & 1" (binary_expression "iVar9 + uVar8" identifier + identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  local_c48[iVar10] = uVar24;\n                }" { (expression_statement "local_c48[iVar10] = uVar24;" (assignment_expression "local_c48[iVar10] = uVar24" (subscript_expression "local_c48[iVar10]" identifier [ identifier ]) = identifier) ;) }) (else_clause "else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }" else (compound_statement "{\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }" { (if_statement "if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }" if (parenthesized_expression "(0xffffffff < (long)uVar24)" ( (binary_expression "0xffffffff < (long)uVar24" number_literal < (cast_expression "(long)uVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }" { (expression_statement "local_ed0 = (int)local_38;" (assignment_expression "local_ed0 = (int)local_38" identifier = (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);" (call_expression "pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811)" identifier (argument_list "("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811)" ( (string_literal ""%s: number exceeds 32 bits in line %d, at pos %d\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , (binary_expression "iVar7 + 1" identifier + number_literal) , (binary_expression "((int)pcVar15 - local_ed0) + 0x811" (parenthesized_expression "((int)pcVar15 - local_ed0)" ( (binary_expression "(int)pcVar15 - local_ed0" (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (expression_statement "local_e48[iVar10] = (uint)uVar24;" (assignment_expression "local_e48[iVar10] = (uint)uVar24" (subscript_expression "local_e48[iVar10]" identifier [ identifier ]) = (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "pcVar15 = strpbrk(pcVar15," ,\t");" (assignment_expression "pcVar15 = strpbrk(pcVar15," ,\t")" identifier = (call_expression "strpbrk(pcVar15," ,\t")" identifier (argument_list "(pcVar15," ,\t")" ( identifier , (string_literal "" ,\t"" " string_content escape_sequence ") )))) ;) (if_statement "if (pcVar15 == (char *)0x0) goto LAB_00101d62;" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00101d62;" goto statement_identifier ;)) (expression_statement "sVar16 = strspn(pcVar15," ,\t");" (assignment_expression "sVar16 = strspn(pcVar15," ,\t")" identifier = (call_expression "strspn(pcVar15," ,\t")" identifier (argument_list "(pcVar15," ,\t")" ( identifier , (string_literal "" ,\t"" " string_content escape_sequence ") )))) ;) (expression_statement "pcVar15 = pcVar15 + sVar16;" (assignment_expression "pcVar15 = pcVar15 + sVar16" identifier = (binary_expression "pcVar15 + sVar16" identifier + identifier)) ;) (if_statement "if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;" if (parenthesized_expression "((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400))" ( (binary_expression "(*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)" (parenthesized_expression "(*pcVar15 == '\0')" ( (binary_expression "*pcVar15 == '\0'" (pointer_expression "*pcVar15" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar9 = iVar9 + 1, iVar9 == 0x400)" ( (comma_expression "iVar9 = iVar9 + 1, iVar9 == 0x400" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) , (binary_expression "iVar9 == 0x400" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00101d62;" goto statement_identifier ;)) }))) (if_statement "if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }" if (parenthesized_expression "(*pcVar15 != '#')" ( (binary_expression "*pcVar15 != '#'" (pointer_expression "*pcVar15" * identifier) != (char_literal "'#'" ' character ')) )) (compound_statement "{\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }" { (expression_statement "local_ed0 = (int)local_38;" (assignment_expression "local_ed0 = (int)local_38" identifier = (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);" (call_expression "pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811)" identifier (argument_list "("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811)" ( (string_literal ""%s: error on line %d, at pos %d\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , (binary_expression "iVar7 + 1" identifier + number_literal) , (binary_expression "((int)pcVar15 - local_ed0) + 0x811" (parenthesized_expression "((int)pcVar15 - local_ed0)" ( (binary_expression "(int)pcVar15 - local_ed0" (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (labeled_statement "LAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;" statement_identifier : (expression_statement "uVar8 = iVar9 + 1 + uVar8;" (assignment_expression "uVar8 = iVar9 + 1 + uVar8" identifier = (binary_expression "iVar9 + 1 + uVar8" (binary_expression "iVar9 + 1" identifier + number_literal) + identifier)) ;)) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;) })) (if_statement "if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }" if (parenthesized_expression "(pcVar15[iVar11] == '#')" ( (binary_expression "pcVar15[iVar11] == '#'" (subscript_expression "pcVar15[iVar11]" identifier [ identifier ]) == (char_literal "'#'" ' character ')) )) (compound_statement "{\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101d1a;" goto statement_identifier ;) })) (expression_statement "pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);" (call_expression "pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11)" identifier (argument_list "("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11)" ( (string_literal ""%s: syntax error at line %d, pos %d\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , (binary_expression "iVar7 + 1" identifier + number_literal) , (binary_expression "iVar10 + 1 + iVar11" (binary_expression "iVar10 + 1" identifier + number_literal) + identifier) ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (labeled_statement "LAB_00101d67:\n          iVar7 = iVar7 + 1;" statement_identifier : (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar7 == 0x200) break;" if (parenthesized_expression "(iVar7 == 0x200)" ( (binary_expression "iVar7 == 0x200" identifier == number_literal) )) (break_statement "break;" break ;)) })) (if_statement "if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }" if (parenthesized_expression "((uVar8 & 1) == 0)" ( (binary_expression "(uVar8 & 1) == 0" (parenthesized_expression "(uVar8 & 1)" ( (binary_expression "uVar8 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }" { (expression_statement "iVar9 = (int)uVar8 >> 1;" (assignment_expression "iVar9 = (int)uVar8 >> 1" identifier = (binary_expression "(int)uVar8 >> 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }" if (parenthesized_expression "((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin))" ( (binary_expression "(local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)" (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_eb8 != stdin)" ( (binary_expression "local_eb8 != stdin" identifier != identifier) ))) )) (compound_statement "{\n            fclose(local_eb8);\n          }" { (expression_statement "fclose(local_eb8);" (call_expression "fclose(local_eb8)" identifier (argument_list "(local_eb8)" ( identifier ))) ;) })) (if_statement "if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }" if (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) (compound_statement "{\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }" { (expression_statement "pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);" (call_expression "pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0)" identifier (argument_list "("no addresses found in \'--in=\' argument, file: %s\n",local_ec0)" ( (string_literal ""no addresses found in \'--in=\' argument, file: %s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (goto_statement "goto LAB_00101e88;" goto statement_identifier ;) })) (expression_statement "pcVar15 = "stdin";" (assignment_expression "pcVar15 = "stdin"" identifier = (string_literal ""stdin"" " string_content ")) ;) (if_statement "if (!bVar1) {\n          pcVar15 = local_ec0;\n        }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n          pcVar15 = local_ec0;\n        }" { (expression_statement "pcVar15 = local_ec0;" (assignment_expression "pcVar15 = local_ec0" identifier = identifier) ;) })) (expression_statement "pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);" (call_expression "pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15)" identifier (argument_list "("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15)" ( (string_literal ""%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n"" " string_content escape_sequence string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , identifier ))) ;) (labeled_statement "LAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }" statement_identifier : (if_statement "if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }" if (parenthesized_expression "((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin))" ( (binary_expression "(local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)" (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_eb8 != stdin)" ( (binary_expression "local_eb8 != stdin" identifier != identifier) ))) )) (compound_statement "{\n          fclose(local_eb8);\n        }" { (expression_statement "fclose(local_eb8);" (call_expression "fclose(local_eb8)" identifier (argument_list "(local_eb8)" ( identifier ))) ;) }))) }) (else_clause "else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" else (compound_statement "{\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" { (expression_statement "local_eb8 = fopen64(local_ec0,"r");" (assignment_expression "local_eb8 = fopen64(local_ec0,"r")" identifier = (call_expression "fopen64(local_ec0,"r")" identifier (argument_list "(local_ec0,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }" if (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bVar1 = false;\n          goto LAB_00101bce;\n        }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (goto_statement "goto LAB_00101bce;" goto statement_identifier ;) })) (expression_statement "pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);" (call_expression "pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0)" identifier (argument_list "("%s: unable to open %s\n","build_joint_arr",local_ec0)" ( (string_literal ""%s: unable to open %s\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , identifier ))) ;) }))) (expression_statement "pr2serr("bad argument to \'--in\'\n");" (call_expression "pr2serr("bad argument to \'--in\'\n")" identifier (argument_list "("bad argument to \'--in\'\n")" ( (string_literal ""bad argument to \'--in\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (if_statement "if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0))" ( (binary_expression "(local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)" (parenthesized_expression "(local_eb8 == (FILE *)0x0)" ( (binary_expression "local_eb8 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_eb0 == (char *)0x0)" ( (binary_expression "local_eb0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" { (if_statement "if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" if (parenthesized_expression "(local_eb8 == (FILE *)0x0)" ( (binary_expression "local_eb8 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }" { (expression_statement "pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");" (call_expression "pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n")" identifier (argument_list "("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n")" ( (string_literal ""expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) }) (else_clause "else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" else (compound_statement "{\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" { (expression_statement "pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");" (call_expression "pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n")" identifier (argument_list "("since \'--lba=\' is given, also need \'--num=\'\n\n")" ( (string_literal ""since \'--lba=\' is given, also need \'--num=\'\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) }))) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "puVar21 = local_c48;" (assignment_expression "puVar21 = local_c48" identifier = identifier) ;) (for_statement "for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }" for ( (assignment_expression "lVar17 = 0x80" identifier = number_literal) ; (binary_expression "lVar17 != 0" identifier != number_literal) ; (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }" { (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;" (assignment_expression "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "puVar21 + (ulong)bVar25 * -2 + 1" (binary_expression "puVar21 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "puVar19 = local_e48;" (assignment_expression "puVar19 = local_e48" identifier = identifier) ;) (for_statement "for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }" for ( (assignment_expression "lVar17 = 0x40" identifier = number_literal) ; (binary_expression "lVar17 != 0" identifier != number_literal) ; (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }" { (expression_statement "puVar19[0] = 0;" (assignment_expression "puVar19[0] = 0" (subscript_expression "puVar19[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[1] = 0;" (assignment_expression "puVar19[1] = 0" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;" (assignment_expression "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2" identifier = (binary_expression "puVar19 + ((ulong)bVar25 * -2 + 1) * 2" identifier + (binary_expression "((ulong)bVar25 * -2 + 1) * 2" (parenthesized_expression "((ulong)bVar25 * -2 + 1)" ( (binary_expression "(ulong)bVar25 * -2 + 1" (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) + number_literal) )) * number_literal))) ;) })) (labeled_statement "LAB_001018ea:\n    lVar17 = -1;" statement_identifier : (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" identifier = number_literal) ;)) (expression_statement "pFVar18 = local_eb8;" (assignment_expression "pFVar18 = local_eb8" identifier = identifier) ;) (do_statement "do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');" do (compound_statement "{\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "cVar6 = *(char *)pFVar18;" (assignment_expression "cVar6 = *(char *)pFVar18" identifier = (pointer_expression "*(char *)pFVar18" * (cast_expression "(char *)pFVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);" (assignment_expression "pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1)" identifier = (cast_expression "(FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pFVar18 + (ulong)bVar25 * -2 + 1)" ( (binary_expression "(long)pFVar18 + (ulong)bVar25 * -2 + 1" (binary_expression "(long)pFVar18 + (ulong)bVar25 * -2" (cast_expression "(long)pFVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(*(char *)local_eb8 == '-')" ( (binary_expression "*(char *)local_eb8 == '-'" (pointer_expression "*(char *)local_eb8" * (cast_expression "(char *)local_eb8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("\'--lba\' cannot be read from stdin\n");" (call_expression "pr2serr("\'--lba\' cannot be read from stdin\n")" identifier (argument_list "("\'--lba\' cannot be read from stdin\n")" ( (string_literal ""\'--lba\' cannot be read from stdin\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (labeled_statement "LAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");" statement_identifier : (expression_statement "pr2serr("bad argument to \'--lba\'\n");" (call_expression "pr2serr("bad argument to \'--lba\'\n")" identifier (argument_list "("bad argument to \'--lba\'\n")" ( (string_literal ""bad argument to \'--lba\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");" (assignment_expression "sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier = (call_expression "strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier (argument_list "((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" ( (cast_expression "(char *)local_eb8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, "" " string_content ") )))) ;) (if_statement "if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }" if (parenthesized_expression "(~(uint)lVar17 - 1 != (int)sVar16)" ( (binary_expression "~(uint)lVar17 - 1 != (int)sVar16" (binary_expression "~(uint)lVar17 - 1" (unary_expression "~(uint)lVar17" ~ (cast_expression "(uint)lVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal) != (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }" { (expression_statement "pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);" (call_expression "pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1)" identifier (argument_list "("build_lba_arr: error at pos %d\n",(int)sVar16 + 1)" ( (string_literal ""build_lba_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "(int)sVar16 + 1" (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (goto_statement "goto LAB_001019b7;" goto statement_identifier ;) })) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (expression_statement "pFVar18 = local_eb8;" (assignment_expression "pFVar18 = local_eb8" identifier = identifier) ;) (do_statement "do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);" do (compound_statement "{\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    }" { (expression_statement "iVar7 = (int)lVar17;" (assignment_expression "iVar7 = (int)lVar17" identifier = (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar24 = sg_get_llnum(pFVar18);" (assignment_expression "uVar24 = sg_get_llnum(pFVar18)" identifier = (call_expression "sg_get_llnum(pFVar18)" identifier (argument_list "(pFVar18)" ( identifier )))) ;) (if_statement "if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }" if (parenthesized_expression "(uVar24 == 0xffffffffffffffff)" ( (binary_expression "uVar24 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }" { (expression_statement "pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);" (call_expression "pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1)" identifier (argument_list "("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1)" ( (string_literal ""build_lba_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "((int)pFVar18 - (int)local_eb8) + 1" (parenthesized_expression "((int)pFVar18 - (int)local_eb8)" ( (binary_expression "(int)pFVar18 - (int)local_eb8" (cast_expression "(int)pFVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_eb8" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) ))) ;) (goto_statement "goto LAB_001019b7;" goto statement_identifier ;) })) (expression_statement "local_c48[lVar17] = uVar24;" (assignment_expression "local_c48[lVar17] = uVar24" (subscript_expression "local_c48[lVar17]" identifier [ identifier ]) = identifier) ;) (expression_statement "pcVar13 = strchr((char *)pFVar18,0x2c);" (assignment_expression "pcVar13 = strchr((char *)pFVar18,0x2c)" identifier = (call_expression "strchr((char *)pFVar18,0x2c)" identifier (argument_list "((char *)pFVar18,0x2c)" ( (cast_expression "(char *)pFVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pcVar15 = strchr((char *)pFVar18,0x20);" (assignment_expression "pcVar15 = strchr((char *)pFVar18,0x20)" identifier = (call_expression "strchr((char *)pFVar18,0x20)" identifier (argument_list "((char *)pFVar18,0x20)" ( (cast_expression "(char *)pFVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }" { (if_statement "if (pcVar15 != (char *)0x0) goto LAB_001019db;" if (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001019db;" goto statement_identifier ;)) (expression_statement "iVar9 = iVar7 + 1;" (assignment_expression "iVar9 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00102805;" goto statement_identifier ;) })) (if_statement "if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }" if (parenthesized_expression "((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15))" ( (binary_expression "(pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)" (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar13 <= pcVar15)" ( (binary_expression "pcVar13 <= pcVar15" identifier <= identifier) ))) )) (compound_statement "{\n        pcVar15 = pcVar13;\n      }" { (expression_statement "pcVar15 = pcVar13;" (assignment_expression "pcVar15 = pcVar13" identifier = identifier) ;) })) (labeled_statement "LAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);" statement_identifier : (expression_statement "pFVar18 = (FILE *)(pcVar15 + 1);" (assignment_expression "pFVar18 = (FILE *)(pcVar15 + 1)" identifier = (cast_expression "(FILE *)(pcVar15 + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;)) (expression_statement "lVar17 = lVar17 + 1;" (assignment_expression "lVar17 = lVar17 + 1" identifier = (binary_expression "lVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar17 != 0x80)" ( (binary_expression "lVar17 != 0x80" identifier != number_literal) )) ;) (expression_statement "iVar9 = iVar7 + 2;" (assignment_expression "iVar9 = iVar7 + 2" identifier = (binary_expression "iVar7 + 2" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }" if (parenthesized_expression "(iVar7 == 0x7f)" ( (binary_expression "iVar7 == 0x7f" identifier == number_literal) )) (compound_statement "{\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }" { (expression_statement "pr2serr("build_lba_arr: array length exceeded\n");" (call_expression "pr2serr("build_lba_arr: array length exceeded\n")" identifier (argument_list "("build_lba_arr: array length exceeded\n")" ( (string_literal ""build_lba_arr: array length exceeded\n"" " string_content escape_sequence ") ))) ;) (goto_statement "goto LAB_001019b7;" goto statement_identifier ;) })) (labeled_statement "LAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" statement_identifier : (if_statement "if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(*local_eb0 == '-')" ( (binary_expression "*local_eb0 == '-'" (pointer_expression "*local_eb0" * identifier) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("\'--len\' cannot be read from stdin\n");" (call_expression "pr2serr("\'--len\' cannot be read from stdin\n")" identifier (argument_list "("\'--len\' cannot be read from stdin\n")" ( (string_literal ""\'--len\' cannot be read from stdin\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (labeled_statement "LAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");" statement_identifier : (expression_statement "pr2serr("bad argument to \'--num\'\n");" (call_expression "pr2serr("bad argument to \'--num\'\n")" identifier (argument_list "("bad argument to \'--num\'\n")" ( (string_literal ""bad argument to \'--num\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) }))) (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" identifier = number_literal) ;) (expression_statement "pcVar15 = local_eb0;" (assignment_expression "pcVar15 = local_eb0" identifier = identifier) ;) (do_statement "do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');" do (compound_statement "{\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "cVar6 = *pcVar15;" (assignment_expression "cVar6 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar15 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");" (assignment_expression "sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier = (call_expression "strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier (argument_list "(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" ( identifier , (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, "" " string_content ") )))) ;) (if_statement "if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }" if (parenthesized_expression "((int)sVar16 != ~(uint)lVar17 - 1)" ( (binary_expression "(int)sVar16 != ~(uint)lVar17 - 1" (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier) != (binary_expression "~(uint)lVar17 - 1" (unary_expression "~(uint)lVar17" ~ (cast_expression "(uint)lVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) )) (compound_statement "{\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }" { (expression_statement "pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);" (call_expression "pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1)" identifier (argument_list "("build_num_arr: error at pos %d\n",(int)sVar16 + 1)" ( (string_literal ""build_num_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "(int)sVar16 + 1" (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (expression_statement "pcVar15 = local_eb0;" (assignment_expression "pcVar15 = local_eb0" identifier = identifier) ;) (do_statement "do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);" do (compound_statement "{\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    }" { (expression_statement "iVar7 = (int)lVar17;" (assignment_expression "iVar7 = (int)lVar17" identifier = (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar14 = sg_get_llnum(pcVar15);" (assignment_expression "lVar14 = sg_get_llnum(pcVar15)" identifier = (call_expression "sg_get_llnum(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (if_statement "if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" if (parenthesized_expression "(lVar14 == -1)" ( (binary_expression "lVar14 == -1" identifier == number_literal) )) (compound_statement "{\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" { (expression_statement "pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);" (call_expression "pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1)" identifier (argument_list "("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1)" ( (string_literal ""build_num_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "((int)pcVar15 - (int)local_eb0) + 1" (parenthesized_expression "((int)pcVar15 - (int)local_eb0)" ( (binary_expression "(int)pcVar15 - (int)local_eb0" (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_eb0" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (if_statement "if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" if (parenthesized_expression "(0xffffffff < lVar14)" ( (binary_expression "0xffffffff < lVar14" number_literal < identifier) )) (compound_statement "{\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" { (expression_statement "pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);" (call_expression "pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1)" identifier (argument_list "("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1)" ( (string_literal ""build_num_arr: number exceeds 32 bits at pos %d\n"" " string_content escape_sequence ") , (binary_expression "((int)pcVar15 - (int)local_eb0) + 1" (parenthesized_expression "((int)pcVar15 - (int)local_eb0)" ( (binary_expression "(int)pcVar15 - (int)local_eb0" (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_eb0" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (expression_statement "local_e48[lVar17] = (uint)lVar14;" (assignment_expression "local_e48[lVar17] = (uint)lVar14" (subscript_expression "local_e48[lVar17]" identifier [ identifier ]) = (cast_expression "(uint)lVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar13 = strchr(pcVar15,0x2c);" (assignment_expression "pcVar13 = strchr(pcVar15,0x2c)" identifier = (call_expression "strchr(pcVar15,0x2c)" identifier (argument_list "(pcVar15,0x2c)" ( identifier , number_literal )))) ;) (expression_statement "pcVar15 = strchr(pcVar15,0x20);" (assignment_expression "pcVar15 = strchr(pcVar15,0x20)" identifier = (call_expression "strchr(pcVar15,0x20)" identifier (argument_list "(pcVar15,0x20)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }" { (if_statement "if (pcVar15 != (char *)0x0) goto LAB_00101ae7;" if (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00101ae7;" goto statement_identifier ;)) (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001027df;" goto statement_identifier ;) })) (if_statement "if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }" if (parenthesized_expression "((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15))" ( (binary_expression "(pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)" (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar13 <= pcVar15)" ( (binary_expression "pcVar13 <= pcVar15" identifier <= identifier) ))) )) (compound_statement "{\n        pcVar15 = pcVar13;\n      }" { (expression_statement "pcVar15 = pcVar13;" (assignment_expression "pcVar15 = pcVar13" identifier = identifier) ;) })) (labeled_statement "LAB_00101ae7:\n      pcVar15 = pcVar15 + 1;" statement_identifier : (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;)) (expression_statement "lVar17 = lVar17 + 1;" (assignment_expression "lVar17 = lVar17 + 1" identifier = (binary_expression "lVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar17 != 0x80)" ( (binary_expression "lVar17 != 0x80" identifier != number_literal) )) ;) (expression_statement "iVar10 = iVar7 + 2;" (assignment_expression "iVar10 = iVar7 + 2" identifier = (binary_expression "iVar7 + 2" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }" if (parenthesized_expression "(iVar7 == 0x7f)" ( (binary_expression "iVar7 == 0x7f" identifier == number_literal) )) (compound_statement "{\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }" { (expression_statement "pr2serr("build_num_arr: array length exceeded\n");" (call_expression "pr2serr("build_num_arr: array length exceeded\n")" identifier (argument_list "("build_num_arr: array length exceeded\n")" ( (string_literal ""build_num_arr: array length exceeded\n"" " string_content escape_sequence ") ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (labeled_statement "LAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" statement_identifier : (if_statement "if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "((iVar9 != iVar10) || (iVar10 < 1))" ( (binary_expression "(iVar9 != iVar10) || (iVar10 < 1)" (parenthesized_expression "(iVar9 != iVar10)" ( (binary_expression "iVar9 != iVar10" identifier != identifier) )) || (parenthesized_expression "(iVar10 < 1)" ( (binary_expression "iVar10 < 1" identifier < number_literal) ))) )) (compound_statement "{\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");" (call_expression "pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n")" identifier (argument_list "("need same number of arguments to \'--lba=\' and \'--num=\' options\n")" ( (string_literal ""need same number of arguments to \'--lba=\' and \'--num=\' options\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) }))) (if_statement "if (local_ec0 != (char *)0x0) goto LAB_00101840;" if (parenthesized_expression "(local_ec0 != (char *)0x0)" ( (binary_expression "local_ec0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00101840;" goto statement_identifier ;)) (labeled_statement "LAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;" statement_identifier : (expression_statement "iVar10 = iVar9 * 0x10 + 8;" (assignment_expression "iVar10 = iVar9 * 0x10 + 8" identifier = (binary_expression "iVar9 * 0x10 + 8" (binary_expression "iVar9 * 0x10" identifier * number_literal) + number_literal)) ;)) (expression_statement "__memset_chk(&local_848,0,(long)iVar10,0x808);" (call_expression "__memset_chk(&local_848,0,(long)iVar10,0x808)" identifier (argument_list "(&local_848,0,(long)iVar10,0x808)" ( (pointer_expression "&local_848" & identifier) , number_literal , (cast_expression "(long)iVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))) ;) (expression_statement "puVar19 = &local_848;" (assignment_expression "puVar19 = &local_848" identifier = (pointer_expression "&local_848" & identifier)) ;) (for_statement "for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }" for ( (assignment_expression "lVar17 = 0" identifier = number_literal) ; (binary_expression "(int)lVar17 < iVar9" (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) ; (assignment_expression "lVar17 = lVar17 + 1" identifier = (binary_expression "lVar17 + 1" identifier + number_literal)) ) (compound_statement "{\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }" { (expression_statement "uVar24 = local_c48[lVar17];" (assignment_expression "uVar24 = local_c48[lVar17]" identifier = (subscript_expression "local_c48[lVar17]" identifier [ identifier ])) ;) (expression_statement "*(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;" (assignment_expression "*(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (pointer_expression "*(ulong *)(puVar19 + 2)" * (cast_expression "(ulong *)(puVar19 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 2)" ( (binary_expression "puVar19 + 2" identifier + number_literal) )))) = (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28" (binary_expression "uVar24 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar24 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar24 & 0xff000000000000)" ( (binary_expression "uVar24 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar24 & 0xff0000000000)" ( (binary_expression "uVar24 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff00000000) >> 8" (parenthesized_expression "(uVar24 & 0xff00000000)" ( (binary_expression "uVar24 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff000000) << 8" (parenthesized_expression "(uVar24 & 0xff000000)" ( (binary_expression "uVar24 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff0000) << 0x18" (parenthesized_expression "(uVar24 & 0xff0000)" ( (binary_expression "uVar24 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff00) << 0x28" (parenthesized_expression "(uVar24 & 0xff00)" ( (binary_expression "uVar24 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar24 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar8 = local_e48[lVar17];" (assignment_expression "uVar8 = local_e48[lVar17]" identifier = (subscript_expression "local_e48[lVar17]" identifier [ identifier ])) ;) (expression_statement "puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (subscript_expression "puVar19[4]" identifier [ number_literal ]) = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar19 = puVar19 + 4;" (assignment_expression "puVar19 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) })) (expression_statement "uVar2 = (ushort)(iVar9 * 0x10);" (assignment_expression "uVar2 = (ushort)(iVar9 * 0x10)" identifier = (call_expression "(ushort)(iVar9 * 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(iVar9 * 0x10)" ( (binary_expression "iVar9 * 0x10" identifier * number_literal) )))) ;) (expression_statement "local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;" (assignment_expression "local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8" (field_expression "local_848._0_2_" identifier . field_identifier) = (binary_expression "(uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8" (binary_expression "(uVar2 + 6) * 0x100" (parenthesized_expression "(uVar2 + 6)" ( (binary_expression "uVar2 + 6" identifier + number_literal) )) * number_literal) | (binary_expression "(ushort)(uVar2 + 6) >> 8" (call_expression "(ushort)(uVar2 + 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar2 + 6)" ( (binary_expression "uVar2 + 6" identifier + number_literal) ))) >> number_literal))) ;) (expression_statement "local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;" (assignment_expression "local_848._2_2_ = uVar2 << 8 | uVar2 >> 8" (field_expression "local_848._2_2_" identifier . field_identifier) = (binary_expression "uVar2 << 8 | uVar2 >> 8" (binary_expression "uVar2 << 8" identifier << number_literal) | (binary_expression "uVar2 >> 8" identifier >> number_literal))) ;) (expression_statement "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);" (assignment_expression "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4)" identifier = (call_expression "sg_cmds_open_device(local_e98,0,local_ec4)" identifier (argument_list "(local_e98,0,local_ec4)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }" { (labeled_statement "LAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);" statement_identifier : (expression_statement "uVar8 = sg_convert_errno(-iVar7);" (assignment_expression "uVar8 = sg_convert_errno(-iVar7)" identifier = (call_expression "sg_convert_errno(-iVar7)" identifier (argument_list "(-iVar7)" ( (unary_expression "-iVar7" - identifier) )))) ;)) (expression_statement "uVar12 = safe_strerror(-iVar7);" (assignment_expression "uVar12 = safe_strerror(-iVar7)" identifier = (call_expression "safe_strerror(-iVar7)" identifier (argument_list "(-iVar7)" ( (unary_expression "-iVar7" - identifier) )))) ;) (expression_statement "pr2serr("open error: %s: %s\n",local_e98,uVar12);" (call_expression "pr2serr("open error: %s: %s\n",local_e98,uVar12)" identifier (argument_list "("open error: %s: %s\n",local_e98,uVar12)" ( (string_literal ""open error: %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) }) (else_clause "else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }" else (compound_statement "{\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }" { (expression_statement "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);" (assignment_expression "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" identifier = (call_expression "sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" identifier (argument_list "(iVar7,local_e78,1,local_ec4)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }" { (expression_statement "pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");" (call_expression "pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n")" identifier (argument_list "("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n")" ( (string_literal ""Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "puVar19 = &local_848;" (assignment_expression "puVar19 = &local_848" identifier = (pointer_expression "&local_848" & identifier)) ;) (for_statement "for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }" for ( (assignment_expression "iVar22 = 0" identifier = number_literal) ; (binary_expression "iVar22 < iVar9" identifier < identifier) ; (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ) (compound_statement "{\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }" { (expression_statement "uVar20 = puVar19[4];" (assignment_expression "uVar20 = puVar19[4]" identifier = (subscript_expression "puVar19[4]" identifier [ number_literal ])) ;) (expression_statement "uVar24 = *(ulong *)(puVar19 + 2);" (assignment_expression "uVar24 = *(ulong *)(puVar19 + 2)" identifier = (pointer_expression "*(ulong *)(puVar19 + 2)" * (cast_expression "(ulong *)(puVar19 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 2)" ( (binary_expression "puVar19 + 2" identifier + number_literal) ))))) ;) (expression_statement "__printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);" (call_expression "__printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18)" identifier (argument_list "(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18)" ( number_literal , (string_literal ""    0x%lx, 0x%u\n"" " string_content escape_sequence ") , (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28" (binary_expression "uVar24 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar24 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar24 & 0xff000000000000)" ( (binary_expression "uVar24 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar24 & 0xff0000000000)" ( (binary_expression "uVar24 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff00000000) >> 8" (parenthesized_expression "(uVar24 & 0xff00000000)" ( (binary_expression "uVar24 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff000000) << 8" (parenthesized_expression "(uVar24 & 0xff000000)" ( (binary_expression "uVar24 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff0000) << 0x18" (parenthesized_expression "(uVar24 & 0xff0000)" ( (binary_expression "uVar24 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff00) << 0x28" (parenthesized_expression "(uVar24 & 0xff00)" ( (binary_expression "uVar24 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar24 << 0x38" identifier << number_literal)) , (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" ( (binary_expression "uVar20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" ( (binary_expression "uVar20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar20 << 0x18" identifier << number_literal)) ))) ;) (expression_statement "puVar19 = puVar19 + 4;" (assignment_expression "puVar19 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) })) }) (else_clause "else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }" else (compound_statement "{\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }" { (if_statement "if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }" { (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" identifier (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" ( number_literal , (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "sleep(3);" (call_expression "sleep(3)" identifier (argument_list "(3)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 15 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" identifier (argument_list "("    Some data will be LOST")" ( (string_literal ""    Some data will be LOST"" " string_content ") ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP will commence in 10 seconds");" (call_expression "puts("\nAn UNMAP will commence in 10 seconds")" identifier (argument_list "("\nAn UNMAP will commence in 10 seconds")" ( (string_literal ""\nAn UNMAP will commence in 10 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" identifier (argument_list "("    Some data will be LOST")" ( (string_literal ""    Some data will be LOST"" " string_content ") ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 5 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" identifier (argument_list "("    Some data will be LOST")" ( (string_literal ""    Some data will be LOST"" " string_content ") ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(7);" (call_expression "sleep(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);" (assignment_expression "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4)" identifier = (call_expression "sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4)" identifier (argument_list "(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_848" & identifier) , identifier , number_literal , identifier )))) ;) (expression_statement "local_e80[0] = uVar8;" (assignment_expression "local_e80[0] = uVar8" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar3 = bVar5;" (assignment_expression "bVar3 = bVar5" identifier = identifier) ;) (switch_statement "switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }" switch (parenthesized_expression "(uVar8)" ( identifier )) (compound_statement "{\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }" { (case_statement "case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;" case number_literal : (expression_statement "pr2serr("UNMAP failed, device not ready\n");" (call_expression "pr2serr("UNMAP failed, device not ready\n")" identifier (argument_list "("UNMAP failed, device not ready\n")" ( (string_literal ""UNMAP failed, device not ready\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;" case number_literal : (expression_statement "pr2serr("bad field in UNMAP cdb\n");" (call_expression "pr2serr("bad field in UNMAP cdb\n")" identifier (argument_list "("bad field in UNMAP cdb\n")" ( (string_literal ""bad field in UNMAP cdb\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;" case number_literal : (expression_statement "pr2serr("UNMAP, unit attention\n");" (call_expression "pr2serr("UNMAP, unit attention\n")" identifier (argument_list "("UNMAP, unit attention\n")" ( (string_literal ""UNMAP, unit attention\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;" case number_literal : (expression_statement "pr2serr("UNMAP not supported\n");" (call_expression "pr2serr("UNMAP not supported\n")" identifier (argument_list "("UNMAP not supported\n")" ( (string_literal ""UNMAP not supported\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;" case number_literal : (expression_statement "pr2serr("UNMAP, aborted command\n");" (call_expression "pr2serr("UNMAP, aborted command\n")" identifier (argument_list "("UNMAP, aborted command\n")" ( (string_literal ""UNMAP, aborted command\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;)) })) }))) (labeled_statement "switchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);" statement_identifier : (expression_statement "local_e80[0] = sg_cmds_close_device(iVar7);" (assignment_expression "local_e80[0] = sg_cmds_close_device(iVar7)" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_cmds_close_device(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;)) (if_statement "if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }" if (parenthesized_expression "((int)local_e80[0] < 0)" ( (binary_expression "(int)local_e80[0] < 0" (cast_expression "(int)local_e80[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_e80[0]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }" { (expression_statement "uVar12 = safe_strerror(-local_e80[0]);" (assignment_expression "uVar12 = safe_strerror(-local_e80[0])" identifier = (call_expression "safe_strerror(-local_e80[0])" identifier (argument_list "(-local_e80[0])" ( (unary_expression "-local_e80[0]" - (subscript_expression "local_e80[0]" identifier [ number_literal ])) )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar12);" (call_expression "pr2serr("close error: %s\n",uVar12)" identifier (argument_list "("close error: %s\n",uVar12)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }" { (expression_statement "uVar8 = sg_convert_errno(-local_e80[0]);" (assignment_expression "uVar8 = sg_convert_errno(-local_e80[0])" identifier = (call_expression "sg_convert_errno(-local_e80[0])" identifier (argument_list "(-local_e80[0])" ( (unary_expression "-local_e80[0]" - (subscript_expression "local_e80[0]" identifier [ number_literal ])) )))) ;) })) })) }))) (if_statement "if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }" if (parenthesized_expression "(((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0'))" ( (binary_expression "((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')" (parenthesized_expression "((local_ec4 == 0) && (!bVar3))" ( (binary_expression "(local_ec4 == 0) && (!bVar3)" (parenthesized_expression "(local_ec4 == 0)" ( (binary_expression "local_ec4 == 0" identifier == number_literal) )) && (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) && (parenthesized_expression "(cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')" ( (comma_expression "cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0'" (assignment_expression "cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8)" identifier = (call_expression "sg_if_can2stderr("sg_unmap failed: ",uVar8)" identifier (argument_list "("sg_unmap failed: ",uVar8)" ( (string_literal ""sg_unmap failed: "" " string_content ") , identifier )))) , (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }" { (expression_statement "pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");" (call_expression "pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n")" identifier (argument_list "("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n")" ( (string_literal ""Some error occurred, try again with \'-v\' or \'-vv\' for more information\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) })) (if_statement "if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar8 = 99;\n    }" { (expression_statement "uVar8 = 99;" (assignment_expression "uVar8 = 99" identifier = number_literal) ;) })) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })))) (expression_statement "pr2serr("version: %s\n","1.17 20180628");" (call_expression "pr2serr("version: %s\n","1.17 20180628")" identifier (argument_list "("version: %s\n","1.17 20180628")" ( (string_literal ""version: %s\n"" " string_content escape_sequence ") , (string_literal ""1.17 20180628"" " string_content ") ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) (labeled_statement "LAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");" statement_identifier : (expression_statement "pr2serr("value for \'--grpnum=\' must be 0 to 63\n");" (call_expression "pr2serr("value for \'--grpnum=\' must be 0 to 63\n")" identifier (argument_list "("value for \'--grpnum=\' must be 0 to 63\n")" ( (string_literal ""value for \'--grpnum=\' must be 0 to 63\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) (labeled_statement "LAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" statement_identifier : (do_statement "do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" do (compound_statement "{\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  }" { (expression_statement "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));" (call_expression "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" identifier (argument_list "("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" ( (string_literal ""Unexpected extra argument: %s\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined8 *)(param_2 + (long)optind * 8)" * (cast_expression "(undefined8 *)(param_2 + (long)optind * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + (long)optind * 8)" ( (binary_expression "param_2 + (long)optind * 8" identifier + (binary_expression "(long)optind * 8" (cast_expression "(long)optind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) )))) ))) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) ;)) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar8;\n  }" { (return_statement "return uVar8;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int main(int argc,char **argv)\n\n{\n  uint8_t uVar1;\n  long lVar2;\n  bool bVar3;\n  ushort uVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  char cVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined8 uVar13;\n  char *pcVar14;\n  long lVar15;\n  uint64_t uVar16;\n  char *pcVar17;\n  size_t sVar18;\n  long lVar19;\n  FILE *pFVar20;\n  uint8_t *puVar21;\n  uint *puVar22;\n  uint uVar23;\n  uint64_t *puVar24;\n  uint32_t *puVar25;\n  int iVar26;\n  ulong uVar27;\n  ulong uVar28;\n  long in_FS_OFFSET;\n  byte bVar29;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  int local_e9c;\n  char *local_e98;\n  ulong local_e90;\n  int res;\n  int option_index;\n  sg_simple_inquiry_resp inq_resp;\n  uint32_t num_arr [128];\n  uint64_t addr_arr [128];\n  uint8_t param_arr [2056];\n  undefined1 local_38 [8];\n  \n  bVar29 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar28 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar26 = 0x3c;\n  local_e9c = 0;\n  bVar3 = false;\n  bVar5 = false;\n  bVar7 = false;\n  bVar6 = false;\n  local_e9d = 0;\n  while( true ) {\n    option_index = 0;\n    iVar9 = getopt_long(argc,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index);\n    pcVar17 = optarg;\n    if (iVar9 == -1) break;\n    switch(iVar9) {\n    case 0x3f:\n    case 0x68:\n      usage();\n      iVar9 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar9);\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar14 = strchr(optarg,0x2c);\n      if (pcVar14 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar28 = sg_get_llnum(pcVar17);\n      if ((long)uVar28 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar27 = sg_get_llnum(pcVar14 + 1);\n      if (0xffffffff < uVar27) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar27;\n      if (uVar27 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar17 = strchr(pcVar14 + 1,0x2c);\n      if ((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar3 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar7 = true;\n      break;\n    case 0x66:\n      bVar6 = true;\n      break;\n    case 0x67:\n      iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res);\n      if ((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar26 = sg_get_num(optarg);\n      if (iVar26 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar26 == 0) {\n        iVar26 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar5 = true;\n    }\n  }\n  if (optind < argc) {\n    local_e98 = argv[optind];\n    optind = optind + 1;\n    if (optind < argc) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = (char *)0x0;\n  }\n  if ((bVar5) && (bVar3)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar3) {\n    if (local_e98 == (char *)0x0) {\n      pr2serr("missing device name!\n\n");\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    bVar5 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar3 = local_e90 < uVar28 && local_e90 != 0;\n      if (bVar3) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar10 < 0) goto LAB_001016ce;\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      bVar5 = bVar3;\n      if (local_e90 == 0) {\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar7) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar24 = addr_arr;\n      for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }\n      puVar25 = num_arr;\n      for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar19 = -1;\n      pcVar17 = local_ec0;\n      do {\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      } while (cVar8 != '\0');\n      if ((lVar19 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      usage();\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar24 = addr_arr;\n    for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n      *puVar24 = 0;\n      puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n    }\n    puVar25 = num_arr;\n    for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n      puVar25[0] = 0;\n      puVar25[1] = 0;\n      puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n    }\nLAB_001018ea:\n    lVar19 = -1;\n    pFVar20 = local_eb8;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *(char *)pFVar20;\n      pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);\n    } while (cVar8 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    sVar18 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar19 - 1 != (int)sVar18) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_001019b7;\n    }\n    lVar19 = 0;\n    pFVar20 = local_eb8;\n    do {\n      iVar9 = (int)lVar19;\n      uVar16 = sg_get_llnum(pFVar20);\n      if (uVar16 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      addr_arr[lVar19] = uVar16;\n      pcVar14 = strchr((char *)pFVar20,0x2c);\n      pcVar17 = strchr((char *)pFVar20,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_001019db:\n      pFVar20 = (FILE *)(pcVar17 + 1);\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar11 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    lVar19 = -1;\n    pcVar17 = local_eb0;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *pcVar17;\n      pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n    } while (cVar8 != '\0');\n    sVar18 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar18 != ~(uint)lVar19 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar19 = 0;\n    pcVar17 = local_eb0;\n    do {\n      iVar9 = (int)lVar19;\n      lVar15 = sg_get_llnum(pcVar17);\n      if (lVar15 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar15) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      num_arr[lVar19] = (uint32_t)lVar15;\n      pcVar14 = strchr(pcVar17,0x2c);\n      pcVar17 = strchr(pcVar17,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_00101ae7:\n      pcVar17 = pcVar17 + 1;\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar10 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar11 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar12 = iVar11 * 0x10 + 8;\n    __memset_chk(param_arr,0,(long)iVar12,0x808);\n    puVar22 = (uint *)param_arr;\n    for (lVar19 = 0; (int)lVar19 < iVar11; lVar19 = lVar19 + 1) {\n      uVar28 = addr_arr[lVar19];\n      *(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n      uVar23 = num_arr[lVar19];\n      puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18;\n      puVar22 = puVar22 + 4;\n    }\n    uVar4 = (ushort)(iVar11 * 0x10);\n    param_arr._0_2_ = (uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8;\n    param_arr._2_2_ = uVar4 << 8 | uVar4 >> 8;\n    iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar10 < 0) {\nLAB_001016ce:\n      iVar9 = sg_convert_errno(-iVar10);\n      uVar13 = safe_strerror(-iVar10);\n      pr2serr("open error: %s: %s\n",local_e98,uVar13);\n    }\n    else {\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);\n      if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar5)) &&\n       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if (iVar9 < 0) {\n      iVar9 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  iVar9 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  iVar9 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  } while (optind < argc);\n  usage();\n  iVar9 = 1;\nLAB_00101539:\n  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar9;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int main(int argc,char **argv)\n\n{\n  uint8_t uVar1;\n  long lVar2;\n  bool bVar3;\n  ushort uVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  char cVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined8 uVar13;\n  char *pcVar14;\n  long lVar15;\n  uint64_t uVar16;\n  char *pcVar17;\n  size_t sVar18;\n  long lVar19;\n  FILE *pFVar20;\n  uint8_t *puVar21;\n  uint *puVar22;\n  uint uVar23;\n  uint64_t *puVar24;\n  uint32_t *puVar25;\n  int iVar26;\n  ulong uVar27;\n  ulong uVar28;\n  long in_FS_OFFSET;\n  byte bVar29;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  int local_e9c;\n  char *local_e98;\n  ulong local_e90;\n  int res;\n  int option_index;\n  sg_simple_inquiry_resp inq_resp;\n  uint32_t num_arr [128];\n  uint64_t addr_arr [128];\n  uint8_t param_arr [2056];\n  undefined1 local_38 [8];\n  \n  bVar29 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar28 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar26 = 0x3c;\n  local_e9c = 0;\n  bVar3 = false;\n  bVar5 = false;\n  bVar7 = false;\n  bVar6 = false;\n  local_e9d = 0;\n  while( true ) {\n    option_index = 0;\n    iVar9 = getopt_long(argc,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index);\n    pcVar17 = optarg;\n    if (iVar9 == -1) break;\n    switch(iVar9) {\n    case 0x3f:\n    case 0x68:\n      usage();\n      iVar9 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar9);\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar14 = strchr(optarg,0x2c);\n      if (pcVar14 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar28 = sg_get_llnum(pcVar17);\n      if ((long)uVar28 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar27 = sg_get_llnum(pcVar14 + 1);\n      if (0xffffffff < uVar27) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar27;\n      if (uVar27 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar17 = strchr(pcVar14 + 1,0x2c);\n      if ((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar3 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar7 = true;\n      break;\n    case 0x66:\n      bVar6 = true;\n      break;\n    case 0x67:\n      iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res);\n      if ((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar26 = sg_get_num(optarg);\n      if (iVar26 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar26 == 0) {\n        iVar26 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar5 = true;\n    }\n  }\n  if (optind < argc) {\n    local_e98 = argv[optind];\n    optind = optind + 1;\n    if (optind < argc) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = (char *)0x0;\n  }\n  if ((bVar5) && (bVar3)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar3) {\n    if (local_e98 == (char *)0x0) {\n      pr2serr("missing device name!\n\n");\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    bVar5 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar3 = local_e90 < uVar28 && local_e90 != 0;\n      if (bVar3) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar10 < 0) goto LAB_001016ce;\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      bVar5 = bVar3;\n      if (local_e90 == 0) {\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar7) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar24 = addr_arr;\n      for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }\n      puVar25 = num_arr;\n      for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar19 = -1;\n      pcVar17 = local_ec0;\n      do {\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      } while (cVar8 != '\0');\n      if ((lVar19 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      usage();\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar24 = addr_arr;\n    for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n      *puVar24 = 0;\n      puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n    }\n    puVar25 = num_arr;\n    for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n      puVar25[0] = 0;\n      puVar25[1] = 0;\n      puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n    }\nLAB_001018ea:\n    lVar19 = -1;\n    pFVar20 = local_eb8;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *(char *)pFVar20;\n      pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);\n    } while (cVar8 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    sVar18 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar19 - 1 != (int)sVar18) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_001019b7;\n    }\n    lVar19 = 0;\n    pFVar20 = local_eb8;\n    do {\n      iVar9 = (int)lVar19;\n      uVar16 = sg_get_llnum(pFVar20);\n      if (uVar16 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      addr_arr[lVar19] = uVar16;\n      pcVar14 = strchr((char *)pFVar20,0x2c);\n      pcVar17 = strchr((char *)pFVar20,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_001019db:\n      pFVar20 = (FILE *)(pcVar17 + 1);\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar11 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    lVar19 = -1;\n    pcVar17 = local_eb0;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *pcVar17;\n      pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n    } while (cVar8 != '\0');\n    sVar18 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar18 != ~(uint)lVar19 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar19 = 0;\n    pcVar17 = local_eb0;\n    do {\n      iVar9 = (int)lVar19;\n      lVar15 = sg_get_llnum(pcVar17);\n      if (lVar15 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar15) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      num_arr[lVar19] = (uint32_t)lVar15;\n      pcVar14 = strchr(pcVar17,0x2c);\n      pcVar17 = strchr(pcVar17,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_00101ae7:\n      pcVar17 = pcVar17 + 1;\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar10 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar11 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar12 = iVar11 * 0x10 + 8;\n    __memset_chk(param_arr,0,(long)iVar12,0x808);\n    puVar22 = (uint *)param_arr;\n    for (lVar19 = 0; (int)lVar19 < iVar11; lVar19 = lVar19 + 1) {\n      uVar28 = addr_arr[lVar19];\n      *(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n      uVar23 = num_arr[lVar19];\n      puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18;\n      puVar22 = puVar22 + 4;\n    }\n    uVar4 = (ushort)(iVar11 * 0x10);\n    param_arr._0_2_ = (uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8;\n    param_arr._2_2_ = uVar4 << 8 | uVar4 >> 8;\n    iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar10 < 0) {\nLAB_001016ce:\n      iVar9 = sg_convert_errno(-iVar10);\n      uVar13 = safe_strerror(-iVar10);\n      pr2serr("open error: %s: %s\n",local_e98,uVar13);\n    }\n    else {\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);\n      if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar5)) &&\n       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if (iVar9 < 0) {\n      iVar9 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  iVar9 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  iVar9 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  } while (optind < argc);\n  usage();\n  iVar9 = 1;\nLAB_00101539:\n  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar9;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "main(int argc,char **argv)" identifier (parameter_list "(int argc,char **argv)" ( (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  uint8_t uVar1;\n  long lVar2;\n  bool bVar3;\n  ushort uVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  char cVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined8 uVar13;\n  char *pcVar14;\n  long lVar15;\n  uint64_t uVar16;\n  char *pcVar17;\n  size_t sVar18;\n  long lVar19;\n  FILE *pFVar20;\n  uint8_t *puVar21;\n  uint *puVar22;\n  uint uVar23;\n  uint64_t *puVar24;\n  uint32_t *puVar25;\n  int iVar26;\n  ulong uVar27;\n  ulong uVar28;\n  long in_FS_OFFSET;\n  byte bVar29;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  int local_e9c;\n  char *local_e98;\n  ulong local_e90;\n  int res;\n  int option_index;\n  sg_simple_inquiry_resp inq_resp;\n  uint32_t num_arr [128];\n  uint64_t addr_arr [128];\n  uint8_t param_arr [2056];\n  undefined1 local_38 [8];\n  \n  bVar29 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar28 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar26 = 0x3c;\n  local_e9c = 0;\n  bVar3 = false;\n  bVar5 = false;\n  bVar7 = false;\n  bVar6 = false;\n  local_e9d = 0;\n  while( true ) {\n    option_index = 0;\n    iVar9 = getopt_long(argc,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index);\n    pcVar17 = optarg;\n    if (iVar9 == -1) break;\n    switch(iVar9) {\n    case 0x3f:\n    case 0x68:\n      usage();\n      iVar9 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar9);\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar14 = strchr(optarg,0x2c);\n      if (pcVar14 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar28 = sg_get_llnum(pcVar17);\n      if ((long)uVar28 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar27 = sg_get_llnum(pcVar14 + 1);\n      if (0xffffffff < uVar27) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar27;\n      if (uVar27 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar17 = strchr(pcVar14 + 1,0x2c);\n      if ((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar3 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar7 = true;\n      break;\n    case 0x66:\n      bVar6 = true;\n      break;\n    case 0x67:\n      iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res);\n      if ((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar26 = sg_get_num(optarg);\n      if (iVar26 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar26 == 0) {\n        iVar26 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar5 = true;\n    }\n  }\n  if (optind < argc) {\n    local_e98 = argv[optind];\n    optind = optind + 1;\n    if (optind < argc) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = (char *)0x0;\n  }\n  if ((bVar5) && (bVar3)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar3) {\n    if (local_e98 == (char *)0x0) {\n      pr2serr("missing device name!\n\n");\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    bVar5 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar3 = local_e90 < uVar28 && local_e90 != 0;\n      if (bVar3) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar10 < 0) goto LAB_001016ce;\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      bVar5 = bVar3;\n      if (local_e90 == 0) {\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar7) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar24 = addr_arr;\n      for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }\n      puVar25 = num_arr;\n      for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar19 = -1;\n      pcVar17 = local_ec0;\n      do {\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      } while (cVar8 != '\0');\n      if ((lVar19 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      usage();\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar24 = addr_arr;\n    for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n      *puVar24 = 0;\n      puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n    }\n    puVar25 = num_arr;\n    for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n      puVar25[0] = 0;\n      puVar25[1] = 0;\n      puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n    }\nLAB_001018ea:\n    lVar19 = -1;\n    pFVar20 = local_eb8;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *(char *)pFVar20;\n      pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);\n    } while (cVar8 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    sVar18 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar19 - 1 != (int)sVar18) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_001019b7;\n    }\n    lVar19 = 0;\n    pFVar20 = local_eb8;\n    do {\n      iVar9 = (int)lVar19;\n      uVar16 = sg_get_llnum(pFVar20);\n      if (uVar16 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      addr_arr[lVar19] = uVar16;\n      pcVar14 = strchr((char *)pFVar20,0x2c);\n      pcVar17 = strchr((char *)pFVar20,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_001019db:\n      pFVar20 = (FILE *)(pcVar17 + 1);\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar11 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    lVar19 = -1;\n    pcVar17 = local_eb0;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *pcVar17;\n      pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n    } while (cVar8 != '\0');\n    sVar18 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar18 != ~(uint)lVar19 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar19 = 0;\n    pcVar17 = local_eb0;\n    do {\n      iVar9 = (int)lVar19;\n      lVar15 = sg_get_llnum(pcVar17);\n      if (lVar15 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar15) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      num_arr[lVar19] = (uint32_t)lVar15;\n      pcVar14 = strchr(pcVar17,0x2c);\n      pcVar17 = strchr(pcVar17,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_00101ae7:\n      pcVar17 = pcVar17 + 1;\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar10 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar11 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar12 = iVar11 * 0x10 + 8;\n    __memset_chk(param_arr,0,(long)iVar12,0x808);\n    puVar22 = (uint *)param_arr;\n    for (lVar19 = 0; (int)lVar19 < iVar11; lVar19 = lVar19 + 1) {\n      uVar28 = addr_arr[lVar19];\n      *(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n      uVar23 = num_arr[lVar19];\n      puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18;\n      puVar22 = puVar22 + 4;\n    }\n    uVar4 = (ushort)(iVar11 * 0x10);\n    param_arr._0_2_ = (uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8;\n    param_arr._2_2_ = uVar4 << 8 | uVar4 >> 8;\n    iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar10 < 0) {\nLAB_001016ce:\n      iVar9 = sg_convert_errno(-iVar10);\n      uVar13 = safe_strerror(-iVar10);\n      pr2serr("open error: %s: %s\n",local_e98,uVar13);\n    }\n    else {\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);\n      if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar5)) &&\n       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if (iVar9 < 0) {\n      iVar9 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  iVar9 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  iVar9 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  } while (optind < argc);\n  usage();\n  iVar9 = 1;\nLAB_00101539:\n  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar9;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "uint8_t uVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "uint64_t uVar16;" primitive_type identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "size_t sVar18;" primitive_type identifier ;) (declaration "long lVar19;" (sized_type_specifier "long" long) identifier ;) (declaration "FILE *pFVar20;" type_identifier (pointer_declarator "*pFVar20" * identifier) ;) (declaration "uint8_t *puVar21;" primitive_type (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint64_t *puVar24;" primitive_type (pointer_declarator "*puVar24" * identifier) ;) (declaration "uint32_t *puVar25;" primitive_type (pointer_declarator "*puVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "ulong uVar28;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar29;" type_identifier identifier ;) (declaration "int local_ed0;" primitive_type identifier ;) (declaration "int local_ec8;" primitive_type identifier ;) (declaration "int local_ec4;" primitive_type identifier ;) (declaration "char *local_ec0;" primitive_type (pointer_declarator "*local_ec0" * identifier) ;) (declaration "FILE *local_eb8;" type_identifier (pointer_declarator "*local_eb8" * identifier) ;) (declaration "char *local_eb0;" primitive_type (pointer_declarator "*local_eb0" * identifier) ;) (declaration "uint local_ea4;" type_identifier identifier ;) (declaration "undefined1 local_e9d;" type_identifier identifier ;) (declaration "int local_e9c;" primitive_type identifier ;) (declaration "char *local_e98;" primitive_type (pointer_declarator "*local_e98" * identifier) ;) (declaration "ulong local_e90;" type_identifier identifier ;) (declaration "int res;" primitive_type identifier ;) (declaration "int option_index;" primitive_type identifier ;) (declaration "sg_simple_inquiry_resp inq_resp;" type_identifier identifier ;) (declaration "uint32_t num_arr [128];" primitive_type (array_declarator "num_arr [128]" identifier [ number_literal ]) ;) (declaration "uint64_t addr_arr [128];" primitive_type (array_declarator "addr_arr [128]" identifier [ number_literal ]) ;) (declaration "uint8_t param_arr [2056];" primitive_type (array_declarator "param_arr [2056]" identifier [ number_literal ]) ;) (declaration "undefined1 local_38 [8];" type_identifier (array_declarator "local_38 [8]" identifier [ number_literal ]) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "lVar2 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar2 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_ec0 = (char *)0x0;" (assignment_expression "local_ec0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_eb0 = (char *)0x0;" (assignment_expression "local_eb0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_eb8 = (FILE *)0x0;" (assignment_expression "local_eb8 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e90 = 0;" (assignment_expression "local_e90 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "local_ea4 = 0;" (assignment_expression "local_ea4 = 0" identifier = number_literal) ;) (expression_statement "local_ec4 = 0;" (assignment_expression "local_ec4 = 0" identifier = number_literal) ;) (expression_statement "iVar26 = 0x3c;" (assignment_expression "iVar26 = 0x3c" identifier = number_literal) ;) (expression_statement "local_e9c = 0;" (assignment_expression "local_e9c = 0" identifier = number_literal) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "local_e9d = 0;" (assignment_expression "local_e9d = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    option_index = 0;\n    iVar9 = getopt_long(argc,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index);\n    pcVar17 = optarg;\n    if (iVar9 == -1) break;\n    switch(iVar9) {\n    case 0x3f:\n    case 0x68:\n      usage();\n      iVar9 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar9);\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar14 = strchr(optarg,0x2c);\n      if (pcVar14 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar28 = sg_get_llnum(pcVar17);\n      if ((long)uVar28 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar27 = sg_get_llnum(pcVar14 + 1);\n      if (0xffffffff < uVar27) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar27;\n      if (uVar27 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar17 = strchr(pcVar14 + 1,0x2c);\n      if ((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar3 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar7 = true;\n      break;\n    case 0x66:\n      bVar6 = true;\n      break;\n    case 0x67:\n      iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res);\n      if ((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar26 = sg_get_num(optarg);\n      if (iVar26 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar26 == 0) {\n        iVar26 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar5 = true;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    option_index = 0;\n    iVar9 = getopt_long(argc,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index);\n    pcVar17 = optarg;\n    if (iVar9 == -1) break;\n    switch(iVar9) {\n    case 0x3f:\n    case 0x68:\n      usage();\n      iVar9 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar9);\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar14 = strchr(optarg,0x2c);\n      if (pcVar14 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar28 = sg_get_llnum(pcVar17);\n      if ((long)uVar28 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar27 = sg_get_llnum(pcVar14 + 1);\n      if (0xffffffff < uVar27) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar27;\n      if (uVar27 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar17 = strchr(pcVar14 + 1,0x2c);\n      if ((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar3 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar7 = true;\n      break;\n    case 0x66:\n      bVar6 = true;\n      break;\n    case 0x67:\n      iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res);\n      if ((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar26 = sg_get_num(optarg);\n      if (iVar26 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar26 == 0) {\n        iVar26 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar5 = true;\n    }\n  }" { (expression_statement "option_index = 0;" (assignment_expression "option_index = 0" identifier = number_literal) ;) (expression_statement "iVar9 = getopt_long(argc,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index);" (assignment_expression "iVar9 = getopt_long(argc,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index)" identifier = (call_expression "getopt_long(argc,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index)" identifier (argument_list "(argc,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index)" ( identifier , identifier , (string_literal ""aA:dfg:hI:Hl:n:t:vV"" " string_content ") , identifier , (pointer_expression "&option_index" & identifier) )))) ;) (expression_statement "pcVar17 = optarg;" (assignment_expression "pcVar17 = optarg" identifier = identifier) ;) (if_statement "if (iVar9 == -1) break;" if (parenthesized_expression "(iVar9 == -1)" ( (binary_expression "iVar9 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (switch_statement "switch(iVar9) {\n    case 0x3f:\n    case 0x68:\n      usage();\n      iVar9 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar9);\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar14 = strchr(optarg,0x2c);\n      if (pcVar14 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar28 = sg_get_llnum(pcVar17);\n      if ((long)uVar28 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar27 = sg_get_llnum(pcVar14 + 1);\n      if (0xffffffff < uVar27) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar27;\n      if (uVar27 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar17 = strchr(pcVar14 + 1,0x2c);\n      if ((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar3 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar7 = true;\n      break;\n    case 0x66:\n      bVar6 = true;\n      break;\n    case 0x67:\n      iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res);\n      if ((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar26 = sg_get_num(optarg);\n      if (iVar26 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar26 == 0) {\n        iVar26 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar5 = true;\n    }" switch (parenthesized_expression "(iVar9)" ( identifier )) (compound_statement "{\n    case 0x3f:\n    case 0x68:\n      usage();\n      iVar9 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar9);\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar14 = strchr(optarg,0x2c);\n      if (pcVar14 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar28 = sg_get_llnum(pcVar17);\n      if ((long)uVar28 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar27 = sg_get_llnum(pcVar14 + 1);\n      if (0xffffffff < uVar27) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar27;\n      if (uVar27 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar17 = strchr(pcVar14 + 1,0x2c);\n      if ((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar3 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar7 = true;\n      break;\n    case 0x66:\n      bVar6 = true;\n      break;\n    case 0x67:\n      iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res);\n      if ((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar26 = sg_get_num(optarg);\n      if (iVar26 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar26 == 0) {\n        iVar26 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar5 = true;\n    }" { (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x68:\n      usage();\n      iVar9 = 0;\n      goto LAB_00101539;" case number_literal : (expression_statement "usage();" (call_expression "usage()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;)) (case_statement "default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar9);\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;" default : (expression_statement "pr2serr("unrecognised option code 0x%x ??\n",iVar9);" (call_expression "pr2serr("unrecognised option code 0x%x ??\n",iVar9)" identifier (argument_list "("unrecognised option code 0x%x ??\n",iVar9)" ( (string_literal ""unrecognised option code 0x%x ??\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "usage();" (call_expression "usage()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;)) (case_statement "case 0x41:\n      pcVar14 = strchr(optarg,0x2c);\n      if (pcVar14 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar28 = sg_get_llnum(pcVar17);\n      if ((long)uVar28 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      uVar27 = sg_get_llnum(pcVar14 + 1);\n      if (0xffffffff < uVar27) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar27;\n      if (uVar27 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar17 = strchr(pcVar14 + 1,0x2c);\n      if ((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      break;" case number_literal : (expression_statement "pcVar14 = strchr(optarg,0x2c);" (assignment_expression "pcVar14 = strchr(optarg,0x2c)" identifier = (call_expression "strchr(optarg,0x2c)" identifier (argument_list "(optarg,0x2c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar14 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");" (call_expression "pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n")" identifier (argument_list "("--all=ST,RN[,LA] expects at least one comma in argument, found none\n")" ( (string_literal ""--all=ST,RN[,LA] expects at least one comma in argument, found none\n"" " string_content escape_sequence ") ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "uVar28 = sg_get_llnum(pcVar17);" (assignment_expression "uVar28 = sg_get_llnum(pcVar17)" identifier = (call_expression "sg_get_llnum(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier )))) ;) (if_statement "if ((long)uVar28 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "((long)uVar28 < 0)" ( (binary_expression "(long)uVar28 < 0" (cast_expression "(long)uVar28" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("unable to decode --all=ST,.... (starting LBA)\n");" (call_expression "pr2serr("unable to decode --all=ST,.... (starting LBA)\n")" identifier (argument_list "("unable to decode --all=ST,.... (starting LBA)\n")" ( (string_literal ""unable to decode --all=ST,.... (starting LBA)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "uVar27 = sg_get_llnum(pcVar14 + 1);" (assignment_expression "uVar27 = sg_get_llnum(pcVar14 + 1)" identifier = (call_expression "sg_get_llnum(pcVar14 + 1)" identifier (argument_list "(pcVar14 + 1)" ( (binary_expression "pcVar14 + 1" identifier + number_literal) )))) ;) (if_statement "if (0xffffffff < uVar27) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(0xffffffff < uVar27)" ( (binary_expression "0xffffffff < uVar27" number_literal < identifier) )) (compound_statement "{\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");" (call_expression "pr2serr("unable to decode --all=ST,RN.... (repeat number)\n")" identifier (argument_list "("unable to decode --all=ST,RN.... (repeat number)\n")" ( (string_literal ""unable to decode --all=ST,RN.... (repeat number)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "local_ea4 = (uint)uVar27;" (assignment_expression "local_ea4 = (uint)uVar27" identifier = (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar27 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }" if (parenthesized_expression "(uVar27 == 0)" ( (binary_expression "uVar27 == 0" identifier == number_literal) )) (compound_statement "{\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }" { (expression_statement "pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");" (call_expression "pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n")" identifier (argument_list "("warning: --all=ST,RN... being ignored because RN is 0\n")" ( (string_literal ""warning: --all=ST,RN... being ignored because RN is 0\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "pcVar17 = strchr(pcVar14 + 1,0x2c);" (assignment_expression "pcVar17 = strchr(pcVar14 + 1,0x2c)" identifier = (call_expression "strchr(pcVar14 + 1,0x2c)" identifier (argument_list "(pcVar14 + 1,0x2c)" ( (binary_expression "pcVar14 + 1" identifier + number_literal) , number_literal )))) ;) (if_statement "if ((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "((pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0))" ( (binary_expression "(pcVar17 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0)" (parenthesized_expression "(pcVar17 != (char *)0x0)" ( (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0)" ( (comma_expression "local_e90 = sg_get_llnum(pcVar17 + 1), (long)local_e90 < 0" (assignment_expression "local_e90 = sg_get_llnum(pcVar17 + 1)" identifier = (call_expression "sg_get_llnum(pcVar17 + 1)" identifier (argument_list "(pcVar17 + 1)" ( (binary_expression "pcVar17 + 1" identifier + number_literal) )))) , (binary_expression "(long)local_e90 < 0" (cast_expression "(long)local_e90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal)) ))) )) (compound_statement "{\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");" (call_expression "pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n")" identifier (argument_list "("unable to decode --all=ST,NR,LA (last LBA)\n")" ( (string_literal ""unable to decode --all=ST,NR,LA (last LBA)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x49:\n      local_ec0 = optarg;\n      break;" case number_literal : (expression_statement "local_ec0 = optarg;" (assignment_expression "local_ec0 = optarg" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x56:\n      bVar3 = true;\n      break;" case number_literal : (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x61:\n      local_e9d = 1;\n      break;" case number_literal : (expression_statement "local_e9d = 1;" (assignment_expression "local_e9d = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 100:\n      bVar7 = true;\n      break;" case number_literal : (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x66:\n      bVar6 = true;\n      break;" case number_literal : (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x67:\n      iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res);\n      if ((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)) goto LAB_00101512;\n      break;" case number_literal : (expression_statement "iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res);" (assignment_expression "iVar9 = __isoc99_sscanf(optarg,&DAT_00103ffa,&res)" identifier = (call_expression "__isoc99_sscanf(optarg,&DAT_00103ffa,&res)" identifier (argument_list "(optarg,&DAT_00103ffa,&res)" ( identifier , (pointer_expression "&DAT_00103ffa" & identifier) , (pointer_expression "&res" & identifier) )))) ;) (if_statement "if ((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)) goto LAB_00101512;" if (parenthesized_expression "((iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res))" ( (binary_expression "(iVar9 != 1) || (local_e9c = res, 0x3f < (uint)res)" (parenthesized_expression "(iVar9 != 1)" ( (binary_expression "iVar9 != 1" identifier != number_literal) )) || (parenthesized_expression "(local_e9c = res, 0x3f < (uint)res)" ( (comma_expression "local_e9c = res, 0x3f < (uint)res" (assignment_expression "local_e9c = res" identifier = identifier) , (binary_expression "0x3f < (uint)res" number_literal < (cast_expression "(uint)res" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) )) (goto_statement "goto LAB_00101512;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;" case number_literal : (expression_statement "local_eb8 = (FILE *)optarg;" (assignment_expression "local_eb8 = (FILE *)optarg" identifier = (cast_expression "(FILE *)optarg" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x6e:\n      local_eb0 = optarg;\n      break;" case number_literal : (expression_statement "local_eb0 = optarg;" (assignment_expression "local_eb0 = optarg" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x74:\n      iVar26 = sg_get_num(optarg);\n      if (iVar26 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar26 == 0) {\n        iVar26 = 0x3c;\n      }\n      break;" case number_literal : (expression_statement "iVar26 = sg_get_num(optarg);" (assignment_expression "iVar26 = sg_get_num(optarg)" identifier = (call_expression "sg_get_num(optarg)" identifier (argument_list "(optarg)" ( identifier )))) ;) (if_statement "if (iVar26 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(iVar26 < 0)" ( (binary_expression "iVar26 < 0" identifier < number_literal) )) (compound_statement "{\n        pr2serr("bad argument to \'--timeout\'\n");\n        iVar9 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("bad argument to \'--timeout\'\n");" (call_expression "pr2serr("bad argument to \'--timeout\'\n")" identifier (argument_list "("bad argument to \'--timeout\'\n")" ( (string_literal ""bad argument to \'--timeout\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (if_statement "if (iVar26 == 0) {\n        iVar26 = 0x3c;\n      }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar26 = 0x3c;\n      }" { (expression_statement "iVar26 = 0x3c;" (assignment_expression "iVar26 = 0x3c" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar5 = true;" case number_literal : (expression_statement "local_ec4 = local_ec4 + 1;" (assignment_expression "local_ec4 = local_ec4 + 1" identifier = (binary_expression "local_ec4 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;)) })) })) (if_statement "if (optind < argc) {\n    local_e98 = argv[optind];\n    optind = optind + 1;\n    if (optind < argc) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = (char *)0x0;\n  }" if (parenthesized_expression "(optind < argc)" ( (binary_expression "optind < argc" identifier < identifier) )) (compound_statement "{\n    local_e98 = argv[optind];\n    optind = optind + 1;\n    if (optind < argc) goto LAB_0010172e;\n  }" { (expression_statement "local_e98 = argv[optind];" (assignment_expression "local_e98 = argv[optind]" identifier = (subscript_expression "argv[optind]" identifier [ identifier ])) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) (if_statement "if (optind < argc) goto LAB_0010172e;" if (parenthesized_expression "(optind < argc)" ( (binary_expression "optind < argc" identifier < identifier) )) (goto_statement "goto LAB_0010172e;" goto statement_identifier ;)) }) (else_clause "else {\n    local_e98 = (char *)0x0;\n  }" else (compound_statement "{\n    local_e98 = (char *)0x0;\n  }" { (expression_statement "local_e98 = (char *)0x0;" (assignment_expression "local_e98 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if ((bVar5) && (bVar3)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar3) {\n    if (local_e98 == (char *)0x0) {\n      pr2serr("missing device name!\n\n");\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    bVar5 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar3 = local_e90 < uVar28 && local_e90 != 0;\n      if (bVar3) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar10 < 0) goto LAB_001016ce;\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      bVar5 = bVar3;\n      if (local_e90 == 0) {\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar7) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar24 = addr_arr;\n      for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }\n      puVar25 = num_arr;\n      for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar19 = -1;\n      pcVar17 = local_ec0;\n      do {\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      } while (cVar8 != '\0');\n      if ((lVar19 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      usage();\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar24 = addr_arr;\n    for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n      *puVar24 = 0;\n      puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n    }\n    puVar25 = num_arr;\n    for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n      puVar25[0] = 0;\n      puVar25[1] = 0;\n      puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n    }\nLAB_001018ea:\n    lVar19 = -1;\n    pFVar20 = local_eb8;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *(char *)pFVar20;\n      pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);\n    } while (cVar8 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    sVar18 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar19 - 1 != (int)sVar18) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_001019b7;\n    }\n    lVar19 = 0;\n    pFVar20 = local_eb8;\n    do {\n      iVar9 = (int)lVar19;\n      uVar16 = sg_get_llnum(pFVar20);\n      if (uVar16 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      addr_arr[lVar19] = uVar16;\n      pcVar14 = strchr((char *)pFVar20,0x2c);\n      pcVar17 = strchr((char *)pFVar20,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_001019db:\n      pFVar20 = (FILE *)(pcVar17 + 1);\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar11 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    lVar19 = -1;\n    pcVar17 = local_eb0;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *pcVar17;\n      pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n    } while (cVar8 != '\0');\n    sVar18 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar18 != ~(uint)lVar19 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar19 = 0;\n    pcVar17 = local_eb0;\n    do {\n      iVar9 = (int)lVar19;\n      lVar15 = sg_get_llnum(pcVar17);\n      if (lVar15 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar15) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      num_arr[lVar19] = (uint32_t)lVar15;\n      pcVar14 = strchr(pcVar17,0x2c);\n      pcVar17 = strchr(pcVar17,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_00101ae7:\n      pcVar17 = pcVar17 + 1;\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar10 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar11 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar12 = iVar11 * 0x10 + 8;\n    __memset_chk(param_arr,0,(long)iVar12,0x808);\n    puVar22 = (uint *)param_arr;\n    for (lVar19 = 0; (int)lVar19 < iVar11; lVar19 = lVar19 + 1) {\n      uVar28 = addr_arr[lVar19];\n      *(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n      uVar23 = num_arr[lVar19];\n      puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18;\n      puVar22 = puVar22 + 4;\n    }\n    uVar4 = (ushort)(iVar11 * 0x10);\n    param_arr._0_2_ = (uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8;\n    param_arr._2_2_ = uVar4 << 8 | uVar4 >> 8;\n    iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar10 < 0) {\nLAB_001016ce:\n      iVar9 = sg_convert_errno(-iVar10);\n      uVar13 = safe_strerror(-iVar10);\n      pr2serr("open error: %s: %s\n",local_e98,uVar13);\n    }\n    else {\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);\n      if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar5)) &&\n       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if (iVar9 < 0) {\n      iVar9 = 99;\n    }\n    goto LAB_00101539;\n  }" if (parenthesized_expression "((bVar5) && (bVar3))" ( (binary_expression "(bVar5) && (bVar3)" (parenthesized_expression "(bVar5)" ( identifier )) && (parenthesized_expression "(bVar3)" ( identifier ))) )) (compound_statement "{\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }" { (expression_statement "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (call_expression "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" identifier (argument_list "("Not in DEBUG mode, so \'-vV\' has no special action\n")" ( (string_literal ""Not in DEBUG mode, so \'-vV\' has no special action\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) }) (else_clause "else if (!bVar3) {\n    if (local_e98 == (char *)0x0) {\n      pr2serr("missing device name!\n\n");\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    bVar5 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar3 = local_e90 < uVar28 && local_e90 != 0;\n      if (bVar3) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar10 < 0) goto LAB_001016ce;\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      bVar5 = bVar3;\n      if (local_e90 == 0) {\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar7) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar24 = addr_arr;\n      for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }\n      puVar25 = num_arr;\n      for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar19 = -1;\n      pcVar17 = local_ec0;\n      do {\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      } while (cVar8 != '\0');\n      if ((lVar19 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      usage();\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar24 = addr_arr;\n    for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n      *puVar24 = 0;\n      puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n    }\n    puVar25 = num_arr;\n    for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n      puVar25[0] = 0;\n      puVar25[1] = 0;\n      puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n    }\nLAB_001018ea:\n    lVar19 = -1;\n    pFVar20 = local_eb8;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *(char *)pFVar20;\n      pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);\n    } while (cVar8 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    sVar18 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar19 - 1 != (int)sVar18) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_001019b7;\n    }\n    lVar19 = 0;\n    pFVar20 = local_eb8;\n    do {\n      iVar9 = (int)lVar19;\n      uVar16 = sg_get_llnum(pFVar20);\n      if (uVar16 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      addr_arr[lVar19] = uVar16;\n      pcVar14 = strchr((char *)pFVar20,0x2c);\n      pcVar17 = strchr((char *)pFVar20,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_001019db:\n      pFVar20 = (FILE *)(pcVar17 + 1);\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar11 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    lVar19 = -1;\n    pcVar17 = local_eb0;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *pcVar17;\n      pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n    } while (cVar8 != '\0');\n    sVar18 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar18 != ~(uint)lVar19 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar19 = 0;\n    pcVar17 = local_eb0;\n    do {\n      iVar9 = (int)lVar19;\n      lVar15 = sg_get_llnum(pcVar17);\n      if (lVar15 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar15) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      num_arr[lVar19] = (uint32_t)lVar15;\n      pcVar14 = strchr(pcVar17,0x2c);\n      pcVar17 = strchr(pcVar17,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_00101ae7:\n      pcVar17 = pcVar17 + 1;\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar10 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar11 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar12 = iVar11 * 0x10 + 8;\n    __memset_chk(param_arr,0,(long)iVar12,0x808);\n    puVar22 = (uint *)param_arr;\n    for (lVar19 = 0; (int)lVar19 < iVar11; lVar19 = lVar19 + 1) {\n      uVar28 = addr_arr[lVar19];\n      *(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n      uVar23 = num_arr[lVar19];\n      puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18;\n      puVar22 = puVar22 + 4;\n    }\n    uVar4 = (ushort)(iVar11 * 0x10);\n    param_arr._0_2_ = (uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8;\n    param_arr._2_2_ = uVar4 << 8 | uVar4 >> 8;\n    iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar10 < 0) {\nLAB_001016ce:\n      iVar9 = sg_convert_errno(-iVar10);\n      uVar13 = safe_strerror(-iVar10);\n      pr2serr("open error: %s: %s\n",local_e98,uVar13);\n    }\n    else {\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);\n      if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar5)) &&\n       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if (iVar9 < 0) {\n      iVar9 = 99;\n    }\n    goto LAB_00101539;\n  }" else (if_statement "if (!bVar3) {\n    if (local_e98 == (char *)0x0) {\n      pr2serr("missing device name!\n\n");\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    bVar5 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar3 = local_e90 < uVar28 && local_e90 != 0;\n      if (bVar3) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar10 < 0) goto LAB_001016ce;\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      bVar5 = bVar3;\n      if (local_e90 == 0) {\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar7) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar24 = addr_arr;\n      for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }\n      puVar25 = num_arr;\n      for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar19 = -1;\n      pcVar17 = local_ec0;\n      do {\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      } while (cVar8 != '\0');\n      if ((lVar19 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      usage();\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar24 = addr_arr;\n    for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n      *puVar24 = 0;\n      puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n    }\n    puVar25 = num_arr;\n    for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n      puVar25[0] = 0;\n      puVar25[1] = 0;\n      puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n    }\nLAB_001018ea:\n    lVar19 = -1;\n    pFVar20 = local_eb8;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *(char *)pFVar20;\n      pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);\n    } while (cVar8 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    sVar18 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar19 - 1 != (int)sVar18) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_001019b7;\n    }\n    lVar19 = 0;\n    pFVar20 = local_eb8;\n    do {\n      iVar9 = (int)lVar19;\n      uVar16 = sg_get_llnum(pFVar20);\n      if (uVar16 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      addr_arr[lVar19] = uVar16;\n      pcVar14 = strchr((char *)pFVar20,0x2c);\n      pcVar17 = strchr((char *)pFVar20,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_001019db:\n      pFVar20 = (FILE *)(pcVar17 + 1);\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar11 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    lVar19 = -1;\n    pcVar17 = local_eb0;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *pcVar17;\n      pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n    } while (cVar8 != '\0');\n    sVar18 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar18 != ~(uint)lVar19 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar19 = 0;\n    pcVar17 = local_eb0;\n    do {\n      iVar9 = (int)lVar19;\n      lVar15 = sg_get_llnum(pcVar17);\n      if (lVar15 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar15) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      num_arr[lVar19] = (uint32_t)lVar15;\n      pcVar14 = strchr(pcVar17,0x2c);\n      pcVar17 = strchr(pcVar17,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_00101ae7:\n      pcVar17 = pcVar17 + 1;\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar10 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar11 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar12 = iVar11 * 0x10 + 8;\n    __memset_chk(param_arr,0,(long)iVar12,0x808);\n    puVar22 = (uint *)param_arr;\n    for (lVar19 = 0; (int)lVar19 < iVar11; lVar19 = lVar19 + 1) {\n      uVar28 = addr_arr[lVar19];\n      *(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n      uVar23 = num_arr[lVar19];\n      puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18;\n      puVar22 = puVar22 + 4;\n    }\n    uVar4 = (ushort)(iVar11 * 0x10);\n    param_arr._0_2_ = (uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8;\n    param_arr._2_2_ = uVar4 << 8 | uVar4 >> 8;\n    iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar10 < 0) {\nLAB_001016ce:\n      iVar9 = sg_convert_errno(-iVar10);\n      uVar13 = safe_strerror(-iVar10);\n      pr2serr("open error: %s: %s\n",local_e98,uVar13);\n    }\n    else {\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);\n      if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar5)) &&\n       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if (iVar9 < 0) {\n      iVar9 = 99;\n    }\n    goto LAB_00101539;\n  }" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (compound_statement "{\n    if (local_e98 == (char *)0x0) {\n      pr2serr("missing device name!\n\n");\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    bVar5 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar3 = local_e90 < uVar28 && local_e90 != 0;\n      if (bVar3) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar10 < 0) goto LAB_001016ce;\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      bVar5 = bVar3;\n      if (local_e90 == 0) {\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar7) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar24 = addr_arr;\n      for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }\n      puVar25 = num_arr;\n      for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar19 = -1;\n      pcVar17 = local_ec0;\n      do {\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      } while (cVar8 != '\0');\n      if ((lVar19 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      usage();\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar24 = addr_arr;\n    for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n      *puVar24 = 0;\n      puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n    }\n    puVar25 = num_arr;\n    for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n      puVar25[0] = 0;\n      puVar25[1] = 0;\n      puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n    }\nLAB_001018ea:\n    lVar19 = -1;\n    pFVar20 = local_eb8;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *(char *)pFVar20;\n      pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);\n    } while (cVar8 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    sVar18 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar19 - 1 != (int)sVar18) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_001019b7;\n    }\n    lVar19 = 0;\n    pFVar20 = local_eb8;\n    do {\n      iVar9 = (int)lVar19;\n      uVar16 = sg_get_llnum(pFVar20);\n      if (uVar16 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      addr_arr[lVar19] = uVar16;\n      pcVar14 = strchr((char *)pFVar20,0x2c);\n      pcVar17 = strchr((char *)pFVar20,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_001019db:\n      pFVar20 = (FILE *)(pcVar17 + 1);\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar11 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }\n    lVar19 = -1;\n    pcVar17 = local_eb0;\n    do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *pcVar17;\n      pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n    } while (cVar8 != '\0');\n    sVar18 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar18 != ~(uint)lVar19 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar19 = 0;\n    pcVar17 = local_eb0;\n    do {\n      iVar9 = (int)lVar19;\n      lVar15 = sg_get_llnum(pcVar17);\n      if (lVar15 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar15) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      num_arr[lVar19] = (uint32_t)lVar15;\n      pcVar14 = strchr(pcVar17,0x2c);\n      pcVar17 = strchr(pcVar17,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_00101ae7:\n      pcVar17 = pcVar17 + 1;\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);\n    iVar10 = iVar9 + 2;\n    if (iVar9 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar11 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar12 = iVar11 * 0x10 + 8;\n    __memset_chk(param_arr,0,(long)iVar12,0x808);\n    puVar22 = (uint *)param_arr;\n    for (lVar19 = 0; (int)lVar19 < iVar11; lVar19 = lVar19 + 1) {\n      uVar28 = addr_arr[lVar19];\n      *(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n      uVar23 = num_arr[lVar19];\n      puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18;\n      puVar22 = puVar22 + 4;\n    }\n    uVar4 = (ushort)(iVar11 * 0x10);\n    param_arr._0_2_ = (uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8;\n    param_arr._2_2_ = uVar4 << 8 | uVar4 >> 8;\n    iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar10 < 0) {\nLAB_001016ce:\n      iVar9 = sg_convert_errno(-iVar10);\n      uVar13 = safe_strerror(-iVar10);\n      pr2serr("open error: %s: %s\n",local_e98,uVar13);\n    }\n    else {\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);\n      if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar5)) &&\n       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if (iVar9 < 0) {\n      iVar9 = 99;\n    }\n    goto LAB_00101539;\n  }" { (if_statement "if (local_e98 == (char *)0x0) {\n      pr2serr("missing device name!\n\n");\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(local_e98 == (char *)0x0)" ( (binary_expression "local_e98 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pr2serr("missing device name!\n\n");\n      usage();\n      iVar9 = 1;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("missing device name!\n\n");" (call_expression "pr2serr("missing device name!\n\n")" identifier (argument_list "("missing device name!\n\n")" ( (string_literal ""missing device name!\n\n"" " string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "usage();" (call_expression "usage()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (if_statement "if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar3 = local_e90 < uVar28 && local_e90 != 0;\n      if (bVar3) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar10 < 0) goto LAB_001016ce;\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      bVar5 = bVar3;\n      if (local_e90 == 0) {\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar7) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }" if (parenthesized_expression "(local_ea4 != 0)" ( (binary_expression "local_ea4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar3 = local_e90 < uVar28 && local_e90 != 0;\n      if (bVar3) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar10 < 0) goto LAB_001016ce;\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      bVar5 = bVar3;\n      if (local_e90 == 0) {\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar7) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }" { (if_statement "if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0))" ( (binary_expression "local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" (binary_expression "local_ec0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0" (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_eb0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");" (call_expression "pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n")" identifier (argument_list "("Can\'t have --all= together with --lba=, --num= or --in=\n\n")" ( (string_literal ""Can\'t have --all= together with --lba=, --num= or --in=\n\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "usage();" (call_expression "usage()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = 0x1f;" (assignment_expression "iVar9 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "bVar3 = local_e90 < uVar28 && local_e90 != 0;" (assignment_expression "bVar3 = local_e90 < uVar28 && local_e90 != 0" identifier = (binary_expression "local_e90 < uVar28 && local_e90 != 0" (binary_expression "local_e90 < uVar28" identifier < identifier) && (binary_expression "local_e90 != 0" identifier != number_literal))) ;) (if_statement "if (bVar3) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");" (call_expression "pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n")" identifier (argument_list "("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n")" ( (string_literal ""in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "iVar9 = 0x1f;" (assignment_expression "iVar9 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);" (assignment_expression "iVar10 = sg_cmds_open_device(local_e98,0,local_ec4)" identifier = (call_expression "sg_cmds_open_device(local_e98,0,local_ec4)" identifier (argument_list "(local_e98,0,local_ec4)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar10 < 0) goto LAB_001016ce;" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (goto_statement "goto LAB_001016ce;" goto statement_identifier ;)) (expression_statement "iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);" (assignment_expression "iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4)" identifier = (call_expression "sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4)" identifier (argument_list "(iVar10,&inq_resp,1,local_ec4)" ( identifier , (pointer_expression "&inq_resp" & identifier) , number_literal , identifier )))) ;) (expression_statement "bVar5 = bVar3;" (assignment_expression "bVar5 = bVar3" identifier = identifier) ;) (if_statement "if (local_e90 == 0) {\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" if (parenthesized_expression "(local_e90 == 0)" ( (binary_expression "local_e90 == 0" identifier == number_literal) )) (compound_statement "{\n        res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }\n        if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }\n        if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }" { (expression_statement "res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);" (assignment_expression "res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4)" identifier = (call_expression "sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4)" identifier (argument_list "(iVar10,0,0,param_arr,0x20,1,local_ec4)" ( identifier , number_literal , number_literal , identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (res == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }" if (parenthesized_expression "(res == 6)" ( (binary_expression "res == 6" identifier == number_literal) )) (compound_statement "{\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);\n        }" { (expression_statement "pr2serr("Read capacity(16) unit attention, try again\n");" (call_expression "pr2serr("Read capacity(16) unit attention, try again\n")" identifier (argument_list "("Read capacity(16) unit attention, try again\n")" ( (string_literal ""Read capacity(16) unit attention, try again\n"" " string_content escape_sequence ") ))) ;) (expression_statement "res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4);" (assignment_expression "res = sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4)" identifier = (call_expression "sg_ll_readcap_16(iVar10,0,0,param_arr,0x20,1,local_ec4)" identifier (argument_list "(iVar10,0,0,param_arr,0x20,1,local_ec4)" ( identifier , number_literal , number_literal , identifier , number_literal , number_literal , identifier )))) ;) })) (if_statement "if (res == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }\n        else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }" if (parenthesized_expression "(res == 0)" ( (binary_expression "res == 0" identifier == number_literal) )) (compound_statement "{\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }\n          uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);\n          local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;\n        }" { (if_statement "if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }" if (parenthesized_expression "(3 < local_ec4)" ( (binary_expression "3 < local_ec4" number_literal < identifier) )) (compound_statement "{\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(param_arr,0x20,1);\n          }" { (expression_statement "pr2serr("Read capacity(16) response:\n");" (call_expression "pr2serr("Read capacity(16) response:\n")" identifier (argument_list "("Read capacity(16) response:\n")" ( (string_literal ""Read capacity(16) response:\n"" " string_content escape_sequence ") ))) ;) (expression_statement "hex2stderr(param_arr,0x20,1);" (call_expression "hex2stderr(param_arr,0x20,1)" identifier (argument_list "(param_arr,0x20,1)" ( identifier , number_literal , number_literal ))) ;) })) (expression_statement "uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_);" (assignment_expression "uVar23 = CONCAT22(param_arr._2_2_,param_arr._0_2_)" identifier = (call_expression "CONCAT22(param_arr._2_2_,param_arr._0_2_)" identifier (argument_list "(param_arr._2_2_,param_arr._0_2_)" ( (field_expression "param_arr._2_2_" identifier . field_identifier) , (field_expression "param_arr._0_2_" identifier . field_identifier) )))) ;) (expression_statement "local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38;" (assignment_expression "local_e90 = (ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38" identifier = (binary_expression "(ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28 | CONCAT44(param_arr._4_4_,uVar23) << 0x38" (binary_expression "(ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18 |\n                      ((ulong)uVar23 & 0xff00) << 0x28" (binary_expression "(ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8 | ((ulong)uVar23 & 0xff0000) << 0x18" (binary_expression "(ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8 |\n                      ((ulong)uVar23 & 0xff000000) << 8" (binary_expression "(ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8" (binary_expression "(ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28 |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18" (binary_expression "(ulong)((uint)param_arr._4_4_ >> 0x18) |\n                      (((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28" (call_expression "(ulong)((uint)param_arr._4_4_ >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)param_arr._4_4_ >> 0x18)" ( (binary_expression "(uint)param_arr._4_4_ >> 0x18" (cast_expression "(uint)param_arr._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "param_arr._4_4_" identifier . field_identifier)) >> number_literal) ))) | (binary_expression "(((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20) >> 0x28" (parenthesized_expression "(((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20)" ( (binary_expression "((ulong)(uint)param_arr._4_4_ & 0xff0000) << 0x20" (parenthesized_expression "((ulong)(uint)param_arr._4_4_ & 0xff0000)" ( (binary_expression "(ulong)(uint)param_arr._4_4_ & 0xff0000" (cast_expression "(ulong)(uint)param_arr._4_4_" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)param_arr._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "param_arr._4_4_" identifier . field_identifier))) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "(((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20) >> 0x18" (parenthesized_expression "(((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20)" ( (binary_expression "((ulong)(uint)param_arr._4_4_ & 0xff00) << 0x20" (parenthesized_expression "((ulong)(uint)param_arr._4_4_ & 0xff00)" ( (binary_expression "(ulong)(uint)param_arr._4_4_ & 0xff00" (cast_expression "(ulong)(uint)param_arr._4_4_" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)param_arr._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "param_arr._4_4_" identifier . field_identifier))) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "(((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20) >> 8" (parenthesized_expression "(((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20)" ( (binary_expression "((ulong)(uint)param_arr._4_4_ & 0xff) << 0x20" (parenthesized_expression "((ulong)(uint)param_arr._4_4_ & 0xff)" ( (binary_expression "(ulong)(uint)param_arr._4_4_ & 0xff" (cast_expression "(ulong)(uint)param_arr._4_4_" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)param_arr._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "param_arr._4_4_" identifier . field_identifier))) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "((ulong)uVar23 & 0xff000000) << 8" (parenthesized_expression "((ulong)uVar23 & 0xff000000)" ( (binary_expression "(ulong)uVar23 & 0xff000000" (cast_expression "(ulong)uVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)uVar23 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)uVar23 & 0xff0000)" ( (binary_expression "(ulong)uVar23 & 0xff0000" (cast_expression "(ulong)uVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)uVar23 & 0xff00) << 0x28" (parenthesized_expression "((ulong)uVar23 & 0xff00)" ( (binary_expression "(ulong)uVar23 & 0xff00" (cast_expression "(ulong)uVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "CONCAT44(param_arr._4_4_,uVar23) << 0x38" (call_expression "CONCAT44(param_arr._4_4_,uVar23)" identifier (argument_list "(param_arr._4_4_,uVar23)" ( (field_expression "param_arr._4_4_" identifier . field_identifier) , identifier ))) << number_literal))) ;) }) (else_clause "else {\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }" else (compound_statement "{\n          if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);\n        }" { (if_statement "if ((res - 5U & 0xfffffffb) != 0) {\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }" if (parenthesized_expression "((res - 5U & 0xfffffffb) != 0)" ( (binary_expression "(res - 5U & 0xfffffffb) != 0" (parenthesized_expression "(res - 5U & 0xfffffffb)" ( (binary_expression "res - 5U & 0xfffffffb" (binary_expression "res - 5U" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n            if (res < 0) {\n              res = sg_convert_errno(-res);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            iVar9 = res;\n            goto switchD_00101fe9_caseD_3;\n          }" { (if_statement "if (res < 0) {\n              res = sg_convert_errno(-res);\n            }" if (parenthesized_expression "(res < 0)" ( (binary_expression "res < 0" identifier < number_literal) )) (compound_statement "{\n              res = sg_convert_errno(-res);\n            }" { (expression_statement "res = sg_convert_errno(-res);" (assignment_expression "res = sg_convert_errno(-res)" identifier = (call_expression "sg_convert_errno(-res)" identifier (argument_list "(-res)" ( (unary_expression "-res" - identifier) )))) ;) })) (expression_statement "pr2serr("Read capacity(16) failed\n");" (call_expression "pr2serr("Read capacity(16) failed\n")" identifier (argument_list "("Read capacity(16) failed\n")" ( (string_literal ""Read capacity(16) failed\n"" " string_content escape_sequence ") ))) ;) (expression_statement "iVar9 = res;" (assignment_expression "iVar9 = res" identifier = identifier) ;) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) (if_statement "if (local_ec4 == 0) {\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }" if (parenthesized_expression "(local_ec4 == 0)" ( (binary_expression "local_ec4 == 0" identifier == number_literal) )) (compound_statement "{\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);\n            if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }\n          }" { (expression_statement "res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0);" (assignment_expression "res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0)" identifier = (call_expression "sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,0)" identifier (argument_list "(iVar10,0,0,param_arr,8,1,0)" ( identifier , number_literal , number_literal , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (res != 0) {\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }" if (parenthesized_expression "(res != 0)" ( (binary_expression "res != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              iVar9 = res;\n              goto switchD_00101fe9_caseD_3;\n            }" { (labeled_statement "LAB_001022f0:\n              if (res < 0) {\n                res = sg_convert_errno(-res);\n              }" statement_identifier : (if_statement "if (res < 0) {\n                res = sg_convert_errno(-res);\n              }" if (parenthesized_expression "(res < 0)" ( (binary_expression "res < 0" identifier < number_literal) )) (compound_statement "{\n                res = sg_convert_errno(-res);\n              }" { (expression_statement "res = sg_convert_errno(-res);" (assignment_expression "res = sg_convert_errno(-res)" identifier = (call_expression "sg_convert_errno(-res)" identifier (argument_list "(-res)" ( (unary_expression "-res" - identifier) )))) ;) }))) (expression_statement "pr2serr("Read capacity(10) failed\n");" (call_expression "pr2serr("Read capacity(10) failed\n")" identifier (argument_list "("Read capacity(10) failed\n")" ( (string_literal ""Read capacity(10) failed\n"" " string_content escape_sequence ") ))) ;) (expression_statement "iVar9 = res;" (assignment_expression "iVar9 = res" identifier = identifier) ;) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) }) (else_clause "else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }" else (compound_statement "{\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);\n            if (res != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }\n          }" { (expression_statement "pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");" (call_expression "pr2serr("Read capacity(16) not supported, try Read capacity(10)\n")" identifier (argument_list "("Read capacity(16) not supported, try Read capacity(10)\n")" ( (string_literal ""Read capacity(16) not supported, try Read capacity(10)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4);" (assignment_expression "res = sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4)" identifier = (call_expression "sg_ll_readcap_10(iVar10,0,0,param_arr,8,1,local_ec4)" identifier (argument_list "(iVar10,0,0,param_arr,8,1,local_ec4)" ( identifier , number_literal , number_literal , identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (res != 0) goto LAB_001022f0;" if (parenthesized_expression "(res != 0)" ( (binary_expression "res != 0" identifier != number_literal) )) (goto_statement "goto LAB_001022f0;" goto statement_identifier ;)) (if_statement "if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }" if (parenthesized_expression "(3 < local_ec4)" ( (binary_expression "3 < local_ec4" number_literal < identifier) )) (compound_statement "{\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(param_arr,8,1);\n            }" { (expression_statement "pr2serr("Read capacity(10) response:\n");" (call_expression "pr2serr("Read capacity(10) response:\n")" identifier (argument_list "("Read capacity(10) response:\n")" ( (string_literal ""Read capacity(10) response:\n"" " string_content escape_sequence ") ))) ;) (expression_statement "hex2stderr(param_arr,8,1);" (call_expression "hex2stderr(param_arr,8,1)" identifier (argument_list "(param_arr,8,1)" ( identifier , number_literal , number_literal ))) ;) })) }))) (expression_statement "local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18);" (assignment_expression "local_e90 = (ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18)" identifier = (call_expression "(ulong)((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18)" ( (binary_expression "(uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8 |\n                             CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18" (binary_expression "(uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8 |\n                              ((ushort)param_arr._0_2_ & 0xff00) << 8" (binary_expression "(uint)((ushort)param_arr._2_2_ >> 8) |\n                              (((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8" (call_expression "(uint)((ushort)param_arr._2_2_ >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ushort)param_arr._2_2_ >> 8)" ( (binary_expression "(ushort)param_arr._2_2_ >> 8" (cast_expression "(ushort)param_arr._2_2_" ( (type_descriptor "ushort" type_identifier) ) (field_expression "param_arr._2_2_" identifier . field_identifier)) >> number_literal) ))) | (binary_expression "(((ushort)param_arr._2_2_ & 0xff) << 0x10) >> 8" (parenthesized_expression "(((ushort)param_arr._2_2_ & 0xff) << 0x10)" ( (binary_expression "((ushort)param_arr._2_2_ & 0xff) << 0x10" (parenthesized_expression "((ushort)param_arr._2_2_ & 0xff)" ( (binary_expression "(ushort)param_arr._2_2_ & 0xff" (cast_expression "(ushort)param_arr._2_2_" ( (type_descriptor "ushort" type_identifier) ) (field_expression "param_arr._2_2_" identifier . field_identifier)) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "((ushort)param_arr._0_2_ & 0xff00) << 8" (parenthesized_expression "((ushort)param_arr._0_2_ & 0xff00)" ( (binary_expression "(ushort)param_arr._0_2_ & 0xff00" (cast_expression "(ushort)param_arr._0_2_" ( (type_descriptor "ushort" type_identifier) ) (field_expression "param_arr._0_2_" identifier . field_identifier)) & number_literal) )) << number_literal)) | (binary_expression "CONCAT22(param_arr._2_2_,param_arr._0_2_) << 0x18" (call_expression "CONCAT22(param_arr._2_2_,param_arr._0_2_)" identifier (argument_list "(param_arr._2_2_,param_arr._0_2_)" ( (field_expression "param_arr._2_2_" identifier . field_identifier) , (field_expression "param_arr._0_2_" identifier . field_identifier) ))) << number_literal)) )))) ;) }))) (if_statement "if (local_e90 < uVar28) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }" if (parenthesized_expression "(local_e90 < uVar28)" ( (binary_expression "local_e90 < uVar28" identifier < identifier) )) (compound_statement "{\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);\n          iVar9 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }" { (expression_statement "pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90);" (call_expression "pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90)" identifier (argument_list "("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar28,local_e90)" ( (string_literal ""after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "iVar9 = 0x1f;" (assignment_expression "iVar9 = 0x1f" identifier = number_literal) ;) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) (if_statement "if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (compound_statement "{\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }" { (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision)" identifier (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision)" ( number_literal , (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" " string_content escape_sequence ") , identifier , (field_expression "inq_resp.vendor" identifier . field_identifier) , (field_expression "inq_resp.product" identifier . field_identifier) , (field_expression "inq_resp.revision" identifier . field_identifier) ))) ;) (expression_statement "sleep(3);" (call_expression "sleep(3)" identifier (argument_list "(3)" ( number_literal ))) ;) (expression_statement "__snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90);" (call_expression "__snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90)" identifier (argument_list "(param_arr,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar28,local_e98,\n                         local_e90)" ( identifier , number_literal , number_literal , number_literal , (string_literal ""LBA 0x%lx to end of %s (0x%lx)"" " string_content ") , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_001020d7;" goto statement_identifier ;) })) }) (else_clause "else if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" else (if_statement "if (!bVar6) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (compound_statement "{\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);\n        sleep(3);\n        __snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" { (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision)" identifier (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                     inq_resp.revision)" ( number_literal , (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" " string_content escape_sequence ") , identifier , (field_expression "inq_resp.vendor" identifier . field_identifier) , (field_expression "inq_resp.product" identifier . field_identifier) , (field_expression "inq_resp.revision" identifier . field_identifier) ))) ;) (expression_statement "sleep(3);" (call_expression "sleep(3)" identifier (argument_list "(3)" ( number_literal ))) ;) (expression_statement "__snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98);" (call_expression "__snprintf_chk(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98)" identifier (argument_list "(param_arr,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar28,local_e90,local_e98)" ( identifier , number_literal , number_literal , number_literal , (string_literal ""LBA 0x%lx to 0x%lx on %s"" " string_content ") , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" statement_identifier : (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 15 seconds"" " escape_sequence string_content ") ))) ;)) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",param_arr)" identifier (argument_list "(1,"    ALL data from %s will be LOST\n",param_arr)" ( number_literal , (string_literal ""    ALL data from %s will be LOST\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP will commence in 10 seconds");" (call_expression "puts("\nAn UNMAP will commence in 10 seconds")" identifier (argument_list "("\nAn UNMAP will commence in 10 seconds")" ( (string_literal ""\nAn UNMAP will commence in 10 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",param_arr)" identifier (argument_list "(1,"    ALL data from %s will be LOST\n",param_arr)" ( number_literal , (string_literal ""    ALL data from %s will be LOST\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 5 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",param_arr);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",param_arr)" identifier (argument_list "(1,"    ALL data from %s will be LOST\n",param_arr)" ( number_literal , (string_literal ""    ALL data from %s will be LOST\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(7);" (call_expression "sleep(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })))) (expression_statement "local_ec8 = 0;" (assignment_expression "local_ec8 = 0" identifier = number_literal) ;) (if_statement "if (bVar7) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);\n      }" { (expression_statement "pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4);" (call_expression "pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4)" identifier (argument_list "("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar28,local_e90,local_ea4)" ( (string_literal ""Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" else (compound_statement "{\n        for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar5 = bVar7;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" { (for_statement "for (; uVar28 <= local_e90; uVar28 = uVar28 + uVar23) {\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }" for ( ; (binary_expression "uVar28 <= local_e90" identifier <= identifier) ; (assignment_expression "uVar28 = uVar28 + uVar23" identifier = (binary_expression "uVar28 + uVar23" identifier + identifier)) ) (compound_statement "{\n          uVar23 = local_ea4;\n          if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }\n          uVar27 = uVar23 + uVar28;\n          bVar5 = false;\n          while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }" { (expression_statement "uVar23 = local_ea4;" (assignment_expression "uVar23 = local_ea4" identifier = identifier) ;) (if_statement "if (local_e90 - uVar28 < (ulong)local_ea4) {\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }" if (parenthesized_expression "(local_e90 - uVar28 < (ulong)local_ea4)" ( (binary_expression "local_e90 - uVar28 < (ulong)local_ea4" (binary_expression "local_e90 - uVar28" identifier - identifier) < (cast_expression "(ulong)local_ea4" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) (compound_statement "{\n            uVar23 = ((int)local_e90 + 1) - (int)uVar28;\n          }" { (expression_statement "uVar23 = ((int)local_e90 + 1) - (int)uVar28;" (assignment_expression "uVar23 = ((int)local_e90 + 1) - (int)uVar28" identifier = (binary_expression "((int)local_e90 + 1) - (int)uVar28" (parenthesized_expression "((int)local_e90 + 1)" ( (binary_expression "(int)local_e90 + 1" (cast_expression "(int)local_e90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "uVar27 = uVar23 + uVar28;" (assignment_expression "uVar27 = uVar23 + uVar28" identifier = (binary_expression "uVar23 + uVar28" identifier + identifier)) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (while_statement "while( true ) {\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            puVar21 = param_arr + 4;\n            for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }\n            param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n            param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            param_arr[0] = '\0';\n            param_arr[1] = '\x16';\n            param_arr[2] = '\0';\n            param_arr[3] = '\x10';\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);\n            if (bVar5) goto LAB_00102795;\n            if (iVar9 == 0) break;\n            if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar27 = uVar27 - 1;\n            if (uVar23 < 2) goto LAB_00102795;\n            uVar23 = uVar23 - 1;\n            bVar5 = true;\n          }" { (expression_statement "puVar21 = param_arr + 4;" (assignment_expression "puVar21 = param_arr + 4" identifier = (binary_expression "param_arr + 4" identifier + number_literal)) ;) (for_statement "for (lVar19 = 5; lVar19 != 0; lVar19 = lVar19 + -1) {\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }" for ( (assignment_expression "lVar19 = 5" identifier = number_literal) ; (binary_expression "lVar19 != 0" identifier != number_literal) ; (assignment_expression "lVar19 = lVar19 + -1" identifier = (binary_expression "lVar19 + -1" identifier + number_literal)) ) (compound_statement "{\n              puVar21[0] = '\0';\n              puVar21[1] = '\0';\n              puVar21[2] = '\0';\n              puVar21[3] = '\0';\n              puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;\n            }" { (expression_statement "puVar21[0] = '\0';" (assignment_expression "puVar21[0] = '\0'" (subscript_expression "puVar21[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar21[1] = '\0';" (assignment_expression "puVar21[1] = '\0'" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar21[2] = '\0';" (assignment_expression "puVar21[2] = '\0'" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar21[3] = '\0';" (assignment_expression "puVar21[3] = '\0'" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar21 = puVar21 + (ulong)bVar29 * -8 + 4;" (assignment_expression "puVar21 = puVar21 + (ulong)bVar29 * -8 + 4" identifier = (binary_expression "puVar21 + (ulong)bVar29 * -8 + 4" (binary_expression "puVar21 + (ulong)bVar29 * -8" identifier + (binary_expression "(ulong)bVar29 * -8" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;" (assignment_expression "param_arr._8_8_ =\n                 uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38" (field_expression "param_arr._8_8_" identifier . field_identifier) = (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                 (uVar28 & 0xff00) << 0x28" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                 (uVar28 & 0xff000000) << 8" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                 (uVar28 & 0xff0000000000) >> 0x18" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28" (binary_expression "uVar28 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar28 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar28 & 0xff000000000000)" ( (binary_expression "uVar28 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar28 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar28 & 0xff0000000000)" ( (binary_expression "uVar28 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar28 & 0xff00000000) >> 8" (parenthesized_expression "(uVar28 & 0xff00000000)" ( (binary_expression "uVar28 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar28 & 0xff000000) << 8" (parenthesized_expression "(uVar28 & 0xff000000)" ( (binary_expression "uVar28 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar28 & 0xff0000) << 0x18" (parenthesized_expression "(uVar28 & 0xff0000)" ( (binary_expression "uVar28 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar28 & 0xff00) << 0x28" (parenthesized_expression "(uVar28 & 0xff00)" ( (binary_expression "uVar28 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar28 << 0x38" identifier << number_literal))) ;) (expression_statement "param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;" (assignment_expression "param_arr._16_4_ =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18" (field_expression "param_arr._16_4_" identifier . field_identifier) = (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8" (binary_expression "uVar23 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar23 & 0xff0000) >> 8" (parenthesized_expression "(uVar23 & 0xff0000)" ( (binary_expression "uVar23 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar23 & 0xff00) << 8" (parenthesized_expression "(uVar23 & 0xff00)" ( (binary_expression "uVar23 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar23 << 0x18" identifier << number_literal))) ;) (expression_statement "param_arr[0] = '\0';" (assignment_expression "param_arr[0] = '\0'" (subscript_expression "param_arr[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "param_arr[1] = '\x16';" (assignment_expression "param_arr[1] = '\x16'" (subscript_expression "param_arr[1]" identifier [ number_literal ]) = (char_literal "'\x16'" ' escape_sequence ')) ;) (expression_statement "param_arr[2] = '\0';" (assignment_expression "param_arr[2] = '\0'" (subscript_expression "param_arr[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "param_arr[3] = '\x10';" (assignment_expression "param_arr[3] = '\x10'" (subscript_expression "param_arr[3]" identifier [ number_literal ]) = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (if_statement "if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }" if (parenthesized_expression "(1 < local_ec4)" ( (binary_expression "1 < local_ec4" number_literal < identifier) )) (compound_statement "{\n              iVar9 = local_ec4;\n            }" { (expression_statement "iVar9 = local_ec4;" (assignment_expression "iVar9 = local_ec4" identifier = identifier) ;) })) (expression_statement "iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2);" (assignment_expression "iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2)" identifier = (call_expression "sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2)" identifier (argument_list "(iVar10,local_e9d,local_e9c,iVar26,param_arr,0x18,1,iVar9 + -2)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal , (binary_expression "iVar9 + -2" identifier + number_literal) )))) ;) (if_statement "if (bVar5) goto LAB_00102795;" if (parenthesized_expression "(bVar5)" ( identifier )) (goto_statement "goto LAB_00102795;" goto statement_identifier ;)) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((iVar9 != 0x16) || (uVar27 <= local_e90)) goto LAB_00102795;" if (parenthesized_expression "((iVar9 != 0x16) || (uVar27 <= local_e90))" ( (binary_expression "(iVar9 != 0x16) || (uVar27 <= local_e90)" (parenthesized_expression "(iVar9 != 0x16)" ( (binary_expression "iVar9 != 0x16" identifier != number_literal) )) || (parenthesized_expression "(uVar27 <= local_e90)" ( (binary_expression "uVar27 <= local_e90" identifier <= identifier) ))) )) (goto_statement "goto LAB_00102795;" goto statement_identifier ;)) (expression_statement "pr2serr("Typical end of disk out-of-range, decrement count and retry\n");" (call_expression "pr2serr("Typical end of disk out-of-range, decrement count and retry\n")" identifier (argument_list "("Typical end of disk out-of-range, decrement count and retry\n")" ( (string_literal ""Typical end of disk out-of-range, decrement count and retry\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar27 = uVar27 - 1;" (assignment_expression "uVar27 = uVar27 - 1" identifier = (binary_expression "uVar27 - 1" identifier - number_literal)) ;) (if_statement "if (uVar23 < 2) goto LAB_00102795;" if (parenthesized_expression "(uVar23 < 2)" ( (binary_expression "uVar23 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00102795;" goto statement_identifier ;)) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" identifier = (binary_expression "uVar23 - 1" identifier - number_literal)) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) })) (expression_statement "local_ec8 = local_ec8 + 1;" (assignment_expression "local_ec8 = local_ec8 + 1" identifier = (binary_expression "local_ec8 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00102795:\n        bVar5 = bVar7;" statement_identifier : (expression_statement "bVar5 = bVar7;" (assignment_expression "bVar5 = bVar7" identifier = identifier) ;)) (if_statement "if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }" if (parenthesized_expression "(local_ec4 != 0)" ( (binary_expression "local_ec4 != 0" identifier != number_literal) )) (compound_statement "{\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }" { (expression_statement "pr2serr("Completed %d UNMAP commands\n",local_ec8);" (call_expression "pr2serr("Completed %d UNMAP commands\n",local_ec8)" identifier (argument_list "("Completed %d UNMAP commands\n",local_ec8)" ( (string_literal ""Completed %d UNMAP commands\n"" " string_content escape_sequence ") , identifier ))) ;) })) }))) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) (if_statement "if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar24 = addr_arr;\n      for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }\n      puVar25 = num_arr;\n      for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar19 = -1;\n      pcVar17 = local_ec0;\n      do {\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      } while (cVar8 != '\0');\n      if ((lVar19 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(local_ec0 != (char *)0x0)" ( (binary_expression "local_ec0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar24 = addr_arr;\n      for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }\n      puVar25 = num_arr;\n      for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar19 = -1;\n      pcVar17 = local_ec0;\n      do {\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      } while (cVar8 != '\0');\n      if ((lVar19 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }" { (if_statement "if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0" (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_eb0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        usage();\n        iVar9 = 0x1f;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");" (call_expression "pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n")" identifier (argument_list "("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n")" ( (string_literal ""expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) (expression_statement "usage();" (call_expression "usage()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = 0x1f;" (assignment_expression "iVar9 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "puVar24 = addr_arr;" (assignment_expression "puVar24 = addr_arr" identifier = identifier) ;) (for_statement "for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }" for ( (assignment_expression "lVar19 = 0x80" identifier = number_literal) ; (binary_expression "lVar19 != 0" identifier != number_literal) ; (assignment_expression "lVar19 = lVar19 + -1" identifier = (binary_expression "lVar19 + -1" identifier + number_literal)) ) (compound_statement "{\n        *puVar24 = 0;\n        puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n      }" { (expression_statement "*puVar24 = 0;" (assignment_expression "*puVar24 = 0" (pointer_expression "*puVar24" * identifier) = number_literal) ;) (expression_statement "puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;" (assignment_expression "puVar24 = puVar24 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "puVar24 + (ulong)bVar29 * -2 + 1" (binary_expression "puVar24 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "puVar25 = num_arr;" (assignment_expression "puVar25 = num_arr" identifier = identifier) ;) (for_statement "for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }" for ( (assignment_expression "lVar19 = 0x40" identifier = number_literal) ; (binary_expression "lVar19 != 0" identifier != number_literal) ; (assignment_expression "lVar19 = lVar19 + -1" identifier = (binary_expression "lVar19 + -1" identifier + number_literal)) ) (compound_statement "{\n        puVar25[0] = 0;\n        puVar25[1] = 0;\n        puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n      }" { (expression_statement "puVar25[0] = 0;" (assignment_expression "puVar25[0] = 0" (subscript_expression "puVar25[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar25[1] = 0;" (assignment_expression "puVar25[1] = 0" (subscript_expression "puVar25[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;" (assignment_expression "puVar25 = puVar25 + (ulong)bVar29 * -4 + 2" identifier = (binary_expression "puVar25 + (ulong)bVar29 * -4 + 2" (binary_expression "puVar25 + (ulong)bVar29 * -4" identifier + (binary_expression "(ulong)bVar29 * -4" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (if_statement "if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;" if (parenthesized_expression "((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0))" ( (binary_expression "(local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)" (parenthesized_expression "(local_eb0 != (char *)0x0)" ( (binary_expression "local_eb0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_001018ea;" goto statement_identifier ;)) (labeled_statement "LAB_00101840:\n      lVar19 = -1;" statement_identifier : (expression_statement "lVar19 = -1;" (assignment_expression "lVar19 = -1" identifier = number_literal) ;)) (expression_statement "pcVar17 = local_ec0;" (assignment_expression "pcVar17 = local_ec0" identifier = identifier) ;) (do_statement "do {\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      } while (cVar8 != '\0');" do (compound_statement "{\n        if (lVar19 == 0) break;\n        lVar19 = lVar19 + -1;\n        cVar8 = *pcVar17;\n        pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n      }" { (if_statement "if (lVar19 == 0) break;" if (parenthesized_expression "(lVar19 == 0)" ( (binary_expression "lVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar19 = lVar19 + -1;" (assignment_expression "lVar19 = lVar19 + -1" identifier = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (expression_statement "cVar8 = *pcVar17;" (assignment_expression "cVar8 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (expression_statement "pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pcVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pcVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if ((lVar19 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" if (parenthesized_expression "((lVar19 == -3) && (*local_ec0 == '-'))" ( (binary_expression "(lVar19 == -3) && (*local_ec0 == '-')" (parenthesized_expression "(lVar19 == -3)" ( (binary_expression "lVar19 == -3" identifier == number_literal) )) && (parenthesized_expression "(*local_ec0 == '-')" ( (binary_expression "*local_ec0 == '-'" (pointer_expression "*local_ec0" * identifier) == (char_literal "'-'" ' character ')) ))) )) (compound_statement "{\n        local_eb8 = stdin;\n        bVar3 = true;\nLAB_00101bce:\n        uVar23 = 0;\n        iVar9 = 0;\n        while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }\n        if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar17 = "stdin";\n        if (!bVar3) {\n          pcVar17 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }" { (expression_statement "local_eb8 = stdin;" (assignment_expression "local_eb8 = stdin" identifier = identifier) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (labeled_statement "LAB_00101bce:\n        uVar23 = 0;" statement_identifier : (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (while_statement "while (pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0) {\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }" while (parenthesized_expression "(pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0)" ( (comma_expression "pcVar17 = fgets((char *)param_arr,0x400,local_eb8), pcVar17 != (char *)0x0" (assignment_expression "pcVar17 = fgets((char *)param_arr,0x400,local_eb8)" identifier = (call_expression "fgets((char *)param_arr,0x400,local_eb8)" identifier (argument_list "((char *)param_arr,0x400,local_eb8)" ( (cast_expression "(char *)param_arr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier )))) , (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          lVar19 = -1;\n          puVar21 = param_arr;\n          do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');\n          iVar10 = ~(uint)lVar19 - 1;\n          if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar9 = iVar9 + 1;\n          if (iVar9 == 0x200) break;\n        }" { (expression_statement "lVar19 = -1;" (assignment_expression "lVar19 = -1" identifier = number_literal) ;) (expression_statement "puVar21 = param_arr;" (assignment_expression "puVar21 = param_arr" identifier = identifier) ;) (do_statement "do {\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          } while (uVar1 != '\0');" do (compound_statement "{\n            if (lVar19 == 0) break;\n            lVar19 = lVar19 + -1;\n            uVar1 = *puVar21;\n            puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;\n          }" { (if_statement "if (lVar19 == 0) break;" if (parenthesized_expression "(lVar19 == 0)" ( (binary_expression "lVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar19 = lVar19 + -1;" (assignment_expression "lVar19 = lVar19 + -1" identifier = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (expression_statement "uVar1 = *puVar21;" (assignment_expression "uVar1 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "puVar21 = puVar21 + (ulong)bVar29 * -2 + 1;" (assignment_expression "puVar21 = puVar21 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "puVar21 + (ulong)bVar29 * -2 + 1" (binary_expression "puVar21 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(uVar1 != '\0')" ( (binary_expression "uVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar10 = ~(uint)lVar19 - 1;" (assignment_expression "iVar10 = ~(uint)lVar19 - 1" identifier = (binary_expression "~(uint)lVar19 - 1" (unary_expression "~(uint)lVar19" ~ (cast_expression "(uint)lVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (if_statement "if (0 < iVar10) {\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }" if (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) (compound_statement "{\n            iVar11 = ~(uint)lVar19 - 2;\n            if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;\n            sVar18 = strspn((char *)param_arr," \t");\n            iVar11 = (int)sVar18;\n            if (iVar11 == iVar10) goto LAB_00101d67;\n            puVar21 = param_arr + iVar11;\n            if (*puVar21 == '#') goto LAB_00101d67;\n            sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar12 = (int)sVar18;\n            if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }\n            if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);\n            goto LAB_00101c6b;\n          }" { (expression_statement "iVar11 = ~(uint)lVar19 - 2;" (assignment_expression "iVar11 = ~(uint)lVar19 - 2" identifier = (binary_expression "~(uint)lVar19 - 2" (unary_expression "~(uint)lVar19" ~ (cast_expression "(uint)lVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (if_statement "if ((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)) goto LAB_00101d67;" if (parenthesized_expression "((param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1))" ( (binary_expression "(param_arr[iVar11] == '\n') &&\n               (param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)" (parenthesized_expression "(param_arr[iVar11] == '\n')" ( (binary_expression "param_arr[iVar11] == '\n'" (subscript_expression "param_arr[iVar11]" identifier [ identifier ]) == (char_literal "'\n'" ' escape_sequence ')) )) && (parenthesized_expression "(param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1)" ( (comma_expression "param_arr[iVar11] = '\0', iVar10 = iVar11, iVar11 < 1" (assignment_expression "param_arr[iVar11] = '\0'" (subscript_expression "param_arr[iVar11]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) , (comma_expression "iVar10 = iVar11, iVar11 < 1" (assignment_expression "iVar10 = iVar11" identifier = identifier) , (binary_expression "iVar11 < 1" identifier < number_literal))) ))) )) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;)) (expression_statement "sVar18 = strspn((char *)param_arr," \t");" (assignment_expression "sVar18 = strspn((char *)param_arr," \t")" identifier = (call_expression "strspn((char *)param_arr," \t")" identifier (argument_list "((char *)param_arr," \t")" ( (cast_expression "(char *)param_arr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" \t"" " string_content escape_sequence ") )))) ;) (expression_statement "iVar11 = (int)sVar18;" (assignment_expression "iVar11 = (int)sVar18" identifier = (cast_expression "(int)sVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar11 == iVar10) goto LAB_00101d67;" if (parenthesized_expression "(iVar11 == iVar10)" ( (binary_expression "iVar11 == iVar10" identifier == identifier) )) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;)) (expression_statement "puVar21 = param_arr + iVar11;" (assignment_expression "puVar21 = param_arr + iVar11" identifier = (binary_expression "param_arr + iVar11" identifier + identifier)) ;) (if_statement "if (*puVar21 == '#') goto LAB_00101d67;" if (parenthesized_expression "(*puVar21 == '#')" ( (binary_expression "*puVar21 == '#'" (pointer_expression "*puVar21" * identifier) == (char_literal "'#'" ' character ')) )) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;)) (expression_statement "sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");" (assignment_expression "sVar18 = strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" identifier = (call_expression "strspn((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" identifier (argument_list "((char *)puVar21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" ( (cast_expression "(char *)puVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t"" " string_content escape_sequence ") )))) ;) (expression_statement "iVar12 = (int)sVar18;" (assignment_expression "iVar12 = (int)sVar18" identifier = (cast_expression "(int)sVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar10 - iVar11 <= iVar12) {\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }" if (parenthesized_expression "(iVar10 - iVar11 <= iVar12)" ( (binary_expression "iVar10 - iVar11 <= iVar12" (binary_expression "iVar10 - iVar11" identifier - identifier) <= identifier) )) (compound_statement "{\n              iVar10 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }\n              if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar10 = iVar10 + -1;\nLAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;\n              goto LAB_00101d67;\n            }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00101d1a:\n              while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }" statement_identifier : (while_statement "while( true ) {\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar16 = sg_get_llnum(puVar21);\n                if (uVar16 == 0xffffffffffffffff) break;\n                iVar11 = (int)(iVar10 + uVar23) >> 1;\n                if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }\n                pcVar17 = strpbrk((char *)puVar21," ,\t");\n                if (pcVar17 == (char *)0x0) goto LAB_00101d62;\n                sVar18 = strspn(pcVar17," ,\t");\n                puVar21 = (uint8_t *)(pcVar17 + sVar18);\n                if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;\n              }" { (expression_statement "uVar16 = sg_get_llnum(puVar21);" (assignment_expression "uVar16 = sg_get_llnum(puVar21)" identifier = (call_expression "sg_get_llnum(puVar21)" identifier (argument_list "(puVar21)" ( identifier )))) ;) (if_statement "if (uVar16 == 0xffffffffffffffff) break;" if (parenthesized_expression "(uVar16 == 0xffffffffffffffff)" ( (binary_expression "uVar16 == 0xffffffffffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar11 = (int)(iVar10 + uVar23) >> 1;" (assignment_expression "iVar11 = (int)(iVar10 + uVar23) >> 1" identifier = (binary_expression "(int)(iVar10 + uVar23) >> 1" (cast_expression "(int)(iVar10 + uVar23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar10 + uVar23)" ( (binary_expression "iVar10 + uVar23" identifier + identifier) ))) >> number_literal)) ;) (if_statement "if (0x7f < iVar11) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }" if (parenthesized_expression "(0x7f < iVar11)" ( (binary_expression "0x7f < iVar11" number_literal < identifier) )) (compound_statement "{\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }" { (expression_statement "pr2serr("%s: array length exceeded\n","build_joint_arr");" (call_expression "pr2serr("%s: array length exceeded\n","build_joint_arr")" identifier (argument_list "("%s: array length exceeded\n","build_joint_arr")" ( (string_literal ""%s: array length exceeded\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (if_statement "if ((iVar10 + uVar23 & 1) == 0) {\n                  addr_arr[iVar11] = uVar16;\n                }\n                else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }" if (parenthesized_expression "((iVar10 + uVar23 & 1) == 0)" ( (binary_expression "(iVar10 + uVar23 & 1) == 0" (parenthesized_expression "(iVar10 + uVar23 & 1)" ( (binary_expression "iVar10 + uVar23 & 1" (binary_expression "iVar10 + uVar23" identifier + identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  addr_arr[iVar11] = uVar16;\n                }" { (expression_statement "addr_arr[iVar11] = uVar16;" (assignment_expression "addr_arr[iVar11] = uVar16" (subscript_expression "addr_arr[iVar11]" identifier [ identifier ]) = identifier) ;) }) (else_clause "else {\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }" else (compound_statement "{\n                  if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  num_arr[iVar11] = (uint32_t)uVar16;\n                }" { (if_statement "if (0xffffffff < (long)uVar16) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }" if (parenthesized_expression "(0xffffffff < (long)uVar16)" ( (binary_expression "0xffffffff < (long)uVar16" number_literal < (cast_expression "(long)uVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }" { (expression_statement "local_ed0 = (int)local_38;" (assignment_expression "local_ed0 = (int)local_38" identifier = (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811);" (call_expression "pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811)" identifier (argument_list "("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar9 + 1,((int)puVar21 - local_ed0) + 0x811)" ( (string_literal ""%s: number exceeds 32 bits in line %d, at pos %d\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , (binary_expression "iVar9 + 1" identifier + number_literal) , (binary_expression "((int)puVar21 - local_ed0) + 0x811" (parenthesized_expression "((int)puVar21 - local_ed0)" ( (binary_expression "(int)puVar21 - local_ed0" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (expression_statement "num_arr[iVar11] = (uint32_t)uVar16;" (assignment_expression "num_arr[iVar11] = (uint32_t)uVar16" (subscript_expression "num_arr[iVar11]" identifier [ identifier ]) = (cast_expression "(uint32_t)uVar16" ( (type_descriptor "uint32_t" primitive_type) ) identifier)) ;) }))) (expression_statement "pcVar17 = strpbrk((char *)puVar21," ,\t");" (assignment_expression "pcVar17 = strpbrk((char *)puVar21," ,\t")" identifier = (call_expression "strpbrk((char *)puVar21," ,\t")" identifier (argument_list "((char *)puVar21," ,\t")" ( (cast_expression "(char *)puVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" ,\t"" " string_content escape_sequence ") )))) ;) (if_statement "if (pcVar17 == (char *)0x0) goto LAB_00101d62;" if (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00101d62;" goto statement_identifier ;)) (expression_statement "sVar18 = strspn(pcVar17," ,\t");" (assignment_expression "sVar18 = strspn(pcVar17," ,\t")" identifier = (call_expression "strspn(pcVar17," ,\t")" identifier (argument_list "(pcVar17," ,\t")" ( identifier , (string_literal "" ,\t"" " string_content escape_sequence ") )))) ;) (expression_statement "puVar21 = (uint8_t *)(pcVar17 + sVar18);" (assignment_expression "puVar21 = (uint8_t *)(pcVar17 + sVar18)" identifier = (cast_expression "(uint8_t *)(pcVar17 + sVar18)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + sVar18)" ( (binary_expression "pcVar17 + sVar18" identifier + identifier) )))) ;) (if_statement "if ((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)) goto LAB_00101d62;" if (parenthesized_expression "((*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400))" ( (binary_expression "(*puVar21 == '\0') || (iVar10 = iVar10 + 1, iVar10 == 0x400)" (parenthesized_expression "(*puVar21 == '\0')" ( (binary_expression "*puVar21 == '\0'" (pointer_expression "*puVar21" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar10 = iVar10 + 1, iVar10 == 0x400)" ( (comma_expression "iVar10 = iVar10 + 1, iVar10 == 0x400" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) , (binary_expression "iVar10 == 0x400" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00101d62;" goto statement_identifier ;)) }))) (if_statement "if (*puVar21 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }" if (parenthesized_expression "(*puVar21 != '#')" ( (binary_expression "*puVar21 != '#'" (pointer_expression "*puVar21" * identifier) != (char_literal "'#'" ' character ')) )) (compound_statement "{\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }" { (expression_statement "local_ed0 = (int)local_38;" (assignment_expression "local_ed0 = (int)local_38" identifier = (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811);" (call_expression "pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811)" identifier (argument_list "("%s: error on line %d, at pos %d\n","build_joint_arr",iVar9 + 1,\n                        ((int)puVar21 - local_ed0) + 0x811)" ( (string_literal ""%s: error on line %d, at pos %d\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , (binary_expression "iVar9 + 1" identifier + number_literal) , (binary_expression "((int)puVar21 - local_ed0) + 0x811" (parenthesized_expression "((int)puVar21 - local_ed0)" ( (binary_expression "(int)puVar21 - local_ed0" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (labeled_statement "LAB_00101d62:\n              uVar23 = iVar10 + 1 + uVar23;" statement_identifier : (expression_statement "uVar23 = iVar10 + 1 + uVar23;" (assignment_expression "uVar23 = iVar10 + 1 + uVar23" identifier = (binary_expression "iVar10 + 1 + uVar23" (binary_expression "iVar10 + 1" identifier + number_literal) + identifier)) ;)) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;) })) (if_statement "if (puVar21[iVar12] == '#') {\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }" if (parenthesized_expression "(puVar21[iVar12] == '#')" ( (binary_expression "puVar21[iVar12] == '#'" (subscript_expression "puVar21[iVar12]" identifier [ identifier ]) == (char_literal "'#'" ' character ')) )) (compound_statement "{\n              iVar10 = 0;\n              goto LAB_00101d1a;\n            }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101d1a;" goto statement_identifier ;) })) (expression_statement "pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12);" (call_expression "pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12)" identifier (argument_list "("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar9 + 1,\n                    iVar11 + 1 + iVar12)" ( (string_literal ""%s: syntax error at line %d, pos %d\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , (binary_expression "iVar9 + 1" identifier + number_literal) , (binary_expression "iVar11 + 1 + iVar12" (binary_expression "iVar11 + 1" identifier + number_literal) + identifier) ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (labeled_statement "LAB_00101d67:\n          iVar9 = iVar9 + 1;" statement_identifier : (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar9 == 0x200) break;" if (parenthesized_expression "(iVar9 == 0x200)" ( (binary_expression "iVar9 == 0x200" identifier == number_literal) )) (break_statement "break;" break ;)) })) (if_statement "if ((uVar23 & 1) == 0) {\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }" if (parenthesized_expression "((uVar23 & 1) == 0)" ( (binary_expression "(uVar23 & 1) == 0" (parenthesized_expression "(uVar23 & 1)" ( (binary_expression "uVar23 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar11 = (int)uVar23 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }" { (expression_statement "iVar11 = (int)uVar23 >> 1;" (assignment_expression "iVar11 = (int)uVar23 >> 1" identifier = (binary_expression "(int)uVar23 >> 1" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }" if (parenthesized_expression "((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin))" ( (binary_expression "(local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)" (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_eb8 != stdin)" ( (binary_expression "local_eb8 != stdin" identifier != identifier) ))) )) (compound_statement "{\n            fclose(local_eb8);\n          }" { (expression_statement "fclose(local_eb8);" (call_expression "fclose(local_eb8)" identifier (argument_list "(local_eb8)" ( identifier ))) ;) })) (if_statement "if (iVar11 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            iVar9 = 1;\n            goto LAB_00101539;\n          }" { (expression_statement "pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);" (call_expression "pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0)" identifier (argument_list "("no addresses found in \'--in=\' argument, file: %s\n",local_ec0)" ( (string_literal ""no addresses found in \'--in=\' argument, file: %s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (goto_statement "goto LAB_00101e88;" goto statement_identifier ;) })) (expression_statement "pcVar17 = "stdin";" (assignment_expression "pcVar17 = "stdin"" identifier = (string_literal ""stdin"" " string_content ")) ;) (if_statement "if (!bVar3) {\n          pcVar17 = local_ec0;\n        }" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (compound_statement "{\n          pcVar17 = local_ec0;\n        }" { (expression_statement "pcVar17 = local_ec0;" (assignment_expression "pcVar17 = local_ec0" identifier = identifier) ;) })) (expression_statement "pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17);" (call_expression "pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17)" identifier (argument_list "("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar17)" ( (string_literal ""%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n"" " string_content escape_sequence string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , identifier ))) ;) (labeled_statement "LAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }" statement_identifier : (if_statement "if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }" if (parenthesized_expression "((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin))" ( (binary_expression "(local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)" (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_eb8 != stdin)" ( (binary_expression "local_eb8 != stdin" identifier != identifier) ))) )) (compound_statement "{\n          fclose(local_eb8);\n        }" { (expression_statement "fclose(local_eb8);" (call_expression "fclose(local_eb8)" identifier (argument_list "(local_eb8)" ( identifier ))) ;) }))) }) (else_clause "else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" else (compound_statement "{\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" { (expression_statement "local_eb8 = fopen64(local_ec0,"r");" (assignment_expression "local_eb8 = fopen64(local_ec0,"r")" identifier = (call_expression "fopen64(local_ec0,"r")" identifier (argument_list "(local_ec0,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (local_eb8 != (FILE *)0x0) {\n          bVar3 = false;\n          goto LAB_00101bce;\n        }" if (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bVar3 = false;\n          goto LAB_00101bce;\n        }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (goto_statement "goto LAB_00101bce;" goto statement_identifier ;) })) (expression_statement "pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);" (call_expression "pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0)" identifier (argument_list "("%s: unable to open %s\n","build_joint_arr",local_ec0)" ( (string_literal ""%s: unable to open %s\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , identifier ))) ;) }))) (expression_statement "pr2serr("bad argument to \'--in\'\n");" (call_expression "pr2serr("bad argument to \'--in\'\n")" identifier (argument_list "("bad argument to \'--in\'\n")" ( (string_literal ""bad argument to \'--in\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (if_statement "if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      usage();\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0))" ( (binary_expression "(local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)" (parenthesized_expression "(local_eb8 == (FILE *)0x0)" ( (binary_expression "local_eb8 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_eb0 == (char *)0x0)" ( (binary_expression "local_eb0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      usage();\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }" { (if_statement "if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" if (parenthesized_expression "(local_eb8 == (FILE *)0x0)" ( (binary_expression "local_eb8 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }" { (expression_statement "pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");" (call_expression "pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n")" identifier (argument_list "("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n")" ( (string_literal ""expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) }) (else_clause "else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" else (compound_statement "{\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" { (expression_statement "pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");" (call_expression "pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n")" identifier (argument_list "("since \'--lba=\' is given, also need \'--num=\'\n\n")" ( (string_literal ""since \'--lba=\' is given, also need \'--num=\'\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) }))) (expression_statement "usage();" (call_expression "usage()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = 0x1f;" (assignment_expression "iVar9 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "puVar24 = addr_arr;" (assignment_expression "puVar24 = addr_arr" identifier = identifier) ;) (for_statement "for (lVar19 = 0x80; lVar19 != 0; lVar19 = lVar19 + -1) {\n      *puVar24 = 0;\n      puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n    }" for ( (assignment_expression "lVar19 = 0x80" identifier = number_literal) ; (binary_expression "lVar19 != 0" identifier != number_literal) ; (assignment_expression "lVar19 = lVar19 + -1" identifier = (binary_expression "lVar19 + -1" identifier + number_literal)) ) (compound_statement "{\n      *puVar24 = 0;\n      puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;\n    }" { (expression_statement "*puVar24 = 0;" (assignment_expression "*puVar24 = 0" (pointer_expression "*puVar24" * identifier) = number_literal) ;) (expression_statement "puVar24 = puVar24 + (ulong)bVar29 * -2 + 1;" (assignment_expression "puVar24 = puVar24 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "puVar24 + (ulong)bVar29 * -2 + 1" (binary_expression "puVar24 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "puVar25 = num_arr;" (assignment_expression "puVar25 = num_arr" identifier = identifier) ;) (for_statement "for (lVar19 = 0x40; lVar19 != 0; lVar19 = lVar19 + -1) {\n      puVar25[0] = 0;\n      puVar25[1] = 0;\n      puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n    }" for ( (assignment_expression "lVar19 = 0x40" identifier = number_literal) ; (binary_expression "lVar19 != 0" identifier != number_literal) ; (assignment_expression "lVar19 = lVar19 + -1" identifier = (binary_expression "lVar19 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar25[0] = 0;\n      puVar25[1] = 0;\n      puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;\n    }" { (expression_statement "puVar25[0] = 0;" (assignment_expression "puVar25[0] = 0" (subscript_expression "puVar25[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar25[1] = 0;" (assignment_expression "puVar25[1] = 0" (subscript_expression "puVar25[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar25 = puVar25 + (ulong)bVar29 * -4 + 2;" (assignment_expression "puVar25 = puVar25 + (ulong)bVar29 * -4 + 2" identifier = (binary_expression "puVar25 + (ulong)bVar29 * -4 + 2" (binary_expression "puVar25 + (ulong)bVar29 * -4" identifier + (binary_expression "(ulong)bVar29 * -4" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (labeled_statement "LAB_001018ea:\n    lVar19 = -1;" statement_identifier : (expression_statement "lVar19 = -1;" (assignment_expression "lVar19 = -1" identifier = number_literal) ;)) (expression_statement "pFVar20 = local_eb8;" (assignment_expression "pFVar20 = local_eb8" identifier = identifier) ;) (do_statement "do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *(char *)pFVar20;\n      pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);\n    } while (cVar8 != '\0');" do (compound_statement "{\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *(char *)pFVar20;\n      pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);\n    }" { (if_statement "if (lVar19 == 0) break;" if (parenthesized_expression "(lVar19 == 0)" ( (binary_expression "lVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar19 = lVar19 + -1;" (assignment_expression "lVar19 = lVar19 + -1" identifier = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (expression_statement "cVar8 = *(char *)pFVar20;" (assignment_expression "cVar8 = *(char *)pFVar20" identifier = (pointer_expression "*(char *)pFVar20" * (cast_expression "(char *)pFVar20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1);" (assignment_expression "pFVar20 = (FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1)" identifier = (cast_expression "(FILE *)((long)pFVar20 + (ulong)bVar29 * -2 + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pFVar20 + (ulong)bVar29 * -2 + 1)" ( (binary_expression "(long)pFVar20 + (ulong)bVar29 * -2 + 1" (binary_expression "(long)pFVar20 + (ulong)bVar29 * -2" (cast_expression "(long)pFVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(*(char *)local_eb8 == '-')" ( (binary_expression "*(char *)local_eb8 == '-'" (pointer_expression "*(char *)local_eb8" * (cast_expression "(char *)local_eb8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("\'--lba\' cannot be read from stdin\n");" (call_expression "pr2serr("\'--lba\' cannot be read from stdin\n")" identifier (argument_list "("\'--lba\' cannot be read from stdin\n")" ( (string_literal ""\'--lba\' cannot be read from stdin\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (labeled_statement "LAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");" statement_identifier : (expression_statement "pr2serr("bad argument to \'--lba\'\n");" (call_expression "pr2serr("bad argument to \'--lba\'\n")" identifier (argument_list "("bad argument to \'--lba\'\n")" ( (string_literal ""bad argument to \'--lba\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;)) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "sVar18 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");" (assignment_expression "sVar18 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier = (call_expression "strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier (argument_list "((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" ( (cast_expression "(char *)local_eb8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, "" " string_content ") )))) ;) (if_statement "if (~(uint)lVar19 - 1 != (int)sVar18) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_001019b7;\n    }" if (parenthesized_expression "(~(uint)lVar19 - 1 != (int)sVar18)" ( (binary_expression "~(uint)lVar19 - 1 != (int)sVar18" (binary_expression "~(uint)lVar19 - 1" (unary_expression "~(uint)lVar19" ~ (cast_expression "(uint)lVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal) != (cast_expression "(int)sVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_001019b7;\n    }" { (expression_statement "pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1);" (call_expression "pr2serr("build_lba_arr: error at pos %d\n",(int)sVar18 + 1)" identifier (argument_list "("build_lba_arr: error at pos %d\n",(int)sVar18 + 1)" ( (string_literal ""build_lba_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "(int)sVar18 + 1" (cast_expression "(int)sVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (goto_statement "goto LAB_001019b7;" goto statement_identifier ;) })) (expression_statement "lVar19 = 0;" (assignment_expression "lVar19 = 0" identifier = number_literal) ;) (expression_statement "pFVar20 = local_eb8;" (assignment_expression "pFVar20 = local_eb8" identifier = identifier) ;) (do_statement "do {\n      iVar9 = (int)lVar19;\n      uVar16 = sg_get_llnum(pFVar20);\n      if (uVar16 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      addr_arr[lVar19] = uVar16;\n      pcVar14 = strchr((char *)pFVar20,0x2c);\n      pcVar17 = strchr((char *)pFVar20,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_001019db:\n      pFVar20 = (FILE *)(pcVar17 + 1);\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);" do (compound_statement "{\n      iVar9 = (int)lVar19;\n      uVar16 = sg_get_llnum(pFVar20);\n      if (uVar16 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      addr_arr[lVar19] = uVar16;\n      pcVar14 = strchr((char *)pFVar20,0x2c);\n      pcVar17 = strchr((char *)pFVar20,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_001019db:\n      pFVar20 = (FILE *)(pcVar17 + 1);\n      lVar19 = lVar19 + 1;\n    }" { (expression_statement "iVar9 = (int)lVar19;" (assignment_expression "iVar9 = (int)lVar19" identifier = (cast_expression "(int)lVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar16 = sg_get_llnum(pFVar20);" (assignment_expression "uVar16 = sg_get_llnum(pFVar20)" identifier = (call_expression "sg_get_llnum(pFVar20)" identifier (argument_list "(pFVar20)" ( identifier )))) ;) (if_statement "if (uVar16 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }" if (parenthesized_expression "(uVar16 == 0xffffffffffffffff)" ( (binary_expression "uVar16 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }" { (expression_statement "pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1);" (call_expression "pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1)" identifier (argument_list "("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)local_eb8) + 1)" ( (string_literal ""build_lba_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "((int)pFVar20 - (int)local_eb8) + 1" (parenthesized_expression "((int)pFVar20 - (int)local_eb8)" ( (binary_expression "(int)pFVar20 - (int)local_eb8" (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_eb8" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) ))) ;) (goto_statement "goto LAB_001019b7;" goto statement_identifier ;) })) (expression_statement "addr_arr[lVar19] = uVar16;" (assignment_expression "addr_arr[lVar19] = uVar16" (subscript_expression "addr_arr[lVar19]" identifier [ identifier ]) = identifier) ;) (expression_statement "pcVar14 = strchr((char *)pFVar20,0x2c);" (assignment_expression "pcVar14 = strchr((char *)pFVar20,0x2c)" identifier = (call_expression "strchr((char *)pFVar20,0x2c)" identifier (argument_list "((char *)pFVar20,0x2c)" ( (cast_expression "(char *)pFVar20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pcVar17 = strchr((char *)pFVar20,0x20);" (assignment_expression "pcVar17 = strchr((char *)pFVar20,0x20)" identifier = (call_expression "strchr((char *)pFVar20,0x20)" identifier (argument_list "((char *)pFVar20,0x20)" ( (cast_expression "(char *)pFVar20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar17 != (char *)0x0) goto LAB_001019db;\n        iVar11 = iVar9 + 1;\n        goto LAB_00102805;\n      }" { (if_statement "if (pcVar17 != (char *)0x0) goto LAB_001019db;" if (parenthesized_expression "(pcVar17 != (char *)0x0)" ( (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001019db;" goto statement_identifier ;)) (expression_statement "iVar11 = iVar9 + 1;" (assignment_expression "iVar11 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00102805;" goto statement_identifier ;) })) (if_statement "if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }" if (parenthesized_expression "((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17))" ( (binary_expression "(pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)" (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar14 <= pcVar17)" ( (binary_expression "pcVar14 <= pcVar17" identifier <= identifier) ))) )) (compound_statement "{\n        pcVar17 = pcVar14;\n      }" { (expression_statement "pcVar17 = pcVar14;" (assignment_expression "pcVar17 = pcVar14" identifier = identifier) ;) })) (labeled_statement "LAB_001019db:\n      pFVar20 = (FILE *)(pcVar17 + 1);" statement_identifier : (expression_statement "pFVar20 = (FILE *)(pcVar17 + 1);" (assignment_expression "pFVar20 = (FILE *)(pcVar17 + 1)" identifier = (cast_expression "(FILE *)(pcVar17 + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 1)" ( (binary_expression "pcVar17 + 1" identifier + number_literal) )))) ;)) (expression_statement "lVar19 = lVar19 + 1;" (assignment_expression "lVar19 = lVar19 + 1" identifier = (binary_expression "lVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar19 != 0x80)" ( (binary_expression "lVar19 != 0x80" identifier != number_literal) )) ;) (expression_statement "iVar11 = iVar9 + 2;" (assignment_expression "iVar11 = iVar9 + 2" identifier = (binary_expression "iVar9 + 2" identifier + number_literal)) ;) (if_statement "if (iVar9 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }" if (parenthesized_expression "(iVar9 == 0x7f)" ( (binary_expression "iVar9 == 0x7f" identifier == number_literal) )) (compound_statement "{\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }" { (expression_statement "pr2serr("build_lba_arr: array length exceeded\n");" (call_expression "pr2serr("build_lba_arr: array length exceeded\n")" identifier (argument_list "("build_lba_arr: array length exceeded\n")" ( (string_literal ""build_lba_arr: array length exceeded\n"" " string_content escape_sequence ") ))) ;) (goto_statement "goto LAB_001019b7;" goto statement_identifier ;) })) (labeled_statement "LAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }" statement_identifier : (if_statement "if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(*local_eb0 == '-')" ( (binary_expression "*local_eb0 == '-'" (pointer_expression "*local_eb0" * identifier) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      iVar9 = 1;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("\'--len\' cannot be read from stdin\n");" (call_expression "pr2serr("\'--len\' cannot be read from stdin\n")" identifier (argument_list "("\'--len\' cannot be read from stdin\n")" ( (string_literal ""\'--len\' cannot be read from stdin\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (labeled_statement "LAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");" statement_identifier : (expression_statement "pr2serr("bad argument to \'--num\'\n");" (call_expression "pr2serr("bad argument to \'--num\'\n")" identifier (argument_list "("bad argument to \'--num\'\n")" ( (string_literal ""bad argument to \'--num\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;)) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) }))) (expression_statement "lVar19 = -1;" (assignment_expression "lVar19 = -1" identifier = number_literal) ;) (expression_statement "pcVar17 = local_eb0;" (assignment_expression "pcVar17 = local_eb0" identifier = identifier) ;) (do_statement "do {\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *pcVar17;\n      pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n    } while (cVar8 != '\0');" do (compound_statement "{\n      if (lVar19 == 0) break;\n      lVar19 = lVar19 + -1;\n      cVar8 = *pcVar17;\n      pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;\n    }" { (if_statement "if (lVar19 == 0) break;" if (parenthesized_expression "(lVar19 == 0)" ( (binary_expression "lVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar19 = lVar19 + -1;" (assignment_expression "lVar19 = lVar19 + -1" identifier = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (expression_statement "cVar8 = *pcVar17;" (assignment_expression "cVar8 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (expression_statement "pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pcVar17 + (ulong)bVar29 * -2 + 1" (binary_expression "pcVar17 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "sVar18 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");" (assignment_expression "sVar18 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier = (call_expression "strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier (argument_list "(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" ( identifier , (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, "" " string_content ") )))) ;) (if_statement "if ((int)sVar18 != ~(uint)lVar19 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_00101aa5;\n    }" if (parenthesized_expression "((int)sVar18 != ~(uint)lVar19 - 1)" ( (binary_expression "(int)sVar18 != ~(uint)lVar19 - 1" (cast_expression "(int)sVar18" ( (type_descriptor "int" primitive_type) ) identifier) != (binary_expression "~(uint)lVar19 - 1" (unary_expression "~(uint)lVar19" ~ (cast_expression "(uint)lVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) )) (compound_statement "{\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);\n      goto LAB_00101aa5;\n    }" { (expression_statement "pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1);" (call_expression "pr2serr("build_num_arr: error at pos %d\n",(int)sVar18 + 1)" identifier (argument_list "("build_num_arr: error at pos %d\n",(int)sVar18 + 1)" ( (string_literal ""build_num_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "(int)sVar18 + 1" (cast_expression "(int)sVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (expression_statement "lVar19 = 0;" (assignment_expression "lVar19 = 0" identifier = number_literal) ;) (expression_statement "pcVar17 = local_eb0;" (assignment_expression "pcVar17 = local_eb0" identifier = identifier) ;) (do_statement "do {\n      iVar9 = (int)lVar19;\n      lVar15 = sg_get_llnum(pcVar17);\n      if (lVar15 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar15) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      num_arr[lVar19] = (uint32_t)lVar15;\n      pcVar14 = strchr(pcVar17,0x2c);\n      pcVar17 = strchr(pcVar17,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_00101ae7:\n      pcVar17 = pcVar17 + 1;\n      lVar19 = lVar19 + 1;\n    } while (lVar19 != 0x80);" do (compound_statement "{\n      iVar9 = (int)lVar19;\n      lVar15 = sg_get_llnum(pcVar17);\n      if (lVar15 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar15) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      num_arr[lVar19] = (uint32_t)lVar15;\n      pcVar14 = strchr(pcVar17,0x2c);\n      pcVar17 = strchr(pcVar17,0x20);\n      if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }\nLAB_00101ae7:\n      pcVar17 = pcVar17 + 1;\n      lVar19 = lVar19 + 1;\n    }" { (expression_statement "iVar9 = (int)lVar19;" (assignment_expression "iVar9 = (int)lVar19" identifier = (cast_expression "(int)lVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar15 = sg_get_llnum(pcVar17);" (assignment_expression "lVar15 = sg_get_llnum(pcVar17)" identifier = (call_expression "sg_get_llnum(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier )))) ;) (if_statement "if (lVar15 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" if (parenthesized_expression "(lVar15 == -1)" ( (binary_expression "lVar15 == -1" identifier == number_literal) )) (compound_statement "{\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" { (expression_statement "pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1);" (call_expression "pr2serr("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1)" identifier (argument_list "("build_num_arr: error at pos %d\n",((int)pcVar17 - (int)local_eb0) + 1)" ( (string_literal ""build_num_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "((int)pcVar17 - (int)local_eb0) + 1" (parenthesized_expression "((int)pcVar17 - (int)local_eb0)" ( (binary_expression "(int)pcVar17 - (int)local_eb0" (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_eb0" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (if_statement "if (0xffffffff < lVar15) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" if (parenthesized_expression "(0xffffffff < lVar15)" ( (binary_expression "0xffffffff < lVar15" number_literal < identifier) )) (compound_statement "{\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" { (expression_statement "pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1);" (call_expression "pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1)" identifier (argument_list "("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar17 - (int)local_eb0) + 1)" ( (string_literal ""build_num_arr: number exceeds 32 bits at pos %d\n"" " string_content escape_sequence ") , (binary_expression "((int)pcVar17 - (int)local_eb0) + 1" (parenthesized_expression "((int)pcVar17 - (int)local_eb0)" ( (binary_expression "(int)pcVar17 - (int)local_eb0" (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_eb0" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (expression_statement "num_arr[lVar19] = (uint32_t)lVar15;" (assignment_expression "num_arr[lVar19] = (uint32_t)lVar15" (subscript_expression "num_arr[lVar19]" identifier [ identifier ]) = (cast_expression "(uint32_t)lVar15" ( (type_descriptor "uint32_t" primitive_type) ) identifier)) ;) (expression_statement "pcVar14 = strchr(pcVar17,0x2c);" (assignment_expression "pcVar14 = strchr(pcVar17,0x2c)" identifier = (call_expression "strchr(pcVar17,0x2c)" identifier (argument_list "(pcVar17,0x2c)" ( identifier , number_literal )))) ;) (expression_statement "pcVar17 = strchr(pcVar17,0x20);" (assignment_expression "pcVar17 = strchr(pcVar17,0x20)" identifier = (call_expression "strchr(pcVar17,0x20)" identifier (argument_list "(pcVar17,0x20)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar14 == (char *)0x0) {\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar17 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar9 + 1;\n        goto LAB_001027df;\n      }" { (if_statement "if (pcVar17 != (char *)0x0) goto LAB_00101ae7;" if (parenthesized_expression "(pcVar17 != (char *)0x0)" ( (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00101ae7;" goto statement_identifier ;)) (expression_statement "iVar10 = iVar9 + 1;" (assignment_expression "iVar10 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001027df;" goto statement_identifier ;) })) (if_statement "if ((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)) {\n        pcVar17 = pcVar14;\n      }" if (parenthesized_expression "((pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17))" ( (binary_expression "(pcVar17 == (char *)0x0) || (pcVar14 <= pcVar17)" (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar14 <= pcVar17)" ( (binary_expression "pcVar14 <= pcVar17" identifier <= identifier) ))) )) (compound_statement "{\n        pcVar17 = pcVar14;\n      }" { (expression_statement "pcVar17 = pcVar14;" (assignment_expression "pcVar17 = pcVar14" identifier = identifier) ;) })) (labeled_statement "LAB_00101ae7:\n      pcVar17 = pcVar17 + 1;" statement_identifier : (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;)) (expression_statement "lVar19 = lVar19 + 1;" (assignment_expression "lVar19 = lVar19 + 1" identifier = (binary_expression "lVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar19 != 0x80)" ( (binary_expression "lVar19 != 0x80" identifier != number_literal) )) ;) (expression_statement "iVar10 = iVar9 + 2;" (assignment_expression "iVar10 = iVar9 + 2" identifier = (binary_expression "iVar9 + 2" identifier + number_literal)) ;) (if_statement "if (iVar9 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }" if (parenthesized_expression "(iVar9 == 0x7f)" ( (binary_expression "iVar9 == 0x7f" identifier == number_literal) )) (compound_statement "{\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }" { (expression_statement "pr2serr("build_num_arr: array length exceeded\n");" (call_expression "pr2serr("build_num_arr: array length exceeded\n")" identifier (argument_list "("build_num_arr: array length exceeded\n")" ( (string_literal ""build_num_arr: array length exceeded\n"" " string_content escape_sequence ") ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (labeled_statement "LAB_001027df:\n    if ((iVar11 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }" statement_identifier : (if_statement "if ((iVar11 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "((iVar11 != iVar10) || (iVar10 < 1))" ( (binary_expression "(iVar11 != iVar10) || (iVar10 < 1)" (parenthesized_expression "(iVar11 != iVar10)" ( (binary_expression "iVar11 != iVar10" identifier != identifier) )) || (parenthesized_expression "(iVar10 < 1)" ( (binary_expression "iVar10 < 1" identifier < number_literal) ))) )) (compound_statement "{\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      iVar9 = 0x1f;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");" (call_expression "pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n")" identifier (argument_list "("need same number of arguments to \'--lba=\' and \'--num=\' options\n")" ( (string_literal ""need same number of arguments to \'--lba=\' and \'--num=\' options\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar9 = 0x1f;" (assignment_expression "iVar9 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) }))) (if_statement "if (local_ec0 != (char *)0x0) goto LAB_00101840;" if (parenthesized_expression "(local_ec0 != (char *)0x0)" ( (binary_expression "local_ec0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00101840;" goto statement_identifier ;)) (labeled_statement "LAB_00101e88:\n    iVar12 = iVar11 * 0x10 + 8;" statement_identifier : (expression_statement "iVar12 = iVar11 * 0x10 + 8;" (assignment_expression "iVar12 = iVar11 * 0x10 + 8" identifier = (binary_expression "iVar11 * 0x10 + 8" (binary_expression "iVar11 * 0x10" identifier * number_literal) + number_literal)) ;)) (expression_statement "__memset_chk(param_arr,0,(long)iVar12,0x808);" (call_expression "__memset_chk(param_arr,0,(long)iVar12,0x808)" identifier (argument_list "(param_arr,0,(long)iVar12,0x808)" ( identifier , number_literal , (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))) ;) (expression_statement "puVar22 = (uint *)param_arr;" (assignment_expression "puVar22 = (uint *)param_arr" identifier = (cast_expression "(uint *)param_arr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (for_statement "for (lVar19 = 0; (int)lVar19 < iVar11; lVar19 = lVar19 + 1) {\n      uVar28 = addr_arr[lVar19];\n      *(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n      uVar23 = num_arr[lVar19];\n      puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18;\n      puVar22 = puVar22 + 4;\n    }" for ( (assignment_expression "lVar19 = 0" identifier = number_literal) ; (binary_expression "(int)lVar19 < iVar11" (cast_expression "(int)lVar19" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) ; (assignment_expression "lVar19 = lVar19 + 1" identifier = (binary_expression "lVar19 + 1" identifier + number_literal)) ) (compound_statement "{\n      uVar28 = addr_arr[lVar19];\n      *(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;\n      uVar23 = num_arr[lVar19];\n      puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18;\n      puVar22 = puVar22 + 4;\n    }" { (expression_statement "uVar28 = addr_arr[lVar19];" (assignment_expression "uVar28 = addr_arr[lVar19]" identifier = (subscript_expression "addr_arr[lVar19]" identifier [ identifier ])) ;) (expression_statement "*(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38;" (assignment_expression "*(ulong *)(puVar22 + 2) =\n           uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38" (pointer_expression "*(ulong *)(puVar22 + 2)" * (cast_expression "(ulong *)(puVar22 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 2)" ( (binary_expression "puVar22 + 2" identifier + number_literal) )))) = (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18\n           | (uVar28 & 0xff00) << 0x28" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8 | (uVar28 & 0xff000000) << 8" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18\n           | (uVar28 & 0xff00000000) >> 8" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 | (uVar28 & 0xff0000000000) >> 0x18" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28" (binary_expression "uVar28 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar28 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar28 & 0xff000000000000)" ( (binary_expression "uVar28 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar28 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar28 & 0xff0000000000)" ( (binary_expression "uVar28 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar28 & 0xff00000000) >> 8" (parenthesized_expression "(uVar28 & 0xff00000000)" ( (binary_expression "uVar28 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar28 & 0xff000000) << 8" (parenthesized_expression "(uVar28 & 0xff000000)" ( (binary_expression "uVar28 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar28 & 0xff0000) << 0x18" (parenthesized_expression "(uVar28 & 0xff0000)" ( (binary_expression "uVar28 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar28 & 0xff00) << 0x28" (parenthesized_expression "(uVar28 & 0xff00)" ( (binary_expression "uVar28 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar28 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar23 = num_arr[lVar19];" (assignment_expression "uVar23 = num_arr[lVar19]" identifier = (subscript_expression "num_arr[lVar19]" identifier [ identifier ])) ;) (expression_statement "puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18;" (assignment_expression "puVar22[4] = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18" (subscript_expression "puVar22[4]" identifier [ number_literal ]) = (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                   uVar23 << 0x18" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8" (binary_expression "uVar23 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar23 & 0xff0000) >> 8" (parenthesized_expression "(uVar23 & 0xff0000)" ( (binary_expression "uVar23 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar23 & 0xff00) << 8" (parenthesized_expression "(uVar23 & 0xff00)" ( (binary_expression "uVar23 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar23 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar22 = puVar22 + 4;" (assignment_expression "puVar22 = puVar22 + 4" identifier = (binary_expression "puVar22 + 4" identifier + number_literal)) ;) })) (expression_statement "uVar4 = (ushort)(iVar11 * 0x10);" (assignment_expression "uVar4 = (ushort)(iVar11 * 0x10)" identifier = (call_expression "(ushort)(iVar11 * 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(iVar11 * 0x10)" ( (binary_expression "iVar11 * 0x10" identifier * number_literal) )))) ;) (expression_statement "param_arr._0_2_ = (uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8;" (assignment_expression "param_arr._0_2_ = (uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8" (field_expression "param_arr._0_2_" identifier . field_identifier) = (binary_expression "(uVar4 + 6) * 0x100 | (ushort)(uVar4 + 6) >> 8" (binary_expression "(uVar4 + 6) * 0x100" (parenthesized_expression "(uVar4 + 6)" ( (binary_expression "uVar4 + 6" identifier + number_literal) )) * number_literal) | (binary_expression "(ushort)(uVar4 + 6) >> 8" (call_expression "(ushort)(uVar4 + 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar4 + 6)" ( (binary_expression "uVar4 + 6" identifier + number_literal) ))) >> number_literal))) ;) (expression_statement "param_arr._2_2_ = uVar4 << 8 | uVar4 >> 8;" (assignment_expression "param_arr._2_2_ = uVar4 << 8 | uVar4 >> 8" (field_expression "param_arr._2_2_" identifier . field_identifier) = (binary_expression "uVar4 << 8 | uVar4 >> 8" (binary_expression "uVar4 << 8" identifier << number_literal) | (binary_expression "uVar4 >> 8" identifier >> number_literal))) ;) (expression_statement "iVar10 = sg_cmds_open_device(local_e98,0,local_ec4);" (assignment_expression "iVar10 = sg_cmds_open_device(local_e98,0,local_ec4)" identifier = (call_expression "sg_cmds_open_device(local_e98,0,local_ec4)" identifier (argument_list "(local_e98,0,local_ec4)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar10 < 0) {\nLAB_001016ce:\n      iVar9 = sg_convert_errno(-iVar10);\n      uVar13 = safe_strerror(-iVar10);\n      pr2serr("open error: %s: %s\n",local_e98,uVar13);\n    }\n    else {\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);\n      if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }\n    }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_001016ce:\n      iVar9 = sg_convert_errno(-iVar10);\n      uVar13 = safe_strerror(-iVar10);\n      pr2serr("open error: %s: %s\n",local_e98,uVar13);\n    }" { (labeled_statement "LAB_001016ce:\n      iVar9 = sg_convert_errno(-iVar10);" statement_identifier : (expression_statement "iVar9 = sg_convert_errno(-iVar10);" (assignment_expression "iVar9 = sg_convert_errno(-iVar10)" identifier = (call_expression "sg_convert_errno(-iVar10)" identifier (argument_list "(-iVar10)" ( (unary_expression "-iVar10" - identifier) )))) ;)) (expression_statement "uVar13 = safe_strerror(-iVar10);" (assignment_expression "uVar13 = safe_strerror(-iVar10)" identifier = (call_expression "safe_strerror(-iVar10)" identifier (argument_list "(-iVar10)" ( (unary_expression "-iVar10" - identifier) )))) ;) (expression_statement "pr2serr("open error: %s: %s\n",local_e98,uVar13);" (call_expression "pr2serr("open error: %s: %s\n",local_e98,uVar13)" identifier (argument_list "("open error: %s: %s\n",local_e98,uVar13)" ( (string_literal ""open error: %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) }) (else_clause "else {\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);\n      if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }\n    }" else (compound_statement "{\n      iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);\n      if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);\n      if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }\n    }" { (expression_statement "iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4);" (assignment_expression "iVar9 = sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4)" identifier = (call_expression "sg_simple_inquiry(iVar10,&inq_resp,1,local_ec4)" identifier (argument_list "(iVar10,&inq_resp,1,local_ec4)" ( identifier , (pointer_expression "&inq_resp" & identifier) , number_literal , identifier )))) ;) (if_statement "if (bVar7) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }\n      else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar22 = (uint *)param_arr;\n        for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }\n      }" { (expression_statement "pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");" (call_expression "pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n")" identifier (argument_list "("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n")" ( (string_literal ""Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "puVar22 = (uint *)param_arr;" (assignment_expression "puVar22 = (uint *)param_arr" identifier = (cast_expression "(uint *)param_arr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (for_statement "for (iVar26 = 0; iVar26 < iVar11; iVar26 = iVar26 + 1) {\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }" for ( (assignment_expression "iVar26 = 0" identifier = number_literal) ; (binary_expression "iVar26 < iVar11" identifier < identifier) ; (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ) (compound_statement "{\n          uVar23 = puVar22[4];\n          uVar28 = *(ulong *)(puVar22 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);\n          puVar22 = puVar22 + 4;\n        }" { (expression_statement "uVar23 = puVar22[4];" (assignment_expression "uVar23 = puVar22[4]" identifier = (subscript_expression "puVar22[4]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = *(ulong *)(puVar22 + 2);" (assignment_expression "uVar28 = *(ulong *)(puVar22 + 2)" identifier = (pointer_expression "*(ulong *)(puVar22 + 2)" * (cast_expression "(ulong *)(puVar22 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 2)" ( (binary_expression "puVar22 + 2" identifier + number_literal) ))))) ;) (expression_statement "__printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18);" (call_expression "__printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18)" identifier (argument_list "(1,"    0x%lx, 0x%u\n",\n                       uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38,\n                       uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18)" ( number_literal , (string_literal ""    0x%lx, 0x%u\n"" " string_content escape_sequence ") , (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28 | uVar28 << 0x38" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18 |\n                       (uVar28 & 0xff00) << 0x28" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8 | (uVar28 & 0xff0000) << 0x18" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8 |\n                       (uVar28 & 0xff000000) << 8" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18 | (uVar28 & 0xff00000000) >> 8" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28 |\n                       (uVar28 & 0xff0000000000) >> 0x18" (binary_expression "uVar28 >> 0x38 | (uVar28 & 0xff000000000000) >> 0x28" (binary_expression "uVar28 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar28 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar28 & 0xff000000000000)" ( (binary_expression "uVar28 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar28 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar28 & 0xff0000000000)" ( (binary_expression "uVar28 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar28 & 0xff00000000) >> 8" (parenthesized_expression "(uVar28 & 0xff00000000)" ( (binary_expression "uVar28 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar28 & 0xff000000) << 8" (parenthesized_expression "(uVar28 & 0xff000000)" ( (binary_expression "uVar28 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar28 & 0xff0000) << 0x18" (parenthesized_expression "(uVar28 & 0xff0000)" ( (binary_expression "uVar28 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar28 & 0xff00) << 0x28" (parenthesized_expression "(uVar28 & 0xff00)" ( (binary_expression "uVar28 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar28 << 0x38" identifier << number_literal)) , (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8" (binary_expression "uVar23 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar23 & 0xff0000) >> 8" (parenthesized_expression "(uVar23 & 0xff0000)" ( (binary_expression "uVar23 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar23 & 0xff00) << 8" (parenthesized_expression "(uVar23 & 0xff00)" ( (binary_expression "uVar23 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar23 << 0x18" identifier << number_literal)) ))) ;) (expression_statement "puVar22 = puVar22 + 4;" (assignment_expression "puVar22 = puVar22 + 4" identifier = (binary_expression "puVar22 + 4" identifier + number_literal)) ;) })) }) (else_clause "else {\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }" else (compound_statement "{\n        if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);\n        res = iVar9;\n        bVar5 = bVar7;\n        switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }\n      }" { (if_statement "if (!bVar6) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (compound_statement "{\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }" { (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision)" identifier (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,inq_resp.vendor,inq_resp.product,\n                       inq_resp.revision)" ( number_literal , (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" " string_content escape_sequence ") , identifier , (field_expression "inq_resp.vendor" identifier . field_identifier) , (field_expression "inq_resp.product" identifier . field_identifier) , (field_expression "inq_resp.revision" identifier . field_identifier) ))) ;) (expression_statement "sleep(3);" (call_expression "sleep(3)" identifier (argument_list "(3)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 15 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" identifier (argument_list "("    Some data will be LOST")" ( (string_literal ""    Some data will be LOST"" " string_content ") ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP will commence in 10 seconds");" (call_expression "puts("\nAn UNMAP will commence in 10 seconds")" identifier (argument_list "("\nAn UNMAP will commence in 10 seconds")" ( (string_literal ""\nAn UNMAP will commence in 10 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" identifier (argument_list "("    Some data will be LOST")" ( (string_literal ""    Some data will be LOST"" " string_content ") ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 5 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" identifier (argument_list "("    Some data will be LOST")" ( (string_literal ""    Some data will be LOST"" " string_content ") ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(7);" (call_expression "sleep(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4);" (assignment_expression "iVar9 = sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4)" identifier = (call_expression "sg_ll_unmap_v2(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4)" identifier (argument_list "(iVar10,local_e9d,local_e9c,iVar26,param_arr,iVar12,1,local_ec4)" ( identifier , identifier , identifier , identifier , identifier , identifier , number_literal , identifier )))) ;) (expression_statement "res = iVar9;" (assignment_expression "res = iVar9" identifier = identifier) ;) (expression_statement "bVar5 = bVar7;" (assignment_expression "bVar5 = bVar7" identifier = identifier) ;) (switch_statement "switch(iVar9) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }" switch (parenthesized_expression "(iVar9)" ( identifier )) (compound_statement "{\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;\n        }" { (case_statement "case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar5 = true;\n          break;" case number_literal : (expression_statement "pr2serr("UNMAP failed, device not ready\n");" (call_expression "pr2serr("UNMAP failed, device not ready\n")" identifier (argument_list "("UNMAP failed, device not ready\n")" ( (string_literal ""UNMAP failed, device not ready\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar5 = true;\n          break;" case number_literal : (expression_statement "pr2serr("bad field in UNMAP cdb\n");" (call_expression "pr2serr("bad field in UNMAP cdb\n")" identifier (argument_list "("bad field in UNMAP cdb\n")" ( (string_literal ""bad field in UNMAP cdb\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar5 = true;\n          break;" case number_literal : (expression_statement "pr2serr("UNMAP, unit attention\n");" (call_expression "pr2serr("UNMAP, unit attention\n")" identifier (argument_list "("UNMAP, unit attention\n")" ( (string_literal ""UNMAP, unit attention\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar5 = true;\n          break;" case number_literal : (expression_statement "pr2serr("UNMAP not supported\n");" (call_expression "pr2serr("UNMAP not supported\n")" identifier (argument_list "("UNMAP not supported\n")" ( (string_literal ""UNMAP not supported\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar5 = true;" case number_literal : (expression_statement "pr2serr("UNMAP, aborted command\n");" (call_expression "pr2serr("UNMAP, aborted command\n")" identifier (argument_list "("UNMAP, aborted command\n")" ( (string_literal ""UNMAP, aborted command\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;)) })) }))) (labeled_statement "switchD_00101fe9_caseD_3:\n      res = sg_cmds_close_device(iVar10);" statement_identifier : (expression_statement "res = sg_cmds_close_device(iVar10);" (assignment_expression "res = sg_cmds_close_device(iVar10)" identifier = (call_expression "sg_cmds_close_device(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;)) (if_statement "if (res < 0) {\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }" if (parenthesized_expression "(res < 0)" ( (binary_expression "res < 0" identifier < number_literal) )) (compound_statement "{\n        uVar13 = safe_strerror(-res);\n        pr2serr("close error: %s\n",uVar13);\n        if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }\n      }" { (expression_statement "uVar13 = safe_strerror(-res);" (assignment_expression "uVar13 = safe_strerror(-res)" identifier = (call_expression "safe_strerror(-res)" identifier (argument_list "(-res)" ( (unary_expression "-res" - identifier) )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar13);" (call_expression "pr2serr("close error: %s\n",uVar13)" identifier (argument_list "("close error: %s\n",uVar13)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (iVar9 == 0) {\n          iVar9 = sg_convert_errno(-res);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar9 = sg_convert_errno(-res);\n        }" { (expression_statement "iVar9 = sg_convert_errno(-res);" (assignment_expression "iVar9 = sg_convert_errno(-res)" identifier = (call_expression "sg_convert_errno(-res)" identifier (argument_list "(-res)" ( (unary_expression "-res" - identifier) )))) ;) })) })) }))) (if_statement "if (((local_ec4 == 0) && (!bVar5)) &&\n       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }" if (parenthesized_expression "(((local_ec4 == 0) && (!bVar5)) &&\n       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0'))" ( (binary_expression "((local_ec4 == 0) && (!bVar5)) &&\n       (cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')" (parenthesized_expression "((local_ec4 == 0) && (!bVar5))" ( (binary_expression "(local_ec4 == 0) && (!bVar5)" (parenthesized_expression "(local_ec4 == 0)" ( (binary_expression "local_ec4 == 0" identifier == number_literal) )) && (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) ))) )) && (parenthesized_expression "(cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0')" ( (comma_expression "cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9), cVar8 == '\0'" (assignment_expression "cVar8 = sg_if_can2stderr("sg_unmap failed: ",iVar9)" identifier = (call_expression "sg_if_can2stderr("sg_unmap failed: ",iVar9)" identifier (argument_list "("sg_unmap failed: ",iVar9)" ( (string_literal ""sg_unmap failed: "" " string_content ") , identifier )))) , (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }" { (expression_statement "pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");" (call_expression "pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n")" identifier (argument_list "("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n")" ( (string_literal ""Some error occurred, try again with \'-v\' or \'-vv\' for more information\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) })) (if_statement "if (iVar9 < 0) {\n      iVar9 = 99;\n    }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar9 = 99;\n    }" { (expression_statement "iVar9 = 99;" (assignment_expression "iVar9 = 99" identifier = number_literal) ;) })) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })))) (expression_statement "pr2serr("version: %s\n","1.17 20180628");" (call_expression "pr2serr("version: %s\n","1.17 20180628")" identifier (argument_list "("version: %s\n","1.17 20180628")" ( (string_literal ""version: %s\n"" " string_content escape_sequence ") , (string_literal ""1.17 20180628"" " string_content ") ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) (labeled_statement "LAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");" statement_identifier : (expression_statement "pr2serr("value for \'--grpnum=\' must be 0 to 63\n");" (call_expression "pr2serr("value for \'--grpnum=\' must be 0 to 63\n")" identifier (argument_list "("value for \'--grpnum=\' must be 0 to 63\n")" ( (string_literal ""value for \'--grpnum=\' must be 0 to 63\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;)) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) (labeled_statement "LAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  } while (optind < argc);" statement_identifier : (do_statement "do {\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  } while (optind < argc);" do (compound_statement "{\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  }" { (expression_statement "pr2serr("Unexpected extra argument: %s\n",argv[optind]);" (call_expression "pr2serr("Unexpected extra argument: %s\n",argv[optind])" identifier (argument_list "("Unexpected extra argument: %s\n",argv[optind])" ( (string_literal ""Unexpected extra argument: %s\n"" " string_content escape_sequence ") , (subscript_expression "argv[optind]" identifier [ identifier ]) ))) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(optind < argc)" ( (binary_expression "optind < argc" identifier < identifier) )) ;)) (expression_statement "usage();" (call_expression "usage()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00101539:\n  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar9;\n  }" statement_identifier : (if_statement "if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar9;\n  }" if (parenthesized_expression "(lVar2 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar2 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar9;\n  }" { (return_statement "return iVar9;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "uint FUN_00101300(int param_1,long param_2)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  char *pcVar13;\n  long lVar14;\n  char *pcVar15;\n  size_t sVar16;\n  long lVar17;\n  FILE *pFVar18;\n  uint *puVar19;\n  uint uVar20;\n  ulong *puVar21;\n  int iVar22;\n  ulong uVar23;\n  ulong uVar24;\n  long in_FS_OFFSET;\n  byte bVar25;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  uint local_e9c;\n  long local_e98;\n  ulong local_e90;\n  uint local_e80 [2];\n  undefined1 local_e78 [8];\n  undefined1 local_e70 [9];\n  undefined1 local_e67 [17];\n  undefined1 local_e56 [14];\n  uint local_e48 [128];\n  ulong local_c48 [128];\n  undefined4 local_848;\n  uint uStack_844;\n  ulong local_840;\n  uint local_838 [510];\n  long local_40;\n  undefined1 local_38 [8];\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar24 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar22 = 0x3c;\n  local_e9c = 0;\n  bVar1 = false;\n  bVar3 = false;\n  bVar5 = false;\n  bVar4 = false;\n  local_e9d = 0;\n  while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }\n  if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }\n  if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  uVar8 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  uVar8 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  FUN_001012d5();\n  uVar8 = 1;\nLAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "uint FUN_00101300(int param_1,long param_2)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  char *pcVar13;\n  long lVar14;\n  char *pcVar15;\n  size_t sVar16;\n  long lVar17;\n  FILE *pFVar18;\n  uint *puVar19;\n  uint uVar20;\n  ulong *puVar21;\n  int iVar22;\n  ulong uVar23;\n  ulong uVar24;\n  long in_FS_OFFSET;\n  byte bVar25;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  uint local_e9c;\n  long local_e98;\n  ulong local_e90;\n  uint local_e80 [2];\n  undefined1 local_e78 [8];\n  undefined1 local_e70 [9];\n  undefined1 local_e67 [17];\n  undefined1 local_e56 [14];\n  uint local_e48 [128];\n  ulong local_c48 [128];\n  undefined4 local_848;\n  uint uStack_844;\n  ulong local_840;\n  uint local_838 [510];\n  long local_40;\n  undefined1 local_38 [8];\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar24 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar22 = 0x3c;\n  local_e9c = 0;\n  bVar1 = false;\n  bVar3 = false;\n  bVar5 = false;\n  bVar4 = false;\n  local_e9d = 0;\n  while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }\n  if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }\n  if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  uVar8 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  uVar8 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  FUN_001012d5();\n  uVar8 = 1;\nLAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    \n  __stack_chk_fail();\n}" type_identifier (function_declarator "FUN_00101300(int param_1,long param_2)" identifier (parameter_list "(int param_1,long param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  char *pcVar13;\n  long lVar14;\n  char *pcVar15;\n  size_t sVar16;\n  long lVar17;\n  FILE *pFVar18;\n  uint *puVar19;\n  uint uVar20;\n  ulong *puVar21;\n  int iVar22;\n  ulong uVar23;\n  ulong uVar24;\n  long in_FS_OFFSET;\n  byte bVar25;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  uint local_e9c;\n  long local_e98;\n  ulong local_e90;\n  uint local_e80 [2];\n  undefined1 local_e78 [8];\n  undefined1 local_e70 [9];\n  undefined1 local_e67 [17];\n  undefined1 local_e56 [14];\n  uint local_e48 [128];\n  ulong local_c48 [128];\n  undefined4 local_848;\n  uint uStack_844;\n  ulong local_840;\n  uint local_838 [510];\n  long local_40;\n  undefined1 local_38 [8];\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar24 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar22 = 0x3c;\n  local_e9c = 0;\n  bVar1 = false;\n  bVar3 = false;\n  bVar5 = false;\n  bVar4 = false;\n  local_e9d = 0;\n  while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }\n  if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }\n  if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  uVar8 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  uVar8 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  FUN_001012d5();\n  uVar8 = 1;\nLAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "size_t sVar16;" primitive_type identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "FILE *pFVar18;" type_identifier (pointer_declarator "*pFVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "ulong *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "ulong uVar24;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "int local_ed0;" primitive_type identifier ;) (declaration "int local_ec8;" primitive_type identifier ;) (declaration "int local_ec4;" primitive_type identifier ;) (declaration "char *local_ec0;" primitive_type (pointer_declarator "*local_ec0" * identifier) ;) (declaration "FILE *local_eb8;" type_identifier (pointer_declarator "*local_eb8" * identifier) ;) (declaration "char *local_eb0;" primitive_type (pointer_declarator "*local_eb0" * identifier) ;) (declaration "uint local_ea4;" type_identifier identifier ;) (declaration "undefined1 local_e9d;" type_identifier identifier ;) (declaration "uint local_e9c;" type_identifier identifier ;) (declaration "long local_e98;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong local_e90;" type_identifier identifier ;) (declaration "uint local_e80 [2];" type_identifier (array_declarator "local_e80 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e78 [8];" type_identifier (array_declarator "local_e78 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e70 [9];" type_identifier (array_declarator "local_e70 [9]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e67 [17];" type_identifier (array_declarator "local_e67 [17]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e56 [14];" type_identifier (array_declarator "local_e56 [14]" identifier [ number_literal ]) ;) (declaration "uint local_e48 [128];" type_identifier (array_declarator "local_e48 [128]" identifier [ number_literal ]) ;) (declaration "ulong local_c48 [128];" type_identifier (array_declarator "local_c48 [128]" identifier [ number_literal ]) ;) (declaration "undefined4 local_848;" type_identifier identifier ;) (declaration "uint uStack_844;" type_identifier identifier ;) (declaration "ulong local_840;" type_identifier identifier ;) (declaration "uint local_838 [510];" type_identifier (array_declarator "local_838 [510]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_38 [8];" type_identifier (array_declarator "local_38 [8]" identifier [ number_literal ]) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_ec0 = (char *)0x0;" (assignment_expression "local_ec0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_eb0 = (char *)0x0;" (assignment_expression "local_eb0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_eb8 = (FILE *)0x0;" (assignment_expression "local_eb8 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e90 = 0;" (assignment_expression "local_e90 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "local_ea4 = 0;" (assignment_expression "local_ea4 = 0" identifier = number_literal) ;) (expression_statement "local_ec4 = 0;" (assignment_expression "local_ec4 = 0" identifier = number_literal) ;) (expression_statement "iVar22 = 0x3c;" (assignment_expression "iVar22 = 0x3c" identifier = number_literal) ;) (expression_statement "local_e9c = 0;" (assignment_expression "local_e9c = 0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "local_e9d = 0;" (assignment_expression "local_e9d = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }" { (expression_statement "local_e80[1] = 0;" (assignment_expression "local_e80[1] = 0" (subscript_expression "local_e80[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);" (assignment_expression "iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1)" identifier = (call_expression "getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1)" identifier (argument_list "(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1)" ( identifier , identifier , (string_literal ""aA:dfg:hI:Hl:n:t:vV"" " string_content ") , (pointer_expression "&PTR_DAT_00106020" & identifier) , (binary_expression "local_e80 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar15 = optarg;" (assignment_expression "pcVar15 = optarg" identifier = identifier) ;) (if_statement "if (iVar7 == -1) break;" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (switch_statement "switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }" switch (parenthesized_expression "(iVar7)" ( identifier )) (compound_statement "{\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }" { (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;" case number_literal : (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;)) (case_statement "default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;" default : (expression_statement "pr2serr("unrecognised option code 0x%x ??\n",iVar7);" (call_expression "pr2serr("unrecognised option code 0x%x ??\n",iVar7)" identifier (argument_list "("unrecognised option code 0x%x ??\n",iVar7)" ( (string_literal ""unrecognised option code 0x%x ??\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;)) (case_statement "case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;" case number_literal : (expression_statement "pcVar13 = strchr(optarg,0x2c);" (assignment_expression "pcVar13 = strchr(optarg,0x2c)" identifier = (call_expression "strchr(optarg,0x2c)" identifier (argument_list "(optarg,0x2c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");" (call_expression "pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n")" identifier (argument_list "("--all=ST,RN[,LA] expects at least one comma in argument, found none\n")" ( (string_literal ""--all=ST,RN[,LA] expects at least one comma in argument, found none\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "uVar24 = sg_get_llnum(pcVar15);" (assignment_expression "uVar24 = sg_get_llnum(pcVar15)" identifier = (call_expression "sg_get_llnum(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (if_statement "if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "((long)uVar24 < 0)" ( (binary_expression "(long)uVar24 < 0" (cast_expression "(long)uVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("unable to decode --all=ST,.... (starting LBA)\n");" (call_expression "pr2serr("unable to decode --all=ST,.... (starting LBA)\n")" identifier (argument_list "("unable to decode --all=ST,.... (starting LBA)\n")" ( (string_literal ""unable to decode --all=ST,.... (starting LBA)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "uVar23 = sg_get_llnum(pcVar13 + 1);" (assignment_expression "uVar23 = sg_get_llnum(pcVar13 + 1)" identifier = (call_expression "sg_get_llnum(pcVar13 + 1)" identifier (argument_list "(pcVar13 + 1)" ( (binary_expression "pcVar13 + 1" identifier + number_literal) )))) ;) (if_statement "if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(0xffffffff < uVar23)" ( (binary_expression "0xffffffff < uVar23" number_literal < identifier) )) (compound_statement "{\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");" (call_expression "pr2serr("unable to decode --all=ST,RN.... (repeat number)\n")" identifier (argument_list "("unable to decode --all=ST,RN.... (repeat number)\n")" ( (string_literal ""unable to decode --all=ST,RN.... (repeat number)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "local_ea4 = (uint)uVar23;" (assignment_expression "local_ea4 = (uint)uVar23" identifier = (cast_expression "(uint)uVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }" { (expression_statement "pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");" (call_expression "pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n")" identifier (argument_list "("warning: --all=ST,RN... being ignored because RN is 0\n")" ( (string_literal ""warning: --all=ST,RN... being ignored because RN is 0\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "pcVar15 = strchr(pcVar13 + 1,0x2c);" (assignment_expression "pcVar15 = strchr(pcVar13 + 1,0x2c)" identifier = (call_expression "strchr(pcVar13 + 1,0x2c)" identifier (argument_list "(pcVar13 + 1,0x2c)" ( (binary_expression "pcVar13 + 1" identifier + number_literal) , number_literal )))) ;) (if_statement "if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))" ( (binary_expression "(pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0)" (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0)" ( (comma_expression "local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0" (assignment_expression "local_e90 = sg_get_llnum(pcVar15 + 1)" identifier = (call_expression "sg_get_llnum(pcVar15 + 1)" identifier (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) , (binary_expression "(long)local_e90 < 0" (cast_expression "(long)local_e90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal)) ))) )) (compound_statement "{\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");" (call_expression "pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n")" identifier (argument_list "("unable to decode --all=ST,NR,LA (last LBA)\n")" ( (string_literal ""unable to decode --all=ST,NR,LA (last LBA)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x49:\n      local_ec0 = optarg;\n      break;" case number_literal : (expression_statement "local_ec0 = optarg;" (assignment_expression "local_ec0 = optarg" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x56:\n      bVar1 = true;\n      break;" case number_literal : (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x61:\n      local_e9d = 1;\n      break;" case number_literal : (expression_statement "local_e9d = 1;" (assignment_expression "local_e9d = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 100:\n      bVar5 = true;\n      break;" case number_literal : (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x66:\n      bVar4 = true;\n      break;" case number_literal : (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;" case number_literal : (expression_statement "iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);" (assignment_expression "iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80)" identifier = (call_expression "__isoc99_sscanf(optarg,&DAT_00103ffa,local_e80)" identifier (argument_list "(optarg,&DAT_00103ffa,local_e80)" ( identifier , (pointer_expression "&DAT_00103ffa" & identifier) , identifier )))) ;) (if_statement "if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;" if (parenthesized_expression "((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0]))" ( (binary_expression "(iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])" (parenthesized_expression "(iVar7 != 1)" ( (binary_expression "iVar7 != 1" identifier != number_literal) )) || (parenthesized_expression "(local_e9c = local_e80[0], 0x3f < local_e80[0])" ( (comma_expression "local_e9c = local_e80[0], 0x3f < local_e80[0]" (assignment_expression "local_e9c = local_e80[0]" identifier = (subscript_expression "local_e80[0]" identifier [ number_literal ])) , (binary_expression "0x3f < local_e80[0]" number_literal < (subscript_expression "local_e80[0]" identifier [ number_literal ]))) ))) )) (goto_statement "goto LAB_00101512;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;" case number_literal : (expression_statement "local_eb8 = (FILE *)optarg;" (assignment_expression "local_eb8 = (FILE *)optarg" identifier = (cast_expression "(FILE *)optarg" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x6e:\n      local_eb0 = optarg;\n      break;" case number_literal : (expression_statement "local_eb0 = optarg;" (assignment_expression "local_eb0 = optarg" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;" case number_literal : (expression_statement "iVar22 = sg_get_num(optarg);" (assignment_expression "iVar22 = sg_get_num(optarg)" identifier = (call_expression "sg_get_num(optarg)" identifier (argument_list "(optarg)" ( identifier )))) ;) (if_statement "if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(iVar22 < 0)" ( (binary_expression "iVar22 < 0" identifier < number_literal) )) (compound_statement "{\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("bad argument to \'--timeout\'\n");" (call_expression "pr2serr("bad argument to \'--timeout\'\n")" identifier (argument_list "("bad argument to \'--timeout\'\n")" ( (string_literal ""bad argument to \'--timeout\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (if_statement "if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar22 = 0x3c;\n      }" { (expression_statement "iVar22 = 0x3c;" (assignment_expression "iVar22 = 0x3c" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;" case number_literal : (expression_statement "local_ec4 = local_ec4 + 1;" (assignment_expression "local_ec4 = local_ec4 + 1" identifier = (binary_expression "local_ec4 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;)) })) })) (if_statement "if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }" if (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) (compound_statement "{\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }" { (expression_statement "local_e98 = *(long *)(param_2 + (long)optind * 8);" (assignment_expression "local_e98 = *(long *)(param_2 + (long)optind * 8)" identifier = (pointer_expression "*(long *)(param_2 + (long)optind * 8)" * (cast_expression "(long *)(param_2 + (long)optind * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + (long)optind * 8)" ( (binary_expression "param_2 + (long)optind * 8" identifier + (binary_expression "(long)optind * 8" (cast_expression "(long)optind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ))))) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) (if_statement "if (optind < param_1) goto LAB_0010172e;" if (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) (goto_statement "goto LAB_0010172e;" goto statement_identifier ;)) }) (else_clause "else {\n    local_e98 = 0;\n  }" else (compound_statement "{\n    local_e98 = 0;\n  }" { (expression_statement "local_e98 = 0;" (assignment_expression "local_e98 = 0" identifier = number_literal) ;) }))) (if_statement "if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" if (parenthesized_expression "((bVar3) && (bVar1))" ( (binary_expression "(bVar3) && (bVar1)" (parenthesized_expression "(bVar3)" ( identifier )) && (parenthesized_expression "(bVar1)" ( identifier ))) )) (compound_statement "{\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }" { (expression_statement "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (call_expression "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" identifier (argument_list "("Not in DEBUG mode, so \'-vV\' has no special action\n")" ( (string_literal ""Not in DEBUG mode, so \'-vV\' has no special action\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) }) (else_clause "else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" else (if_statement "if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" { (if_statement "if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(local_e98 == 0)" ( (binary_expression "local_e98 == 0" identifier == number_literal) )) (compound_statement "{\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("missing device name!\n\n");" (call_expression "pr2serr("missing device name!\n\n")" identifier (argument_list "("missing device name!\n\n")" ( (string_literal ""missing device name!\n\n"" " string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (if_statement "if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }" if (parenthesized_expression "(local_ea4 != 0)" ( (binary_expression "local_ea4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }" { (if_statement "if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0))" ( (binary_expression "local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" (binary_expression "local_ec0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0" (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_eb0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");" (call_expression "pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n")" identifier (argument_list "("Can\'t have --all= together with --lba=, --num= or --in=\n\n")" ( (string_literal ""Can\'t have --all= together with --lba=, --num= or --in=\n\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "bVar1 = local_e90 < uVar24 && local_e90 != 0;" (assignment_expression "bVar1 = local_e90 < uVar24 && local_e90 != 0" identifier = (binary_expression "local_e90 < uVar24 && local_e90 != 0" (binary_expression "local_e90 < uVar24" identifier < identifier) && (binary_expression "local_e90 != 0" identifier != number_literal))) ;) (if_statement "if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");" (call_expression "pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n")" identifier (argument_list "("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n")" ( (string_literal ""in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);" (assignment_expression "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4)" identifier = (call_expression "sg_cmds_open_device(local_e98,0,local_ec4)" identifier (argument_list "(local_e98,0,local_ec4)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 < 0) goto LAB_001016ce;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto LAB_001016ce;" goto statement_identifier ;)) (expression_statement "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);" (assignment_expression "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" identifier = (call_expression "sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" identifier (argument_list "(iVar7,local_e78,1,local_ec4)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "bVar3 = bVar1;" (assignment_expression "bVar3 = bVar1" identifier = identifier) ;) (if_statement "if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" if (parenthesized_expression "(local_e90 == 0)" ( (binary_expression "local_e90 == 0" identifier == number_literal) )) (compound_statement "{\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }" { (expression_statement "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);" (assignment_expression "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" identifier (argument_list "(iVar7,0,0,&local_848,0x20,1,local_ec4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_848" & identifier) , number_literal , number_literal , identifier )))) ;) (if_statement "if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }" if (parenthesized_expression "(local_e80[0] == 6)" ( (binary_expression "local_e80[0] == 6" (subscript_expression "local_e80[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }" { (expression_statement "pr2serr("Read capacity(16) unit attention, try again\n");" (call_expression "pr2serr("Read capacity(16) unit attention, try again\n")" identifier (argument_list "("Read capacity(16) unit attention, try again\n")" ( (string_literal ""Read capacity(16) unit attention, try again\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);" (assignment_expression "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" identifier (argument_list "(iVar7,0,0,&local_848,0x20,1,local_ec4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_848" & identifier) , number_literal , number_literal , identifier )))) ;) })) (if_statement "if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }" if (parenthesized_expression "(local_e80[0] == 0)" ( (binary_expression "local_e80[0] == 0" (subscript_expression "local_e80[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }" { (if_statement "if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }" if (parenthesized_expression "(3 < local_ec4)" ( (binary_expression "3 < local_ec4" number_literal < identifier) )) (compound_statement "{\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }" { (expression_statement "pr2serr("Read capacity(16) response:\n");" (call_expression "pr2serr("Read capacity(16) response:\n")" identifier (argument_list "("Read capacity(16) response:\n")" ( (string_literal ""Read capacity(16) response:\n"" " string_content escape_sequence ") ))) ;) (expression_statement "hex2stderr(&local_848,0x20,1);" (call_expression "hex2stderr(&local_848,0x20,1)" identifier (argument_list "(&local_848,0x20,1)" ( (pointer_expression "&local_848" & identifier) , number_literal , number_literal ))) ;) })) (expression_statement "uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);" (assignment_expression "uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848)" identifier = (call_expression "CONCAT22(local_848._2_2_,(ushort)local_848)" identifier (argument_list "(local_848._2_2_,(ushort)local_848)" ( (field_expression "local_848._2_2_" identifier . field_identifier) , (cast_expression "(ushort)local_848" ( (type_descriptor "ushort" type_identifier) ) identifier) )))) ;) (expression_statement "local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;" (assignment_expression "local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38" identifier = (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28" (call_expression "(ulong)(uStack_844 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uStack_844 >> 0x18)" ( (binary_expression "uStack_844 >> 0x18" identifier >> number_literal) ))) | (binary_expression "(((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28" (parenthesized_expression "(((ulong)uStack_844 & 0xff0000) << 0x20)" ( (binary_expression "((ulong)uStack_844 & 0xff0000) << 0x20" (parenthesized_expression "((ulong)uStack_844 & 0xff0000)" ( (binary_expression "(ulong)uStack_844 & 0xff0000" (cast_expression "(ulong)uStack_844" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "(((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18" (parenthesized_expression "(((ulong)uStack_844 & 0xff00) << 0x20)" ( (binary_expression "((ulong)uStack_844 & 0xff00) << 0x20" (parenthesized_expression "((ulong)uStack_844 & 0xff00)" ( (binary_expression "(ulong)uStack_844 & 0xff00" (cast_expression "(ulong)uStack_844" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "(((ulong)uStack_844 & 0xff) << 0x20) >> 8" (parenthesized_expression "(((ulong)uStack_844 & 0xff) << 0x20)" ( (binary_expression "((ulong)uStack_844 & 0xff) << 0x20" (parenthesized_expression "((ulong)uStack_844 & 0xff)" ( (binary_expression "(ulong)uStack_844 & 0xff" (cast_expression "(ulong)uStack_844" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "((ulong)uVar20 & 0xff000000) << 8" (parenthesized_expression "((ulong)uVar20 & 0xff000000)" ( (binary_expression "(ulong)uVar20 & 0xff000000" (cast_expression "(ulong)uVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)uVar20 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)uVar20 & 0xff0000)" ( (binary_expression "(ulong)uVar20 & 0xff0000" (cast_expression "(ulong)uVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)uVar20 & 0xff00) << 0x28" (parenthesized_expression "((ulong)uVar20 & 0xff00)" ( (binary_expression "(ulong)uVar20 & 0xff00" (cast_expression "(ulong)uVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "CONCAT44(uStack_844,uVar20) << 0x38" (call_expression "CONCAT44(uStack_844,uVar20)" identifier (argument_list "(uStack_844,uVar20)" ( identifier , identifier ))) << number_literal))) ;) }) (else_clause "else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }" else (compound_statement "{\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }" { (if_statement "if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }" if (parenthesized_expression "((local_e80[0] - 5 & 0xfffffffb) != 0)" ( (binary_expression "(local_e80[0] - 5 & 0xfffffffb) != 0" (parenthesized_expression "(local_e80[0] - 5 & 0xfffffffb)" ( (binary_expression "local_e80[0] - 5 & 0xfffffffb" (binary_expression "local_e80[0] - 5" (subscript_expression "local_e80[0]" identifier [ number_literal ]) - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }" { (if_statement "if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }" if (parenthesized_expression "((int)local_e80[0] < 0)" ( (binary_expression "(int)local_e80[0] < 0" (cast_expression "(int)local_e80[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_e80[0]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }" { (expression_statement "local_e80[0] = sg_convert_errno(-local_e80[0]);" (assignment_expression "local_e80[0] = sg_convert_errno(-local_e80[0])" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_convert_errno(-local_e80[0])" identifier (argument_list "(-local_e80[0])" ( (unary_expression "-local_e80[0]" - (subscript_expression "local_e80[0]" identifier [ number_literal ])) )))) ;) })) (expression_statement "pr2serr("Read capacity(16) failed\n");" (call_expression "pr2serr("Read capacity(16) failed\n")" identifier (argument_list "("Read capacity(16) failed\n")" ( (string_literal ""Read capacity(16) failed\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = local_e80[0];" (assignment_expression "uVar8 = local_e80[0]" identifier = (subscript_expression "local_e80[0]" identifier [ number_literal ])) ;) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) (if_statement "if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }" if (parenthesized_expression "(local_ec4 == 0)" ( (binary_expression "local_ec4 == 0" identifier == number_literal) )) (compound_statement "{\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }" { (expression_statement "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);" (assignment_expression "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0)" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0)" identifier (argument_list "(iVar7,0,0,&local_848,8,1,0)" ( identifier , number_literal , number_literal , (pointer_expression "&local_848" & identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }" if (parenthesized_expression "(local_e80[0] != 0)" ( (binary_expression "local_e80[0] != 0" (subscript_expression "local_e80[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }" { (labeled_statement "LAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }" statement_identifier : (if_statement "if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }" if (parenthesized_expression "((int)local_e80[0] < 0)" ( (binary_expression "(int)local_e80[0] < 0" (cast_expression "(int)local_e80[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_e80[0]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }" { (expression_statement "local_e80[0] = sg_convert_errno(-local_e80[0]);" (assignment_expression "local_e80[0] = sg_convert_errno(-local_e80[0])" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_convert_errno(-local_e80[0])" identifier (argument_list "(-local_e80[0])" ( (unary_expression "-local_e80[0]" - (subscript_expression "local_e80[0]" identifier [ number_literal ])) )))) ;) }))) (expression_statement "pr2serr("Read capacity(10) failed\n");" (call_expression "pr2serr("Read capacity(10) failed\n")" identifier (argument_list "("Read capacity(10) failed\n")" ( (string_literal ""Read capacity(10) failed\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = local_e80[0];" (assignment_expression "uVar8 = local_e80[0]" identifier = (subscript_expression "local_e80[0]" identifier [ number_literal ])) ;) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) }) (else_clause "else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }" else (compound_statement "{\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }" { (expression_statement "pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");" (call_expression "pr2serr("Read capacity(16) not supported, try Read capacity(10)\n")" identifier (argument_list "("Read capacity(16) not supported, try Read capacity(10)\n")" ( (string_literal ""Read capacity(16) not supported, try Read capacity(10)\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);" (assignment_expression "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4)" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4)" identifier (argument_list "(iVar7,0,0,&local_848,8,1,local_ec4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_848" & identifier) , number_literal , number_literal , identifier )))) ;) (if_statement "if (local_e80[0] != 0) goto LAB_001022f0;" if (parenthesized_expression "(local_e80[0] != 0)" ( (binary_expression "local_e80[0] != 0" (subscript_expression "local_e80[0]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_001022f0;" goto statement_identifier ;)) (if_statement "if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }" if (parenthesized_expression "(3 < local_ec4)" ( (binary_expression "3 < local_ec4" number_literal < identifier) )) (compound_statement "{\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }" { (expression_statement "pr2serr("Read capacity(10) response:\n");" (call_expression "pr2serr("Read capacity(10) response:\n")" identifier (argument_list "("Read capacity(10) response:\n")" ( (string_literal ""Read capacity(10) response:\n"" " string_content escape_sequence ") ))) ;) (expression_statement "hex2stderr(&local_848,8,1);" (call_expression "hex2stderr(&local_848,8,1)" identifier (argument_list "(&local_848,8,1)" ( (pointer_expression "&local_848" & identifier) , number_literal , number_literal ))) ;) })) }))) (expression_statement "local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);" (assignment_expression "local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18)" identifier = (call_expression "(ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18)" ( (binary_expression "(uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18" (binary_expression "(uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8" (binary_expression "(uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8" (call_expression "(uint)(local_848._2_2_ >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_848._2_2_ >> 8)" ( (binary_expression "local_848._2_2_ >> 8" (field_expression "local_848._2_2_" identifier . field_identifier) >> number_literal) ))) | (binary_expression "((local_848._2_2_ & 0xff) << 0x10) >> 8" (parenthesized_expression "((local_848._2_2_ & 0xff) << 0x10)" ( (binary_expression "(local_848._2_2_ & 0xff) << 0x10" (parenthesized_expression "(local_848._2_2_ & 0xff)" ( (binary_expression "local_848._2_2_ & 0xff" (field_expression "local_848._2_2_" identifier . field_identifier) & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "((ushort)local_848 & 0xff00) << 8" (parenthesized_expression "((ushort)local_848 & 0xff00)" ( (binary_expression "(ushort)local_848 & 0xff00" (cast_expression "(ushort)local_848" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18" (call_expression "CONCAT22(local_848._2_2_,(ushort)local_848)" identifier (argument_list "(local_848._2_2_,(ushort)local_848)" ( (field_expression "local_848._2_2_" identifier . field_identifier) , (cast_expression "(ushort)local_848" ( (type_descriptor "ushort" type_identifier) ) identifier) ))) << number_literal)) )))) ;) }))) (if_statement "if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }" if (parenthesized_expression "(local_e90 < uVar24)" ( (binary_expression "local_e90 < uVar24" identifier < identifier) )) (compound_statement "{\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }" { (expression_statement "pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);" (call_expression "pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90)" identifier (argument_list "("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90)" ( (string_literal ""after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) (if_statement "if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }" { (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" identifier (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" ( number_literal , (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "sleep(3);" (call_expression "sleep(3)" identifier (argument_list "(3)" ( number_literal ))) ;) (expression_statement "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);" (call_expression "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90)" identifier (argument_list "(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90)" ( (pointer_expression "&local_848" & identifier) , number_literal , number_literal , number_literal , (string_literal ""LBA 0x%lx to end of %s (0x%lx)"" " string_content ") , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_001020d7;" goto statement_identifier ;) })) }) (else_clause "else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" else (if_statement "if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" { (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" identifier (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" ( number_literal , (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "sleep(3);" (call_expression "sleep(3)" identifier (argument_list "(3)" ( number_literal ))) ;) (expression_statement "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;" (call_expression "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)" identifier (argument_list "(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)" ( (pointer_expression "&local_848" & identifier) , number_literal , number_literal , number_literal , (string_literal ""LBA 0x%lx to 0x%lx on %s"" " string_content ") , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" statement_identifier : (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 15 seconds"" " escape_sequence string_content ") ))) ;)) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848)" identifier (argument_list "(1,"    ALL data from %s will be LOST\n",&local_848)" ( number_literal , (string_literal ""    ALL data from %s will be LOST\n"" " string_content escape_sequence ") , (pointer_expression "&local_848" & identifier) ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP will commence in 10 seconds");" (call_expression "puts("\nAn UNMAP will commence in 10 seconds")" identifier (argument_list "("\nAn UNMAP will commence in 10 seconds")" ( (string_literal ""\nAn UNMAP will commence in 10 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848)" identifier (argument_list "(1,"    ALL data from %s will be LOST\n",&local_848)" ( number_literal , (string_literal ""    ALL data from %s will be LOST\n"" " string_content escape_sequence ") , (pointer_expression "&local_848" & identifier) ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 5 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848)" identifier (argument_list "(1,"    ALL data from %s will be LOST\n",&local_848)" ( number_literal , (string_literal ""    ALL data from %s will be LOST\n"" " string_content escape_sequence ") , (pointer_expression "&local_848" & identifier) ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(7);" (call_expression "sleep(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })))) (expression_statement "local_ec8 = 0;" (assignment_expression "local_ec8 = 0" identifier = number_literal) ;) (if_statement "if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }" { (expression_statement "pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);" (call_expression "pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4)" identifier (argument_list "("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4)" ( (string_literal ""Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" else (compound_statement "{\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" { (for_statement "for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }" for ( ; (binary_expression "uVar24 <= local_e90" identifier <= identifier) ; (assignment_expression "uVar24 = uVar24 + uVar20" identifier = (binary_expression "uVar24 + uVar20" identifier + identifier)) ) (compound_statement "{\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }" { (expression_statement "uVar20 = local_ea4;" (assignment_expression "uVar20 = local_ea4" identifier = identifier) ;) (if_statement "if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }" if (parenthesized_expression "(local_e90 - uVar24 < (ulong)local_ea4)" ( (binary_expression "local_e90 - uVar24 < (ulong)local_ea4" (binary_expression "local_e90 - uVar24" identifier - identifier) < (cast_expression "(ulong)local_ea4" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) (compound_statement "{\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }" { (expression_statement "uVar20 = ((int)local_e90 + 1) - (int)uVar24;" (assignment_expression "uVar20 = ((int)local_e90 + 1) - (int)uVar24" identifier = (binary_expression "((int)local_e90 + 1) - (int)uVar24" (parenthesized_expression "((int)local_e90 + 1)" ( (binary_expression "(int)local_e90 + 1" (cast_expression "(int)local_e90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - (cast_expression "(int)uVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "uVar23 = uVar20 + uVar24;" (assignment_expression "uVar23 = uVar20 + uVar24" identifier = (binary_expression "uVar20 + uVar24" identifier + identifier)) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (while_statement "while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }" { (expression_statement "puVar19 = &uStack_844;" (assignment_expression "puVar19 = &uStack_844" identifier = (pointer_expression "&uStack_844" & identifier)) ;) (for_statement "for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }" for ( (assignment_expression "lVar17 = 5" identifier = number_literal) ; (binary_expression "lVar17 != 0" identifier != number_literal) ; (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }" { (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" * identifier) = number_literal) ;) (expression_statement "puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;" (assignment_expression "puVar19 = puVar19 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "puVar19 + (ulong)bVar25 * -2 + 1" (binary_expression "puVar19 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;" (assignment_expression "local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" identifier = (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28" (binary_expression "uVar24 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar24 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar24 & 0xff000000000000)" ( (binary_expression "uVar24 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar24 & 0xff0000000000)" ( (binary_expression "uVar24 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff00000000) >> 8" (parenthesized_expression "(uVar24 & 0xff00000000)" ( (binary_expression "uVar24 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff000000) << 8" (parenthesized_expression "(uVar24 & 0xff000000)" ( (binary_expression "uVar24 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff0000) << 0x18" (parenthesized_expression "(uVar24 & 0xff0000)" ( (binary_expression "uVar24 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff00) << 0x28" (parenthesized_expression "(uVar24 & 0xff00)" ( (binary_expression "uVar24 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar24 << 0x38" identifier << number_literal))) ;) (expression_statement "local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;" (assignment_expression "local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18" (subscript_expression "local_838[0]" identifier [ number_literal ]) = (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" ( (binary_expression "uVar20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" ( (binary_expression "uVar20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar20 << 0x18" identifier << number_literal))) ;) (expression_statement "local_848._0_2_ = 0x1600;" (assignment_expression "local_848._0_2_ = 0x1600" (field_expression "local_848._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_848._2_2_ = 0x1000;" (assignment_expression "local_848._2_2_ = 0x1000" (field_expression "local_848._2_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (if_statement "if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }" if (parenthesized_expression "(1 < local_ec4)" ( (binary_expression "1 < local_ec4" number_literal < identifier) )) (compound_statement "{\n              iVar9 = local_ec4;\n            }" { (expression_statement "iVar9 = local_ec4;" (assignment_expression "iVar9 = local_ec4" identifier = identifier) ;) })) (expression_statement "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);" (assignment_expression "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2)" identifier = (call_expression "sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2)" identifier (argument_list "(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_848" & identifier) , number_literal , number_literal , (binary_expression "iVar9 + -2" identifier + number_literal) )))) ;) (if_statement "if (bVar3) goto LAB_00102795;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00102795;" goto statement_identifier ;)) (if_statement "if (uVar8 == 0) break;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;" if (parenthesized_expression "((uVar8 != 0x16) || (uVar23 <= local_e90))" ( (binary_expression "(uVar8 != 0x16) || (uVar23 <= local_e90)" (parenthesized_expression "(uVar8 != 0x16)" ( (binary_expression "uVar8 != 0x16" identifier != number_literal) )) || (parenthesized_expression "(uVar23 <= local_e90)" ( (binary_expression "uVar23 <= local_e90" identifier <= identifier) ))) )) (goto_statement "goto LAB_00102795;" goto statement_identifier ;)) (expression_statement "pr2serr("Typical end of disk out-of-range, decrement count and retry\n");" (call_expression "pr2serr("Typical end of disk out-of-range, decrement count and retry\n")" identifier (argument_list "("Typical end of disk out-of-range, decrement count and retry\n")" ( (string_literal ""Typical end of disk out-of-range, decrement count and retry\n"" " string_content escape_sequence ") ))) ;) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" identifier = (binary_expression "uVar23 - 1" identifier - number_literal)) ;) (if_statement "if (uVar20 < 2) goto LAB_00102795;" if (parenthesized_expression "(uVar20 < 2)" ( (binary_expression "uVar20 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00102795;" goto statement_identifier ;)) (expression_statement "uVar20 = uVar20 - 1;" (assignment_expression "uVar20 = uVar20 - 1" identifier = (binary_expression "uVar20 - 1" identifier - number_literal)) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) })) (expression_statement "local_ec8 = local_ec8 + 1;" (assignment_expression "local_ec8 = local_ec8 + 1" identifier = (binary_expression "local_ec8 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00102795:\n        bVar3 = bVar5;" statement_identifier : (expression_statement "bVar3 = bVar5;" (assignment_expression "bVar3 = bVar5" identifier = identifier) ;)) (if_statement "if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }" if (parenthesized_expression "(local_ec4 != 0)" ( (binary_expression "local_ec4 != 0" identifier != number_literal) )) (compound_statement "{\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }" { (expression_statement "pr2serr("Completed %d UNMAP commands\n",local_ec8);" (call_expression "pr2serr("Completed %d UNMAP commands\n",local_ec8)" identifier (argument_list "("Completed %d UNMAP commands\n",local_ec8)" ( (string_literal ""Completed %d UNMAP commands\n"" " string_content escape_sequence ") , identifier ))) ;) })) }))) (goto_statement "goto switchD_00101fe9_caseD_3;" goto statement_identifier ;) })) (if_statement "if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(local_ec0 != (char *)0x0)" ( (binary_expression "local_ec0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" { (if_statement "if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" if (parenthesized_expression "(local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0" (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_eb0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" { (expression_statement "pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");" (call_expression "pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n")" identifier (argument_list "("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n")" ( (string_literal ""expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "puVar21 = local_c48;" (assignment_expression "puVar21 = local_c48" identifier = identifier) ;) (for_statement "for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }" for ( (assignment_expression "lVar17 = 0x80" identifier = number_literal) ; (binary_expression "lVar17 != 0" identifier != number_literal) ; (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }" { (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;" (assignment_expression "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "puVar21 + (ulong)bVar25 * -2 + 1" (binary_expression "puVar21 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "puVar19 = local_e48;" (assignment_expression "puVar19 = local_e48" identifier = identifier) ;) (for_statement "for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }" for ( (assignment_expression "lVar17 = 0x40" identifier = number_literal) ; (binary_expression "lVar17 != 0" identifier != number_literal) ; (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }" { (expression_statement "puVar19[0] = 0;" (assignment_expression "puVar19[0] = 0" (subscript_expression "puVar19[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[1] = 0;" (assignment_expression "puVar19[1] = 0" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;" (assignment_expression "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2" identifier = (binary_expression "puVar19 + ((ulong)bVar25 * -2 + 1) * 2" identifier + (binary_expression "((ulong)bVar25 * -2 + 1) * 2" (parenthesized_expression "((ulong)bVar25 * -2 + 1)" ( (binary_expression "(ulong)bVar25 * -2 + 1" (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) + number_literal) )) * number_literal))) ;) })) (if_statement "if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;" if (parenthesized_expression "((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0))" ( (binary_expression "(local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)" (parenthesized_expression "(local_eb0 != (char *)0x0)" ( (binary_expression "local_eb0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_001018ea;" goto statement_identifier ;)) (labeled_statement "LAB_00101840:\n      lVar17 = -1;" statement_identifier : (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" identifier = number_literal) ;)) (expression_statement "pcVar15 = local_ec0;" (assignment_expression "pcVar15 = local_ec0" identifier = identifier) ;) (do_statement "do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');" do (compound_statement "{\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "cVar6 = *pcVar15;" (assignment_expression "cVar6 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar15 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" if (parenthesized_expression "((lVar17 == -3) && (*local_ec0 == '-'))" ( (binary_expression "(lVar17 == -3) && (*local_ec0 == '-')" (parenthesized_expression "(lVar17 == -3)" ( (binary_expression "lVar17 == -3" identifier == number_literal) )) && (parenthesized_expression "(*local_ec0 == '-')" ( (binary_expression "*local_ec0 == '-'" (pointer_expression "*local_ec0" * identifier) == (char_literal "'-'" ' character ')) ))) )) (compound_statement "{\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }" { (expression_statement "local_eb8 = stdin;" (assignment_expression "local_eb8 = stdin" identifier = identifier) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (labeled_statement "LAB_00101bce:\n        uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (while_statement "while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }" while (parenthesized_expression "(pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0)" ( (comma_expression "pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0" (assignment_expression "pcVar15 = fgets((char *)&local_848,0x400,local_eb8)" identifier = (call_expression "fgets((char *)&local_848,0x400,local_eb8)" identifier (argument_list "((char *)&local_848,0x400,local_eb8)" ( (cast_expression "(char *)&local_848" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_848" & identifier)) , number_literal , identifier )))) , (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }" { (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" identifier = number_literal) ;) (expression_statement "pcVar15 = (char *)&local_848;" (assignment_expression "pcVar15 = (char *)&local_848" identifier = (cast_expression "(char *)&local_848" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_848" & identifier))) ;) (do_statement "do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');" do (compound_statement "{\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "cVar6 = *pcVar15;" (assignment_expression "cVar6 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar15 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar9 = ~(uint)lVar17 - 1;" (assignment_expression "iVar9 = ~(uint)lVar17 - 1" identifier = (binary_expression "~(uint)lVar17 - 1" (unary_expression "~(uint)lVar17" ~ (cast_expression "(uint)lVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (if_statement "if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }" if (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) (compound_statement "{\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }" { (expression_statement "iVar10 = ~(uint)lVar17 - 2;" (assignment_expression "iVar10 = ~(uint)lVar17 - 2" identifier = (binary_expression "~(uint)lVar17 - 2" (unary_expression "~(uint)lVar17" ~ (cast_expression "(uint)lVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (if_statement "if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;" if (parenthesized_expression "((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))" ( (binary_expression "(*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1)" (parenthesized_expression "(*(char *)((long)&local_848 + (long)iVar10) == '\n')" ( (binary_expression "*(char *)((long)&local_848 + (long)iVar10) == '\n'" (pointer_expression "*(char *)((long)&local_848 + (long)iVar10)" * (cast_expression "(char *)((long)&local_848 + (long)iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + (long)iVar10)" ( (binary_expression "(long)&local_848 + (long)iVar10" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + (cast_expression "(long)iVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) == (char_literal "'\n'" ' escape_sequence ')) )) && (parenthesized_expression "(*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1)" ( (comma_expression "*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1" (assignment_expression "*(undefined1 *)((long)&local_848 + (long)iVar10) = 0" (pointer_expression "*(undefined1 *)((long)&local_848 + (long)iVar10)" * (cast_expression "(undefined1 *)((long)&local_848 + (long)iVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + (long)iVar10)" ( (binary_expression "(long)&local_848 + (long)iVar10" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + (cast_expression "(long)iVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) = number_literal) , (comma_expression "iVar9 = iVar10, iVar10 < 1" (assignment_expression "iVar9 = iVar10" identifier = identifier) , (binary_expression "iVar10 < 1" identifier < number_literal))) ))) )) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;)) (expression_statement "sVar16 = strspn((char *)&local_848," \t");" (assignment_expression "sVar16 = strspn((char *)&local_848," \t")" identifier = (call_expression "strspn((char *)&local_848," \t")" identifier (argument_list "((char *)&local_848," \t")" ( (cast_expression "(char *)&local_848" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_848" & identifier)) , (string_literal "" \t"" " string_content escape_sequence ") )))) ;) (expression_statement "iVar10 = (int)sVar16;" (assignment_expression "iVar10 = (int)sVar16" identifier = (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar10 == iVar9) goto LAB_00101d67;" if (parenthesized_expression "(iVar10 == iVar9)" ( (binary_expression "iVar10 == iVar9" identifier == identifier) )) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;)) (expression_statement "pcVar15 = (char *)((long)&local_848 + (long)iVar10);" (assignment_expression "pcVar15 = (char *)((long)&local_848 + (long)iVar10)" identifier = (cast_expression "(char *)((long)&local_848 + (long)iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + (long)iVar10)" ( (binary_expression "(long)&local_848 + (long)iVar10" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + (cast_expression "(long)iVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if (*pcVar15 == '#') goto LAB_00101d67;" if (parenthesized_expression "(*pcVar15 == '#')" ( (binary_expression "*pcVar15 == '#'" (pointer_expression "*pcVar15" * identifier) == (char_literal "'#'" ' character ')) )) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;)) (expression_statement "sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");" (assignment_expression "sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" identifier = (call_expression "strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" identifier (argument_list "(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" ( identifier , (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t"" " string_content escape_sequence ") )))) ;) (expression_statement "iVar11 = (int)sVar16;" (assignment_expression "iVar11 = (int)sVar16" identifier = (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }" if (parenthesized_expression "(iVar9 - iVar10 <= iVar11)" ( (binary_expression "iVar9 - iVar10 <= iVar11" (binary_expression "iVar9 - iVar10" identifier - identifier) <= identifier) )) (compound_statement "{\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }" statement_identifier : (while_statement "while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }" { (expression_statement "uVar24 = sg_get_llnum(pcVar15);" (assignment_expression "uVar24 = sg_get_llnum(pcVar15)" identifier = (call_expression "sg_get_llnum(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (if_statement "if (uVar24 == 0xffffffffffffffff) break;" if (parenthesized_expression "(uVar24 == 0xffffffffffffffff)" ( (binary_expression "uVar24 == 0xffffffffffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = (int)(iVar9 + uVar8) >> 1;" (assignment_expression "iVar10 = (int)(iVar9 + uVar8) >> 1" identifier = (binary_expression "(int)(iVar9 + uVar8) >> 1" (cast_expression "(int)(iVar9 + uVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar9 + uVar8)" ( (binary_expression "iVar9 + uVar8" identifier + identifier) ))) >> number_literal)) ;) (if_statement "if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }" if (parenthesized_expression "(0x7f < iVar10)" ( (binary_expression "0x7f < iVar10" number_literal < identifier) )) (compound_statement "{\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }" { (expression_statement "pr2serr("%s: array length exceeded\n","build_joint_arr");" (call_expression "pr2serr("%s: array length exceeded\n","build_joint_arr")" identifier (argument_list "("%s: array length exceeded\n","build_joint_arr")" ( (string_literal ""%s: array length exceeded\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (if_statement "if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }" if (parenthesized_expression "((iVar9 + uVar8 & 1) == 0)" ( (binary_expression "(iVar9 + uVar8 & 1) == 0" (parenthesized_expression "(iVar9 + uVar8 & 1)" ( (binary_expression "iVar9 + uVar8 & 1" (binary_expression "iVar9 + uVar8" identifier + identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  local_c48[iVar10] = uVar24;\n                }" { (expression_statement "local_c48[iVar10] = uVar24;" (assignment_expression "local_c48[iVar10] = uVar24" (subscript_expression "local_c48[iVar10]" identifier [ identifier ]) = identifier) ;) }) (else_clause "else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }" else (compound_statement "{\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }" { (if_statement "if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }" if (parenthesized_expression "(0xffffffff < (long)uVar24)" ( (binary_expression "0xffffffff < (long)uVar24" number_literal < (cast_expression "(long)uVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }" { (expression_statement "local_ed0 = (int)local_38;" (assignment_expression "local_ed0 = (int)local_38" identifier = (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);" (call_expression "pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811)" identifier (argument_list "("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811)" ( (string_literal ""%s: number exceeds 32 bits in line %d, at pos %d\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , (binary_expression "iVar7 + 1" identifier + number_literal) , (binary_expression "((int)pcVar15 - local_ed0) + 0x811" (parenthesized_expression "((int)pcVar15 - local_ed0)" ( (binary_expression "(int)pcVar15 - local_ed0" (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (expression_statement "local_e48[iVar10] = (uint)uVar24;" (assignment_expression "local_e48[iVar10] = (uint)uVar24" (subscript_expression "local_e48[iVar10]" identifier [ identifier ]) = (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "pcVar15 = strpbrk(pcVar15," ,\t");" (assignment_expression "pcVar15 = strpbrk(pcVar15," ,\t")" identifier = (call_expression "strpbrk(pcVar15," ,\t")" identifier (argument_list "(pcVar15," ,\t")" ( identifier , (string_literal "" ,\t"" " string_content escape_sequence ") )))) ;) (if_statement "if (pcVar15 == (char *)0x0) goto LAB_00101d62;" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00101d62;" goto statement_identifier ;)) (expression_statement "sVar16 = strspn(pcVar15," ,\t");" (assignment_expression "sVar16 = strspn(pcVar15," ,\t")" identifier = (call_expression "strspn(pcVar15," ,\t")" identifier (argument_list "(pcVar15," ,\t")" ( identifier , (string_literal "" ,\t"" " string_content escape_sequence ") )))) ;) (expression_statement "pcVar15 = pcVar15 + sVar16;" (assignment_expression "pcVar15 = pcVar15 + sVar16" identifier = (binary_expression "pcVar15 + sVar16" identifier + identifier)) ;) (if_statement "if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;" if (parenthesized_expression "((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400))" ( (binary_expression "(*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)" (parenthesized_expression "(*pcVar15 == '\0')" ( (binary_expression "*pcVar15 == '\0'" (pointer_expression "*pcVar15" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar9 = iVar9 + 1, iVar9 == 0x400)" ( (comma_expression "iVar9 = iVar9 + 1, iVar9 == 0x400" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) , (binary_expression "iVar9 == 0x400" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00101d62;" goto statement_identifier ;)) }))) (if_statement "if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }" if (parenthesized_expression "(*pcVar15 != '#')" ( (binary_expression "*pcVar15 != '#'" (pointer_expression "*pcVar15" * identifier) != (char_literal "'#'" ' character ')) )) (compound_statement "{\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }" { (expression_statement "local_ed0 = (int)local_38;" (assignment_expression "local_ed0 = (int)local_38" identifier = (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);" (call_expression "pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811)" identifier (argument_list "("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811)" ( (string_literal ""%s: error on line %d, at pos %d\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , (binary_expression "iVar7 + 1" identifier + number_literal) , (binary_expression "((int)pcVar15 - local_ed0) + 0x811" (parenthesized_expression "((int)pcVar15 - local_ed0)" ( (binary_expression "(int)pcVar15 - local_ed0" (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (labeled_statement "LAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;" statement_identifier : (expression_statement "uVar8 = iVar9 + 1 + uVar8;" (assignment_expression "uVar8 = iVar9 + 1 + uVar8" identifier = (binary_expression "iVar9 + 1 + uVar8" (binary_expression "iVar9 + 1" identifier + number_literal) + identifier)) ;)) (goto_statement "goto LAB_00101d67;" goto statement_identifier ;) })) (if_statement "if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }" if (parenthesized_expression "(pcVar15[iVar11] == '#')" ( (binary_expression "pcVar15[iVar11] == '#'" (subscript_expression "pcVar15[iVar11]" identifier [ identifier ]) == (char_literal "'#'" ' character ')) )) (compound_statement "{\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101d1a;" goto statement_identifier ;) })) (expression_statement "pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);" (call_expression "pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11)" identifier (argument_list "("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11)" ( (string_literal ""%s: syntax error at line %d, pos %d\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , (binary_expression "iVar7 + 1" identifier + number_literal) , (binary_expression "iVar10 + 1 + iVar11" (binary_expression "iVar10 + 1" identifier + number_literal) + identifier) ))) ;) (goto_statement "goto LAB_00101c6b;" goto statement_identifier ;) })) (labeled_statement "LAB_00101d67:\n          iVar7 = iVar7 + 1;" statement_identifier : (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar7 == 0x200) break;" if (parenthesized_expression "(iVar7 == 0x200)" ( (binary_expression "iVar7 == 0x200" identifier == number_literal) )) (break_statement "break;" break ;)) })) (if_statement "if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }" if (parenthesized_expression "((uVar8 & 1) == 0)" ( (binary_expression "(uVar8 & 1) == 0" (parenthesized_expression "(uVar8 & 1)" ( (binary_expression "uVar8 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }" { (expression_statement "iVar9 = (int)uVar8 >> 1;" (assignment_expression "iVar9 = (int)uVar8 >> 1" identifier = (binary_expression "(int)uVar8 >> 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }" if (parenthesized_expression "((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin))" ( (binary_expression "(local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)" (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_eb8 != stdin)" ( (binary_expression "local_eb8 != stdin" identifier != identifier) ))) )) (compound_statement "{\n            fclose(local_eb8);\n          }" { (expression_statement "fclose(local_eb8);" (call_expression "fclose(local_eb8)" identifier (argument_list "(local_eb8)" ( identifier ))) ;) })) (if_statement "if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }" if (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) (compound_statement "{\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }" { (expression_statement "pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);" (call_expression "pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0)" identifier (argument_list "("no addresses found in \'--in=\' argument, file: %s\n",local_ec0)" ( (string_literal ""no addresses found in \'--in=\' argument, file: %s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (goto_statement "goto LAB_00101e88;" goto statement_identifier ;) })) (expression_statement "pcVar15 = "stdin";" (assignment_expression "pcVar15 = "stdin"" identifier = (string_literal ""stdin"" " string_content ")) ;) (if_statement "if (!bVar1) {\n          pcVar15 = local_ec0;\n        }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n          pcVar15 = local_ec0;\n        }" { (expression_statement "pcVar15 = local_ec0;" (assignment_expression "pcVar15 = local_ec0" identifier = identifier) ;) })) (expression_statement "pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);" (call_expression "pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15)" identifier (argument_list "("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15)" ( (string_literal ""%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n"" " string_content escape_sequence string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , identifier ))) ;) (labeled_statement "LAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }" statement_identifier : (if_statement "if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }" if (parenthesized_expression "((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin))" ( (binary_expression "(local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)" (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_eb8 != stdin)" ( (binary_expression "local_eb8 != stdin" identifier != identifier) ))) )) (compound_statement "{\n          fclose(local_eb8);\n        }" { (expression_statement "fclose(local_eb8);" (call_expression "fclose(local_eb8)" identifier (argument_list "(local_eb8)" ( identifier ))) ;) }))) }) (else_clause "else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" else (compound_statement "{\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" { (expression_statement "local_eb8 = fopen64(local_ec0,"r");" (assignment_expression "local_eb8 = fopen64(local_ec0,"r")" identifier = (call_expression "fopen64(local_ec0,"r")" identifier (argument_list "(local_ec0,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }" if (parenthesized_expression "(local_eb8 != (FILE *)0x0)" ( (binary_expression "local_eb8 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bVar1 = false;\n          goto LAB_00101bce;\n        }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (goto_statement "goto LAB_00101bce;" goto statement_identifier ;) })) (expression_statement "pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);" (call_expression "pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0)" identifier (argument_list "("%s: unable to open %s\n","build_joint_arr",local_ec0)" ( (string_literal ""%s: unable to open %s\n"" " string_content escape_sequence ") , (string_literal ""build_joint_arr"" " string_content ") , identifier ))) ;) }))) (expression_statement "pr2serr("bad argument to \'--in\'\n");" (call_expression "pr2serr("bad argument to \'--in\'\n")" identifier (argument_list "("bad argument to \'--in\'\n")" ( (string_literal ""bad argument to \'--in\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (if_statement "if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0))" ( (binary_expression "(local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)" (parenthesized_expression "(local_eb8 == (FILE *)0x0)" ( (binary_expression "local_eb8 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_eb0 == (char *)0x0)" ( (binary_expression "local_eb0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" { (if_statement "if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" if (parenthesized_expression "(local_eb8 == (FILE *)0x0)" ( (binary_expression "local_eb8 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }" { (expression_statement "pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");" (call_expression "pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n")" identifier (argument_list "("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n")" ( (string_literal ""expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) }) (else_clause "else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" else (compound_statement "{\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" { (expression_statement "pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");" (call_expression "pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n")" identifier (argument_list "("since \'--lba=\' is given, also need \'--num=\'\n\n")" ( (string_literal ""since \'--lba=\' is given, also need \'--num=\'\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) }))) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "puVar21 = local_c48;" (assignment_expression "puVar21 = local_c48" identifier = identifier) ;) (for_statement "for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }" for ( (assignment_expression "lVar17 = 0x80" identifier = number_literal) ; (binary_expression "lVar17 != 0" identifier != number_literal) ; (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }" { (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;" (assignment_expression "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "puVar21 + (ulong)bVar25 * -2 + 1" (binary_expression "puVar21 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "puVar19 = local_e48;" (assignment_expression "puVar19 = local_e48" identifier = identifier) ;) (for_statement "for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }" for ( (assignment_expression "lVar17 = 0x40" identifier = number_literal) ; (binary_expression "lVar17 != 0" identifier != number_literal) ; (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }" { (expression_statement "puVar19[0] = 0;" (assignment_expression "puVar19[0] = 0" (subscript_expression "puVar19[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[1] = 0;" (assignment_expression "puVar19[1] = 0" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;" (assignment_expression "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2" identifier = (binary_expression "puVar19 + ((ulong)bVar25 * -2 + 1) * 2" identifier + (binary_expression "((ulong)bVar25 * -2 + 1) * 2" (parenthesized_expression "((ulong)bVar25 * -2 + 1)" ( (binary_expression "(ulong)bVar25 * -2 + 1" (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) + number_literal) )) * number_literal))) ;) })) (labeled_statement "LAB_001018ea:\n    lVar17 = -1;" statement_identifier : (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" identifier = number_literal) ;)) (expression_statement "pFVar18 = local_eb8;" (assignment_expression "pFVar18 = local_eb8" identifier = identifier) ;) (do_statement "do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');" do (compound_statement "{\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "cVar6 = *(char *)pFVar18;" (assignment_expression "cVar6 = *(char *)pFVar18" identifier = (pointer_expression "*(char *)pFVar18" * (cast_expression "(char *)pFVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);" (assignment_expression "pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1)" identifier = (cast_expression "(FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pFVar18 + (ulong)bVar25 * -2 + 1)" ( (binary_expression "(long)pFVar18 + (ulong)bVar25 * -2 + 1" (binary_expression "(long)pFVar18 + (ulong)bVar25 * -2" (cast_expression "(long)pFVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(*(char *)local_eb8 == '-')" ( (binary_expression "*(char *)local_eb8 == '-'" (pointer_expression "*(char *)local_eb8" * (cast_expression "(char *)local_eb8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("\'--lba\' cannot be read from stdin\n");" (call_expression "pr2serr("\'--lba\' cannot be read from stdin\n")" identifier (argument_list "("\'--lba\' cannot be read from stdin\n")" ( (string_literal ""\'--lba\' cannot be read from stdin\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (labeled_statement "LAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");" statement_identifier : (expression_statement "pr2serr("bad argument to \'--lba\'\n");" (call_expression "pr2serr("bad argument to \'--lba\'\n")" identifier (argument_list "("bad argument to \'--lba\'\n")" ( (string_literal ""bad argument to \'--lba\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })) (expression_statement "sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");" (assignment_expression "sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier = (call_expression "strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier (argument_list "((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" ( (cast_expression "(char *)local_eb8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, "" " string_content ") )))) ;) (if_statement "if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }" if (parenthesized_expression "(~(uint)lVar17 - 1 != (int)sVar16)" ( (binary_expression "~(uint)lVar17 - 1 != (int)sVar16" (binary_expression "~(uint)lVar17 - 1" (unary_expression "~(uint)lVar17" ~ (cast_expression "(uint)lVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal) != (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }" { (expression_statement "pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);" (call_expression "pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1)" identifier (argument_list "("build_lba_arr: error at pos %d\n",(int)sVar16 + 1)" ( (string_literal ""build_lba_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "(int)sVar16 + 1" (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (goto_statement "goto LAB_001019b7;" goto statement_identifier ;) })) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (expression_statement "pFVar18 = local_eb8;" (assignment_expression "pFVar18 = local_eb8" identifier = identifier) ;) (do_statement "do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);" do (compound_statement "{\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    }" { (expression_statement "iVar7 = (int)lVar17;" (assignment_expression "iVar7 = (int)lVar17" identifier = (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar24 = sg_get_llnum(pFVar18);" (assignment_expression "uVar24 = sg_get_llnum(pFVar18)" identifier = (call_expression "sg_get_llnum(pFVar18)" identifier (argument_list "(pFVar18)" ( identifier )))) ;) (if_statement "if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }" if (parenthesized_expression "(uVar24 == 0xffffffffffffffff)" ( (binary_expression "uVar24 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }" { (expression_statement "pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);" (call_expression "pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1)" identifier (argument_list "("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1)" ( (string_literal ""build_lba_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "((int)pFVar18 - (int)local_eb8) + 1" (parenthesized_expression "((int)pFVar18 - (int)local_eb8)" ( (binary_expression "(int)pFVar18 - (int)local_eb8" (cast_expression "(int)pFVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_eb8" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) ))) ;) (goto_statement "goto LAB_001019b7;" goto statement_identifier ;) })) (expression_statement "local_c48[lVar17] = uVar24;" (assignment_expression "local_c48[lVar17] = uVar24" (subscript_expression "local_c48[lVar17]" identifier [ identifier ]) = identifier) ;) (expression_statement "pcVar13 = strchr((char *)pFVar18,0x2c);" (assignment_expression "pcVar13 = strchr((char *)pFVar18,0x2c)" identifier = (call_expression "strchr((char *)pFVar18,0x2c)" identifier (argument_list "((char *)pFVar18,0x2c)" ( (cast_expression "(char *)pFVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pcVar15 = strchr((char *)pFVar18,0x20);" (assignment_expression "pcVar15 = strchr((char *)pFVar18,0x20)" identifier = (call_expression "strchr((char *)pFVar18,0x20)" identifier (argument_list "((char *)pFVar18,0x20)" ( (cast_expression "(char *)pFVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }" { (if_statement "if (pcVar15 != (char *)0x0) goto LAB_001019db;" if (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001019db;" goto statement_identifier ;)) (expression_statement "iVar9 = iVar7 + 1;" (assignment_expression "iVar9 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00102805;" goto statement_identifier ;) })) (if_statement "if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }" if (parenthesized_expression "((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15))" ( (binary_expression "(pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)" (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar13 <= pcVar15)" ( (binary_expression "pcVar13 <= pcVar15" identifier <= identifier) ))) )) (compound_statement "{\n        pcVar15 = pcVar13;\n      }" { (expression_statement "pcVar15 = pcVar13;" (assignment_expression "pcVar15 = pcVar13" identifier = identifier) ;) })) (labeled_statement "LAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);" statement_identifier : (expression_statement "pFVar18 = (FILE *)(pcVar15 + 1);" (assignment_expression "pFVar18 = (FILE *)(pcVar15 + 1)" identifier = (cast_expression "(FILE *)(pcVar15 + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;)) (expression_statement "lVar17 = lVar17 + 1;" (assignment_expression "lVar17 = lVar17 + 1" identifier = (binary_expression "lVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar17 != 0x80)" ( (binary_expression "lVar17 != 0x80" identifier != number_literal) )) ;) (expression_statement "iVar9 = iVar7 + 2;" (assignment_expression "iVar9 = iVar7 + 2" identifier = (binary_expression "iVar7 + 2" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }" if (parenthesized_expression "(iVar7 == 0x7f)" ( (binary_expression "iVar7 == 0x7f" identifier == number_literal) )) (compound_statement "{\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }" { (expression_statement "pr2serr("build_lba_arr: array length exceeded\n");" (call_expression "pr2serr("build_lba_arr: array length exceeded\n")" identifier (argument_list "("build_lba_arr: array length exceeded\n")" ( (string_literal ""build_lba_arr: array length exceeded\n"" " string_content escape_sequence ") ))) ;) (goto_statement "goto LAB_001019b7;" goto statement_identifier ;) })) (labeled_statement "LAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" statement_identifier : (if_statement "if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "(*local_eb0 == '-')" ( (binary_expression "*local_eb0 == '-'" (pointer_expression "*local_eb0" * identifier) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("\'--len\' cannot be read from stdin\n");" (call_expression "pr2serr("\'--len\' cannot be read from stdin\n")" identifier (argument_list "("\'--len\' cannot be read from stdin\n")" ( (string_literal ""\'--len\' cannot be read from stdin\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (labeled_statement "LAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");" statement_identifier : (expression_statement "pr2serr("bad argument to \'--num\'\n");" (call_expression "pr2serr("bad argument to \'--num\'\n")" identifier (argument_list "("bad argument to \'--num\'\n")" ( (string_literal ""bad argument to \'--num\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) }))) (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" identifier = number_literal) ;) (expression_statement "pcVar15 = local_eb0;" (assignment_expression "pcVar15 = local_eb0" identifier = identifier) ;) (do_statement "do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');" do (compound_statement "{\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "cVar6 = *pcVar15;" (assignment_expression "cVar6 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar15 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");" (assignment_expression "sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier = (call_expression "strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" identifier (argument_list "(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" ( identifier , (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, "" " string_content ") )))) ;) (if_statement "if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }" if (parenthesized_expression "((int)sVar16 != ~(uint)lVar17 - 1)" ( (binary_expression "(int)sVar16 != ~(uint)lVar17 - 1" (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier) != (binary_expression "~(uint)lVar17 - 1" (unary_expression "~(uint)lVar17" ~ (cast_expression "(uint)lVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) )) (compound_statement "{\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }" { (expression_statement "pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);" (call_expression "pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1)" identifier (argument_list "("build_num_arr: error at pos %d\n",(int)sVar16 + 1)" ( (string_literal ""build_num_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "(int)sVar16 + 1" (cast_expression "(int)sVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (expression_statement "pcVar15 = local_eb0;" (assignment_expression "pcVar15 = local_eb0" identifier = identifier) ;) (do_statement "do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);" do (compound_statement "{\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    }" { (expression_statement "iVar7 = (int)lVar17;" (assignment_expression "iVar7 = (int)lVar17" identifier = (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar14 = sg_get_llnum(pcVar15);" (assignment_expression "lVar14 = sg_get_llnum(pcVar15)" identifier = (call_expression "sg_get_llnum(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (if_statement "if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" if (parenthesized_expression "(lVar14 == -1)" ( (binary_expression "lVar14 == -1" identifier == number_literal) )) (compound_statement "{\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" { (expression_statement "pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);" (call_expression "pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1)" identifier (argument_list "("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1)" ( (string_literal ""build_num_arr: error at pos %d\n"" " string_content escape_sequence ") , (binary_expression "((int)pcVar15 - (int)local_eb0) + 1" (parenthesized_expression "((int)pcVar15 - (int)local_eb0)" ( (binary_expression "(int)pcVar15 - (int)local_eb0" (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_eb0" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (if_statement "if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" if (parenthesized_expression "(0xffffffff < lVar14)" ( (binary_expression "0xffffffff < lVar14" number_literal < identifier) )) (compound_statement "{\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" { (expression_statement "pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);" (call_expression "pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1)" identifier (argument_list "("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1)" ( (string_literal ""build_num_arr: number exceeds 32 bits at pos %d\n"" " string_content escape_sequence ") , (binary_expression "((int)pcVar15 - (int)local_eb0) + 1" (parenthesized_expression "((int)pcVar15 - (int)local_eb0)" ( (binary_expression "(int)pcVar15 - (int)local_eb0" (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_eb0" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (expression_statement "local_e48[lVar17] = (uint)lVar14;" (assignment_expression "local_e48[lVar17] = (uint)lVar14" (subscript_expression "local_e48[lVar17]" identifier [ identifier ]) = (cast_expression "(uint)lVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar13 = strchr(pcVar15,0x2c);" (assignment_expression "pcVar13 = strchr(pcVar15,0x2c)" identifier = (call_expression "strchr(pcVar15,0x2c)" identifier (argument_list "(pcVar15,0x2c)" ( identifier , number_literal )))) ;) (expression_statement "pcVar15 = strchr(pcVar15,0x20);" (assignment_expression "pcVar15 = strchr(pcVar15,0x20)" identifier = (call_expression "strchr(pcVar15,0x20)" identifier (argument_list "(pcVar15,0x20)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }" { (if_statement "if (pcVar15 != (char *)0x0) goto LAB_00101ae7;" if (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00101ae7;" goto statement_identifier ;)) (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001027df;" goto statement_identifier ;) })) (if_statement "if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }" if (parenthesized_expression "((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15))" ( (binary_expression "(pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)" (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar13 <= pcVar15)" ( (binary_expression "pcVar13 <= pcVar15" identifier <= identifier) ))) )) (compound_statement "{\n        pcVar15 = pcVar13;\n      }" { (expression_statement "pcVar15 = pcVar13;" (assignment_expression "pcVar15 = pcVar13" identifier = identifier) ;) })) (labeled_statement "LAB_00101ae7:\n      pcVar15 = pcVar15 + 1;" statement_identifier : (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;)) (expression_statement "lVar17 = lVar17 + 1;" (assignment_expression "lVar17 = lVar17 + 1" identifier = (binary_expression "lVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar17 != 0x80)" ( (binary_expression "lVar17 != 0x80" identifier != number_literal) )) ;) (expression_statement "iVar10 = iVar7 + 2;" (assignment_expression "iVar10 = iVar7 + 2" identifier = (binary_expression "iVar7 + 2" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }" if (parenthesized_expression "(iVar7 == 0x7f)" ( (binary_expression "iVar7 == 0x7f" identifier == number_literal) )) (compound_statement "{\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }" { (expression_statement "pr2serr("build_num_arr: array length exceeded\n");" (call_expression "pr2serr("build_num_arr: array length exceeded\n")" identifier (argument_list "("build_num_arr: array length exceeded\n")" ( (string_literal ""build_num_arr: array length exceeded\n"" " string_content escape_sequence ") ))) ;) (goto_statement "goto LAB_00101aa5;" goto statement_identifier ;) })) (labeled_statement "LAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" statement_identifier : (if_statement "if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" if (parenthesized_expression "((iVar9 != iVar10) || (iVar10 < 1))" ( (binary_expression "(iVar9 != iVar10) || (iVar10 < 1)" (parenthesized_expression "(iVar9 != iVar10)" ( (binary_expression "iVar9 != iVar10" identifier != identifier) )) || (parenthesized_expression "(iVar10 < 1)" ( (binary_expression "iVar10 < 1" identifier < number_literal) ))) )) (compound_statement "{\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" { (expression_statement "pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");" (call_expression "pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n")" identifier (argument_list "("need same number of arguments to \'--lba=\' and \'--num=\' options\n")" ( (string_literal ""need same number of arguments to \'--lba=\' and \'--num=\' options\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) }))) (if_statement "if (local_ec0 != (char *)0x0) goto LAB_00101840;" if (parenthesized_expression "(local_ec0 != (char *)0x0)" ( (binary_expression "local_ec0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00101840;" goto statement_identifier ;)) (labeled_statement "LAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;" statement_identifier : (expression_statement "iVar10 = iVar9 * 0x10 + 8;" (assignment_expression "iVar10 = iVar9 * 0x10 + 8" identifier = (binary_expression "iVar9 * 0x10 + 8" (binary_expression "iVar9 * 0x10" identifier * number_literal) + number_literal)) ;)) (expression_statement "__memset_chk(&local_848,0,(long)iVar10,0x808);" (call_expression "__memset_chk(&local_848,0,(long)iVar10,0x808)" identifier (argument_list "(&local_848,0,(long)iVar10,0x808)" ( (pointer_expression "&local_848" & identifier) , number_literal , (cast_expression "(long)iVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))) ;) (expression_statement "puVar19 = &local_848;" (assignment_expression "puVar19 = &local_848" identifier = (pointer_expression "&local_848" & identifier)) ;) (for_statement "for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }" for ( (assignment_expression "lVar17 = 0" identifier = number_literal) ; (binary_expression "(int)lVar17 < iVar9" (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) ; (assignment_expression "lVar17 = lVar17 + 1" identifier = (binary_expression "lVar17 + 1" identifier + number_literal)) ) (compound_statement "{\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }" { (expression_statement "uVar24 = local_c48[lVar17];" (assignment_expression "uVar24 = local_c48[lVar17]" identifier = (subscript_expression "local_c48[lVar17]" identifier [ identifier ])) ;) (expression_statement "*(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;" (assignment_expression "*(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (pointer_expression "*(ulong *)(puVar19 + 2)" * (cast_expression "(ulong *)(puVar19 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 2)" ( (binary_expression "puVar19 + 2" identifier + number_literal) )))) = (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28" (binary_expression "uVar24 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar24 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar24 & 0xff000000000000)" ( (binary_expression "uVar24 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar24 & 0xff0000000000)" ( (binary_expression "uVar24 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff00000000) >> 8" (parenthesized_expression "(uVar24 & 0xff00000000)" ( (binary_expression "uVar24 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff000000) << 8" (parenthesized_expression "(uVar24 & 0xff000000)" ( (binary_expression "uVar24 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff0000) << 0x18" (parenthesized_expression "(uVar24 & 0xff0000)" ( (binary_expression "uVar24 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff00) << 0x28" (parenthesized_expression "(uVar24 & 0xff00)" ( (binary_expression "uVar24 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar24 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar8 = local_e48[lVar17];" (assignment_expression "uVar8 = local_e48[lVar17]" identifier = (subscript_expression "local_e48[lVar17]" identifier [ identifier ])) ;) (expression_statement "puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (subscript_expression "puVar19[4]" identifier [ number_literal ]) = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar19 = puVar19 + 4;" (assignment_expression "puVar19 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) })) (expression_statement "uVar2 = (ushort)(iVar9 * 0x10);" (assignment_expression "uVar2 = (ushort)(iVar9 * 0x10)" identifier = (call_expression "(ushort)(iVar9 * 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(iVar9 * 0x10)" ( (binary_expression "iVar9 * 0x10" identifier * number_literal) )))) ;) (expression_statement "local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;" (assignment_expression "local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8" (field_expression "local_848._0_2_" identifier . field_identifier) = (binary_expression "(uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8" (binary_expression "(uVar2 + 6) * 0x100" (parenthesized_expression "(uVar2 + 6)" ( (binary_expression "uVar2 + 6" identifier + number_literal) )) * number_literal) | (binary_expression "(ushort)(uVar2 + 6) >> 8" (call_expression "(ushort)(uVar2 + 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar2 + 6)" ( (binary_expression "uVar2 + 6" identifier + number_literal) ))) >> number_literal))) ;) (expression_statement "local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;" (assignment_expression "local_848._2_2_ = uVar2 << 8 | uVar2 >> 8" (field_expression "local_848._2_2_" identifier . field_identifier) = (binary_expression "uVar2 << 8 | uVar2 >> 8" (binary_expression "uVar2 << 8" identifier << number_literal) | (binary_expression "uVar2 >> 8" identifier >> number_literal))) ;) (expression_statement "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);" (assignment_expression "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4)" identifier = (call_expression "sg_cmds_open_device(local_e98,0,local_ec4)" identifier (argument_list "(local_e98,0,local_ec4)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }" { (labeled_statement "LAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);" statement_identifier : (expression_statement "uVar8 = sg_convert_errno(-iVar7);" (assignment_expression "uVar8 = sg_convert_errno(-iVar7)" identifier = (call_expression "sg_convert_errno(-iVar7)" identifier (argument_list "(-iVar7)" ( (unary_expression "-iVar7" - identifier) )))) ;)) (expression_statement "uVar12 = safe_strerror(-iVar7);" (assignment_expression "uVar12 = safe_strerror(-iVar7)" identifier = (call_expression "safe_strerror(-iVar7)" identifier (argument_list "(-iVar7)" ( (unary_expression "-iVar7" - identifier) )))) ;) (expression_statement "pr2serr("open error: %s: %s\n",local_e98,uVar12);" (call_expression "pr2serr("open error: %s: %s\n",local_e98,uVar12)" identifier (argument_list "("open error: %s: %s\n",local_e98,uVar12)" ( (string_literal ""open error: %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) }) (else_clause "else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }" else (compound_statement "{\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }" { (expression_statement "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);" (assignment_expression "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" identifier = (call_expression "sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" identifier (argument_list "(iVar7,local_e78,1,local_ec4)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }" { (expression_statement "pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");" (call_expression "pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n")" identifier (argument_list "("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n")" ( (string_literal ""Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "puVar19 = &local_848;" (assignment_expression "puVar19 = &local_848" identifier = (pointer_expression "&local_848" & identifier)) ;) (for_statement "for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }" for ( (assignment_expression "iVar22 = 0" identifier = number_literal) ; (binary_expression "iVar22 < iVar9" identifier < identifier) ; (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ) (compound_statement "{\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }" { (expression_statement "uVar20 = puVar19[4];" (assignment_expression "uVar20 = puVar19[4]" identifier = (subscript_expression "puVar19[4]" identifier [ number_literal ])) ;) (expression_statement "uVar24 = *(ulong *)(puVar19 + 2);" (assignment_expression "uVar24 = *(ulong *)(puVar19 + 2)" identifier = (pointer_expression "*(ulong *)(puVar19 + 2)" * (cast_expression "(ulong *)(puVar19 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 2)" ( (binary_expression "puVar19 + 2" identifier + number_literal) ))))) ;) (expression_statement "__printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);" (call_expression "__printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18)" identifier (argument_list "(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18)" ( number_literal , (string_literal ""    0x%lx, 0x%u\n"" " string_content escape_sequence ") , (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28" (binary_expression "uVar24 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar24 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar24 & 0xff000000000000)" ( (binary_expression "uVar24 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar24 & 0xff0000000000)" ( (binary_expression "uVar24 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff00000000) >> 8" (parenthesized_expression "(uVar24 & 0xff00000000)" ( (binary_expression "uVar24 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar24 & 0xff000000) << 8" (parenthesized_expression "(uVar24 & 0xff000000)" ( (binary_expression "uVar24 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff0000) << 0x18" (parenthesized_expression "(uVar24 & 0xff0000)" ( (binary_expression "uVar24 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar24 & 0xff00) << 0x28" (parenthesized_expression "(uVar24 & 0xff00)" ( (binary_expression "uVar24 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar24 << 0x38" identifier << number_literal)) , (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" ( (binary_expression "uVar20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" ( (binary_expression "uVar20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar20 << 0x18" identifier << number_literal)) ))) ;) (expression_statement "puVar19 = puVar19 + 4;" (assignment_expression "puVar19 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) })) }) (else_clause "else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }" else (compound_statement "{\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }" { (if_statement "if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }" { (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" identifier (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" ( number_literal , (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "sleep(3);" (call_expression "sleep(3)" identifier (argument_list "(3)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 15 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" identifier (argument_list "("    Some data will be LOST")" ( (string_literal ""    Some data will be LOST"" " string_content ") ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP will commence in 10 seconds");" (call_expression "puts("\nAn UNMAP will commence in 10 seconds")" identifier (argument_list "("\nAn UNMAP will commence in 10 seconds")" ( (string_literal ""\nAn UNMAP will commence in 10 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" identifier (argument_list "("    Some data will be LOST")" ( (string_literal ""    Some data will be LOST"" " string_content ") ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(5);" (call_expression "sleep(5)" identifier (argument_list "(5)" ( number_literal ))) ;) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" identifier (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" ( (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 5 seconds"" " escape_sequence string_content ") ))) ;) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" identifier (argument_list "("    Some data will be LOST")" ( (string_literal ""    Some data will be LOST"" " string_content ") ))) ;) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" identifier (argument_list "("        Press control-C to abort")" ( (string_literal ""        Press control-C to abort"" " string_content ") ))) ;) (expression_statement "sleep(7);" (call_expression "sleep(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);" (assignment_expression "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4)" identifier = (call_expression "sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4)" identifier (argument_list "(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_848" & identifier) , identifier , number_literal , identifier )))) ;) (expression_statement "local_e80[0] = uVar8;" (assignment_expression "local_e80[0] = uVar8" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar3 = bVar5;" (assignment_expression "bVar3 = bVar5" identifier = identifier) ;) (switch_statement "switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }" switch (parenthesized_expression "(uVar8)" ( identifier )) (compound_statement "{\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }" { (case_statement "case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;" case number_literal : (expression_statement "pr2serr("UNMAP failed, device not ready\n");" (call_expression "pr2serr("UNMAP failed, device not ready\n")" identifier (argument_list "("UNMAP failed, device not ready\n")" ( (string_literal ""UNMAP failed, device not ready\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;" case number_literal : (expression_statement "pr2serr("bad field in UNMAP cdb\n");" (call_expression "pr2serr("bad field in UNMAP cdb\n")" identifier (argument_list "("bad field in UNMAP cdb\n")" ( (string_literal ""bad field in UNMAP cdb\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;" case number_literal : (expression_statement "pr2serr("UNMAP, unit attention\n");" (call_expression "pr2serr("UNMAP, unit attention\n")" identifier (argument_list "("UNMAP, unit attention\n")" ( (string_literal ""UNMAP, unit attention\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;" case number_literal : (expression_statement "pr2serr("UNMAP not supported\n");" (call_expression "pr2serr("UNMAP not supported\n")" identifier (argument_list "("UNMAP not supported\n")" ( (string_literal ""UNMAP not supported\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;" case number_literal : (expression_statement "pr2serr("UNMAP, aborted command\n");" (call_expression "pr2serr("UNMAP, aborted command\n")" identifier (argument_list "("UNMAP, aborted command\n")" ( (string_literal ""UNMAP, aborted command\n"" " string_content escape_sequence ") ))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;)) })) }))) (labeled_statement "switchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);" statement_identifier : (expression_statement "local_e80[0] = sg_cmds_close_device(iVar7);" (assignment_expression "local_e80[0] = sg_cmds_close_device(iVar7)" (subscript_expression "local_e80[0]" identifier [ number_literal ]) = (call_expression "sg_cmds_close_device(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;)) (if_statement "if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }" if (parenthesized_expression "((int)local_e80[0] < 0)" ( (binary_expression "(int)local_e80[0] < 0" (cast_expression "(int)local_e80[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_e80[0]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }" { (expression_statement "uVar12 = safe_strerror(-local_e80[0]);" (assignment_expression "uVar12 = safe_strerror(-local_e80[0])" identifier = (call_expression "safe_strerror(-local_e80[0])" identifier (argument_list "(-local_e80[0])" ( (unary_expression "-local_e80[0]" - (subscript_expression "local_e80[0]" identifier [ number_literal ])) )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar12);" (call_expression "pr2serr("close error: %s\n",uVar12)" identifier (argument_list "("close error: %s\n",uVar12)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }" { (expression_statement "uVar8 = sg_convert_errno(-local_e80[0]);" (assignment_expression "uVar8 = sg_convert_errno(-local_e80[0])" identifier = (call_expression "sg_convert_errno(-local_e80[0])" identifier (argument_list "(-local_e80[0])" ( (unary_expression "-local_e80[0]" - (subscript_expression "local_e80[0]" identifier [ number_literal ])) )))) ;) })) })) }))) (if_statement "if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }" if (parenthesized_expression "(((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0'))" ( (binary_expression "((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')" (parenthesized_expression "((local_ec4 == 0) && (!bVar3))" ( (binary_expression "(local_ec4 == 0) && (!bVar3)" (parenthesized_expression "(local_ec4 == 0)" ( (binary_expression "local_ec4 == 0" identifier == number_literal) )) && (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) && (parenthesized_expression "(cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')" ( (comma_expression "cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0'" (assignment_expression "cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8)" identifier = (call_expression "sg_if_can2stderr("sg_unmap failed: ",uVar8)" identifier (argument_list "("sg_unmap failed: ",uVar8)" ( (string_literal ""sg_unmap failed: "" " string_content ") , identifier )))) , (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }" { (expression_statement "pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");" (call_expression "pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n")" identifier (argument_list "("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n")" ( (string_literal ""Some error occurred, try again with \'-v\' or \'-vv\' for more information\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) })) (if_statement "if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar8 = 99;\n    }" { (expression_statement "uVar8 = 99;" (assignment_expression "uVar8 = 99" identifier = number_literal) ;) })) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) })))) (expression_statement "pr2serr("version: %s\n","1.17 20180628");" (call_expression "pr2serr("version: %s\n","1.17 20180628")" identifier (argument_list "("version: %s\n","1.17 20180628")" ( (string_literal ""version: %s\n"" " string_content escape_sequence ") , (string_literal ""1.17 20180628"" " string_content ") ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) (labeled_statement "LAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");" statement_identifier : (expression_statement "pr2serr("value for \'--grpnum=\' must be 0 to 63\n");" (call_expression "pr2serr("value for \'--grpnum=\' must be 0 to 63\n")" identifier (argument_list "("value for \'--grpnum=\' must be 0 to 63\n")" ( (string_literal ""value for \'--grpnum=\' must be 0 to 63\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101539;" goto statement_identifier ;) (labeled_statement "LAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" statement_identifier : (do_statement "do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" do (compound_statement "{\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  }" { (expression_statement "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));" (call_expression "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" identifier (argument_list "("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" ( (string_literal ""Unexpected extra argument: %s\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined8 *)(param_2 + (long)optind * 8)" * (cast_expression "(undefined8 *)(param_2 + (long)optind * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + (long)optind * 8)" ( (binary_expression "param_2 + (long)optind * 8" identifier + (binary_expression "(long)optind * 8" (cast_expression "(long)optind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) )))) ))) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) ;)) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar8;\n  }" { (return_statement "return uVar8;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 ( IDENT , LIT )))) ;) (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 ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , 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 ( (binary_expression IDENT + LIT) )))) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = BOOL) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = BOOL) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = BOOL) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression LIT < (subscript_expression IDENT [ LIT ]))) ))) )) (goto_statement goto statement_identifier ;)) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;)) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( IDENT ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < IDENT) && (binary_expression IDENT != LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , LIT , LIT , IDENT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) | (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) << LIT))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (unary_expression - (subscript_expression IDENT [ LIT ])) )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (unary_expression - (subscript_expression IDENT [ LIT ])) )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (field_expression IDENT . field_identifier) >> LIT) ))) | (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) << LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) << LIT)) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , LIT , (string_literal " string_content ") , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , LIT , (string_literal " string_content ") , IDENT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") ))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (for_statement for ( ; (binary_expression IDENT <= IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (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 (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) , LIT , LIT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) })) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (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 = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) )) * 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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , LIT , IDENT )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) = LIT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT < LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (string_literal " string_content escape_sequence ") )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (string_literal " string_content ") ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (string_literal " string_content ") , (binary_expression IDENT + LIT) , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (string_literal " string_content ") , (binary_expression IDENT + LIT) , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (string_literal " string_content ") , (binary_expression IDENT + LIT) , (binary_expression (binary_expression IDENT + LIT) + IDENT) ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 IDENT != IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , (string_literal " string_content ") , IDENT ))) ;) (labeled_statement statement_identifier : (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 IDENT != IDENT) ))) )) (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 ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (string_literal " string_content ") , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (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 ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence ") ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (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 = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) )) * LIT))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) - LIT) != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (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 IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) - LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (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 IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (unary_expression - IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (unary_expression - IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT < IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) , (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;)) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (unary_expression - (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (unary_expression - (subscript_expression IDENT [ LIT ])) )))) ;) })) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) )))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "uint FUN_00101300(int param_1,long param_2)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  char *pcVar13;\n  long lVar14;\n  char *pcVar15;\n  size_t sVar16;\n  long lVar17;\n  FILE *pFVar18;\n  uint *puVar19;\n  uint uVar20;\n  ulong *puVar21;\n  int iVar22;\n  ulong uVar23;\n  ulong uVar24;\n  long in_FS_OFFSET;\n  byte bVar25;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  uint local_e9c;\n  long local_e98;\n  ulong local_e90;\n  uint local_e80 [2];\n  undefined1 local_e78 [8];\n  undefined1 local_e70 [9];\n  undefined1 local_e67 [17];\n  undefined1 local_e56 [14];\n  uint local_e48 [128];\n  ulong local_c48 [128];\n  undefined4 local_848;\n  uint uStack_844;\n  ulong local_840;\n  uint local_838 [510];\n  long local_40;\n  undefined1 local_38 [8];\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar24 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar22 = 0x3c;\n  local_e9c = 0;\n  bVar1 = false;\n  bVar3 = false;\n  bVar5 = false;\n  bVar4 = false;\n  local_e9d = 0;\n  while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }\n  if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }\n  if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  uVar8 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  uVar8 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  FUN_001012d5();\n  uVar8 = 1;\nLAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    \n  __stack_chk_fail();\n}" (type_identifier "uint") (function_declarator "FUN_00101300(int param_1,long param_2)" (identifier "FUN_00101300") (parameter_list "(int param_1,long param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  char *pcVar13;\n  long lVar14;\n  char *pcVar15;\n  size_t sVar16;\n  long lVar17;\n  FILE *pFVar18;\n  uint *puVar19;\n  uint uVar20;\n  ulong *puVar21;\n  int iVar22;\n  ulong uVar23;\n  ulong uVar24;\n  long in_FS_OFFSET;\n  byte bVar25;\n  int local_ed0;\n  int local_ec8;\n  int local_ec4;\n  char *local_ec0;\n  FILE *local_eb8;\n  char *local_eb0;\n  uint local_ea4;\n  undefined1 local_e9d;\n  uint local_e9c;\n  long local_e98;\n  ulong local_e90;\n  uint local_e80 [2];\n  undefined1 local_e78 [8];\n  undefined1 local_e70 [9];\n  undefined1 local_e67 [17];\n  undefined1 local_e56 [14];\n  uint local_e48 [128];\n  ulong local_c48 [128];\n  undefined4 local_848;\n  uint uStack_844;\n  ulong local_840;\n  uint local_838 [510];\n  long local_40;\n  undefined1 local_38 [8];\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ec0 = (char *)0x0;\n  local_eb0 = (char *)0x0;\n  local_eb8 = (FILE *)0x0;\n  local_e90 = 0;\n  uVar24 = 0;\n  local_ea4 = 0;\n  local_ec4 = 0;\n  iVar22 = 0x3c;\n  local_e9c = 0;\n  bVar1 = false;\n  bVar3 = false;\n  bVar5 = false;\n  bVar4 = false;\n  local_e9d = 0;\n  while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }\n  if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }\n  if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }\n  pr2serr("version: %s\n","1.17 20180628");\n  uVar8 = 0;\n  goto LAB_00101539;\nLAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");\n  uVar8 = 1;\n  goto LAB_00101539;\nLAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  FUN_001012d5();\n  uVar8 = 1;\nLAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "long lVar14;" (sized_type_specifier "long" (long "long")) (identifier "lVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "size_t sVar16;" (primitive_type "size_t") (identifier "sVar16") (; ";")) (declaration "long lVar17;" (sized_type_specifier "long" (long "long")) (identifier "lVar17") (; ";")) (declaration "FILE *pFVar18;" (type_identifier "FILE") (pointer_declarator "*pFVar18" (* "*") (identifier "pFVar18")) (; ";")) (declaration "uint *puVar19;" (type_identifier "uint") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "ulong *puVar21;" (type_identifier "ulong") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "ulong uVar23;" (type_identifier "ulong") (identifier "uVar23") (; ";")) (declaration "ulong uVar24;" (type_identifier "ulong") (identifier "uVar24") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "byte bVar25;" (type_identifier "byte") (identifier "bVar25") (; ";")) (declaration "int local_ed0;" (primitive_type "int") (identifier "local_ed0") (; ";")) (declaration "int local_ec8;" (primitive_type "int") (identifier "local_ec8") (; ";")) (declaration "int local_ec4;" (primitive_type "int") (identifier "local_ec4") (; ";")) (declaration "char *local_ec0;" (primitive_type "char") (pointer_declarator "*local_ec0" (* "*") (identifier "local_ec0")) (; ";")) (declaration "FILE *local_eb8;" (type_identifier "FILE") (pointer_declarator "*local_eb8" (* "*") (identifier "local_eb8")) (; ";")) (declaration "char *local_eb0;" (primitive_type "char") (pointer_declarator "*local_eb0" (* "*") (identifier "local_eb0")) (; ";")) (declaration "uint local_ea4;" (type_identifier "uint") (identifier "local_ea4") (; ";")) (declaration "undefined1 local_e9d;" (type_identifier "undefined1") (identifier "local_e9d") (; ";")) (declaration "uint local_e9c;" (type_identifier "uint") (identifier "local_e9c") (; ";")) (declaration "long local_e98;" (sized_type_specifier "long" (long "long")) (identifier "local_e98") (; ";")) (declaration "ulong local_e90;" (type_identifier "ulong") (identifier "local_e90") (; ";")) (declaration "uint local_e80 [2];" (type_identifier "uint") (array_declarator "local_e80 [2]" (identifier "local_e80") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_e78 [8];" (type_identifier "undefined1") (array_declarator "local_e78 [8]" (identifier "local_e78") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined1 local_e70 [9];" (type_identifier "undefined1") (array_declarator "local_e70 [9]" (identifier "local_e70") ([ "[") (number_literal "9") (] "]")) (; ";")) (declaration "undefined1 local_e67 [17];" (type_identifier "undefined1") (array_declarator "local_e67 [17]" (identifier "local_e67") ([ "[") (number_literal "17") (] "]")) (; ";")) (declaration "undefined1 local_e56 [14];" (type_identifier "undefined1") (array_declarator "local_e56 [14]" (identifier "local_e56") ([ "[") (number_literal "14") (] "]")) (; ";")) (declaration "uint local_e48 [128];" (type_identifier "uint") (array_declarator "local_e48 [128]" (identifier "local_e48") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "ulong local_c48 [128];" (type_identifier "ulong") (array_declarator "local_c48 [128]" (identifier "local_c48") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "undefined4 local_848;" (type_identifier "undefined4") (identifier "local_848") (; ";")) (declaration "uint uStack_844;" (type_identifier "uint") (identifier "uStack_844") (; ";")) (declaration "ulong local_840;" (type_identifier "ulong") (identifier "local_840") (; ";")) (declaration "uint local_838 [510];" (type_identifier "uint") (array_declarator "local_838 [510]" (identifier "local_838") ([ "[") (number_literal "510") (] "]")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (declaration "undefined1 local_38 [8];" (type_identifier "undefined1") (array_declarator "local_38 [8]" (identifier "local_38") ([ "[") (number_literal "8") (] "]")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_ec0 = (char *)0x0;" (assignment_expression "local_ec0 = (char *)0x0" (identifier "local_ec0") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_eb0 = (char *)0x0;" (assignment_expression "local_eb0 = (char *)0x0" (identifier "local_eb0") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_eb8 = (FILE *)0x0;" (assignment_expression "local_eb8 = (FILE *)0x0" (identifier "local_eb8") (= "=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_e90 = 0;" (assignment_expression "local_e90 = 0" (identifier "local_e90") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ea4 = 0;" (assignment_expression "local_ea4 = 0" (identifier "local_ea4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ec4 = 0;" (assignment_expression "local_ec4 = 0" (identifier "local_ec4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar22 = 0x3c;" (assignment_expression "iVar22 = 0x3c" (identifier "iVar22") (= "=") (number_literal "0x3c")) (; ";")) (expression_statement "local_e9c = 0;" (assignment_expression "local_e9c = 0" (identifier "local_e9c") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (expression_statement "local_e9d = 0;" (assignment_expression "local_e9d = 0" (identifier "local_e9d") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    local_e80[1] = 0;\n    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);\n    pcVar15 = optarg;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }\n  }" ({ "{") (expression_statement "local_e80[1] = 0;" (assignment_expression "local_e80[1] = 0" (subscript_expression "local_e80[1]" (identifier "local_e80") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);" (assignment_expression "iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1)" (identifier "iVar7") (= "=") (call_expression "getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1)" (identifier "getopt_long") (argument_list "(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (string_literal ""aA:dfg:hI:Hl:n:t:vV"" (" """) (string_content "aA:dfg:hI:Hl:n:t:vV") (" """)) (, ",") (pointer_expression "&PTR_DAT_00106020" (& "&") (identifier "PTR_DAT_00106020")) (, ",") (binary_expression "local_e80 + 1" (identifier "local_e80") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar15 = optarg;" (assignment_expression "pcVar15 = optarg" (identifier "pcVar15") (= "=") (identifier "optarg")) (; ";")) (if_statement "if (iVar7 == -1) break;" (if "if") (parenthesized_expression "(iVar7 == -1)" (( "(") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (switch_statement "switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }" (switch "switch") (parenthesized_expression "(iVar7)" (( "(") (identifier "iVar7") () ")")) (compound_statement "{\n    case 0x3f:\n    case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;\n    default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;\n    case 0x49:\n      local_ec0 = optarg;\n      break;\n    case 0x56:\n      bVar1 = true;\n      break;\n    case 0x61:\n      local_e9d = 1;\n      break;\n    case 100:\n      bVar5 = true;\n      break;\n    case 0x66:\n      bVar4 = true;\n      break;\n    case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;\n    case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;\n    case 0x6e:\n      local_eb0 = optarg;\n      break;\n    case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;\n    case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;\n    }" ({ "{") (case_statement "case 0x3f:" (case "case") (number_literal "0x3f") (: ":")) (case_statement "case 0x68:\n      FUN_001012d5();\n      uVar8 = 0;\n      goto LAB_00101539;" (case "case") (number_literal "0x68") (: ":") (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" (identifier "FUN_001012d5") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";"))) (case_statement "default:\n      pr2serr("unrecognised option code 0x%x ??\n",iVar7);\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;" (default "default") (: ":") (expression_statement "pr2serr("unrecognised option code 0x%x ??\n",iVar7);" (call_expression "pr2serr("unrecognised option code 0x%x ??\n",iVar7)" (identifier "pr2serr") (argument_list "("unrecognised option code 0x%x ??\n",iVar7)" (( "(") (string_literal ""unrecognised option code 0x%x ??\n"" (" """) (string_content "unrecognised option code 0x%x ??") (escape_sequence "\n") (" """)) (, ",") (identifier "iVar7") () ")"))) (; ";")) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" (identifier "FUN_001012d5") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";"))) (case_statement "case 0x41:\n      pcVar13 = strchr(optarg,0x2c);\n      if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar24 = sg_get_llnum(pcVar15);\n      if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      uVar23 = sg_get_llnum(pcVar13 + 1);\n      if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      local_ea4 = (uint)uVar23;\n      if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }\n      pcVar15 = strchr(pcVar13 + 1,0x2c);\n      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      break;" (case "case") (number_literal "0x41") (: ":") (expression_statement "pcVar13 = strchr(optarg,0x2c);" (assignment_expression "pcVar13 = strchr(optarg,0x2c)" (identifier "pcVar13") (= "=") (call_expression "strchr(optarg,0x2c)" (identifier "strchr") (argument_list "(optarg,0x2c)" (( "(") (identifier "optarg") (, ",") (number_literal "0x2c") () ")")))) (; ";")) (if_statement "if (pcVar13 == (char *)0x0) {\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" (if "if") (parenthesized_expression "(pcVar13 == (char *)0x0)" (( "(") (binary_expression "pcVar13 == (char *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" ({ "{") (expression_statement "pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");" (call_expression "pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n")" (identifier "pr2serr") (argument_list "("--all=ST,RN[,LA] expects at least one comma in argument, found none\n")" (( "(") (string_literal ""--all=ST,RN[,LA] expects at least one comma in argument, found none\n"" (" """) (string_content "--all=ST,RN[,LA] expects at least one comma in argument, found none") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (expression_statement "uVar24 = sg_get_llnum(pcVar15);" (assignment_expression "uVar24 = sg_get_llnum(pcVar15)" (identifier "uVar24") (= "=") (call_expression "sg_get_llnum(pcVar15)" (identifier "sg_get_llnum") (argument_list "(pcVar15)" (( "(") (identifier "pcVar15") () ")")))) (; ";")) (if_statement "if ((long)uVar24 < 0) {\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" (if "if") (parenthesized_expression "((long)uVar24 < 0)" (( "(") (binary_expression "(long)uVar24 < 0" (cast_expression "(long)uVar24" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar24")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" ({ "{") (expression_statement "pr2serr("unable to decode --all=ST,.... (starting LBA)\n");" (call_expression "pr2serr("unable to decode --all=ST,.... (starting LBA)\n")" (identifier "pr2serr") (argument_list "("unable to decode --all=ST,.... (starting LBA)\n")" (( "(") (string_literal ""unable to decode --all=ST,.... (starting LBA)\n"" (" """) (string_content "unable to decode --all=ST,.... (starting LBA)") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (expression_statement "uVar23 = sg_get_llnum(pcVar13 + 1);" (assignment_expression "uVar23 = sg_get_llnum(pcVar13 + 1)" (identifier "uVar23") (= "=") (call_expression "sg_get_llnum(pcVar13 + 1)" (identifier "sg_get_llnum") (argument_list "(pcVar13 + 1)" (( "(") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (0xffffffff < uVar23) {\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" (if "if") (parenthesized_expression "(0xffffffff < uVar23)" (( "(") (binary_expression "0xffffffff < uVar23" (number_literal "0xffffffff") (< "<") (identifier "uVar23")) () ")")) (compound_statement "{\n        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" ({ "{") (expression_statement "pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");" (call_expression "pr2serr("unable to decode --all=ST,RN.... (repeat number)\n")" (identifier "pr2serr") (argument_list "("unable to decode --all=ST,RN.... (repeat number)\n")" (( "(") (string_literal ""unable to decode --all=ST,RN.... (repeat number)\n"" (" """) (string_content "unable to decode --all=ST,RN.... (repeat number)") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (expression_statement "local_ea4 = (uint)uVar23;" (assignment_expression "local_ea4 = (uint)uVar23" (identifier "local_ea4") (= "=") (cast_expression "(uint)uVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar23"))) (; ";")) (if_statement "if (uVar23 == 0) {\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");\n      }" ({ "{") (expression_statement "pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");" (call_expression "pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n")" (identifier "pr2serr") (argument_list "("warning: --all=ST,RN... being ignored because RN is 0\n")" (( "(") (string_literal ""warning: --all=ST,RN... being ignored because RN is 0\n"" (" """) (string_content "warning: --all=ST,RN... being ignored because RN is 0") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar15 = strchr(pcVar13 + 1,0x2c);" (assignment_expression "pcVar15 = strchr(pcVar13 + 1,0x2c)" (identifier "pcVar15") (= "=") (call_expression "strchr(pcVar13 + 1,0x2c)" (identifier "strchr") (argument_list "(pcVar13 + 1,0x2c)" (( "(") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1")) (, ",") (number_literal "0x2c") () ")")))) (; ";")) (if_statement "if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))\n      {\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" (if "if") (parenthesized_expression "((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))" (( "(") (binary_expression "(pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0)" (parenthesized_expression "(pcVar15 != (char *)0x0)" (( "(") (binary_expression "pcVar15 != (char *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0)" (( "(") (comma_expression "local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0" (assignment_expression "local_e90 = sg_get_llnum(pcVar15 + 1)" (identifier "local_e90") (= "=") (call_expression "sg_get_llnum(pcVar15 + 1)" (identifier "sg_get_llnum") (argument_list "(pcVar15 + 1)" (( "(") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "(long)local_e90 < 0" (cast_expression "(long)local_e90" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_e90")) (< "<") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" ({ "{") (expression_statement "pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");" (call_expression "pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n")" (identifier "pr2serr") (argument_list "("unable to decode --all=ST,NR,LA (last LBA)\n")" (( "(") (string_literal ""unable to decode --all=ST,NR,LA (last LBA)\n"" (" """) (string_content "unable to decode --all=ST,NR,LA (last LBA)") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x49:\n      local_ec0 = optarg;\n      break;" (case "case") (number_literal "0x49") (: ":") (expression_statement "local_ec0 = optarg;" (assignment_expression "local_ec0 = optarg" (identifier "local_ec0") (= "=") (identifier "optarg")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x56:\n      bVar1 = true;\n      break;" (case "case") (number_literal "0x56") (: ":") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x61:\n      local_e9d = 1;\n      break;" (case "case") (number_literal "0x61") (: ":") (expression_statement "local_e9d = 1;" (assignment_expression "local_e9d = 1" (identifier "local_e9d") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 100:\n      bVar5 = true;\n      break;" (case "case") (number_literal "100") (: ":") (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" (identifier "bVar5") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x66:\n      bVar4 = true;\n      break;" (case "case") (number_literal "0x66") (: ":") (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x67:\n      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);\n      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;\n      break;" (case "case") (number_literal "0x67") (: ":") (expression_statement "iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);" (assignment_expression "iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80)" (identifier "iVar7") (= "=") (call_expression "__isoc99_sscanf(optarg,&DAT_00103ffa,local_e80)" (identifier "__isoc99_sscanf") (argument_list "(optarg,&DAT_00103ffa,local_e80)" (( "(") (identifier "optarg") (, ",") (pointer_expression "&DAT_00103ffa" (& "&") (identifier "DAT_00103ffa")) (, ",") (identifier "local_e80") () ")")))) (; ";")) (if_statement "if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;" (if "if") (parenthesized_expression "((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0]))" (( "(") (binary_expression "(iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])" (parenthesized_expression "(iVar7 != 1)" (( "(") (binary_expression "iVar7 != 1" (identifier "iVar7") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(local_e9c = local_e80[0], 0x3f < local_e80[0])" (( "(") (comma_expression "local_e9c = local_e80[0], 0x3f < local_e80[0]" (assignment_expression "local_e9c = local_e80[0]" (identifier "local_e9c") (= "=") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]"))) (, ",") (binary_expression "0x3f < local_e80[0]" (number_literal "0x3f") (< "<") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")))) () ")"))) () ")")) (goto_statement "goto LAB_00101512;" (goto "goto") (statement_identifier "LAB_00101512") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x6c:\n      local_eb8 = (FILE *)optarg;\n      break;" (case "case") (number_literal "0x6c") (: ":") (expression_statement "local_eb8 = (FILE *)optarg;" (assignment_expression "local_eb8 = (FILE *)optarg" (identifier "local_eb8") (= "=") (cast_expression "(FILE *)optarg" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "optarg"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x6e:\n      local_eb0 = optarg;\n      break;" (case "case") (number_literal "0x6e") (: ":") (expression_statement "local_eb0 = optarg;" (assignment_expression "local_eb0 = optarg" (identifier "local_eb0") (= "=") (identifier "optarg")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x74:\n      iVar22 = sg_get_num(optarg);\n      if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }\n      if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }\n      break;" (case "case") (number_literal "0x74") (: ":") (expression_statement "iVar22 = sg_get_num(optarg);" (assignment_expression "iVar22 = sg_get_num(optarg)" (identifier "iVar22") (= "=") (call_expression "sg_get_num(optarg)" (identifier "sg_get_num") (argument_list "(optarg)" (( "(") (identifier "optarg") () ")")))) (; ";")) (if_statement "if (iVar22 < 0) {\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" (if "if") (parenthesized_expression "(iVar22 < 0)" (( "(") (binary_expression "iVar22 < 0" (identifier "iVar22") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        pr2serr("bad argument to \'--timeout\'\n");\n        uVar8 = 1;\n        goto LAB_00101539;\n      }" ({ "{") (expression_statement "pr2serr("bad argument to \'--timeout\'\n");" (call_expression "pr2serr("bad argument to \'--timeout\'\n")" (identifier "pr2serr") (argument_list "("bad argument to \'--timeout\'\n")" (( "(") (string_literal ""bad argument to \'--timeout\'\n"" (" """) (string_content "bad argument to ") (escape_sequence "\'") (string_content "--timeout") (escape_sequence "\'") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (if_statement "if (iVar22 == 0) {\n        iVar22 = 0x3c;\n      }" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar22 = 0x3c;\n      }" ({ "{") (expression_statement "iVar22 = 0x3c;" (assignment_expression "iVar22 = 0x3c" (identifier "iVar22") (= "=") (number_literal "0x3c")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x76:\n      local_ec4 = local_ec4 + 1;\n      bVar3 = true;" (case "case") (number_literal "0x76") (: ":") (expression_statement "local_ec4 = local_ec4 + 1;" (assignment_expression "local_ec4 = local_ec4 + 1" (identifier "local_ec4") (= "=") (binary_expression "local_ec4 + 1" (identifier "local_ec4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";"))) (} "}"))) (} "}"))) (if_statement "if (optind < param_1) {\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }\n  else {\n    local_e98 = 0;\n  }" (if "if") (parenthesized_expression "(optind < param_1)" (( "(") (binary_expression "optind < param_1" (identifier "optind") (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n    local_e98 = *(long *)(param_2 + (long)optind * 8);\n    optind = optind + 1;\n    if (optind < param_1) goto LAB_0010172e;\n  }" ({ "{") (expression_statement "local_e98 = *(long *)(param_2 + (long)optind * 8);" (assignment_expression "local_e98 = *(long *)(param_2 + (long)optind * 8)" (identifier "local_e98") (= "=") (pointer_expression "*(long *)(param_2 + (long)optind * 8)" (* "*") (cast_expression "(long *)(param_2 + (long)optind * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + (long)optind * 8)" (( "(") (binary_expression "param_2 + (long)optind * 8" (identifier "param_2") (+ "+") (binary_expression "(long)optind * 8" (cast_expression "(long)optind" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "optind")) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" (identifier "optind") (= "=") (binary_expression "optind + 1" (identifier "optind") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (optind < param_1) goto LAB_0010172e;" (if "if") (parenthesized_expression "(optind < param_1)" (( "(") (binary_expression "optind < param_1" (identifier "optind") (< "<") (identifier "param_1")) () ")")) (goto_statement "goto LAB_0010172e;" (goto "goto") (statement_identifier "LAB_0010172e") (; ";"))) (} "}")) (else_clause "else {\n    local_e98 = 0;\n  }" (else "else") (compound_statement "{\n    local_e98 = 0;\n  }" ({ "{") (expression_statement "local_e98 = 0;" (assignment_expression "local_e98 = 0" (identifier "local_e98") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if ((bVar3) && (bVar1)) {\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }\n  else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" (if "if") (parenthesized_expression "((bVar3) && (bVar1))" (( "(") (binary_expression "(bVar3) && (bVar1)" (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (&& "&&") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")"))) () ")")) (compound_statement "{\n    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n  }" ({ "{") (expression_statement "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (call_expression "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" (identifier "pr2serr") (argument_list "("Not in DEBUG mode, so \'-vV\' has no special action\n")" (( "(") (string_literal ""Not in DEBUG mode, so \'-vV\' has no special action\n"" (" """) (string_content "Not in DEBUG mode, so ") (escape_sequence "\'") (string_content "-vV") (escape_sequence "\'") (string_content " has no special action") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" (else "else") (if_statement "if (!bVar1) {\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n    if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    bVar3 = false;\n    if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }\n    if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    puVar21 = local_c48;\n    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }\n    puVar19 = local_e48;\n    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }\nLAB_001018ea:\n    lVar17 = -1;\n    pFVar18 = local_eb8;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');\n    if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }\n    lVar17 = 0;\n    pFVar18 = local_eb8;\n    do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar9 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }\nLAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }\n    lVar17 = -1;\n    pcVar15 = local_eb0;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');\n    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");\n    if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }\n    lVar17 = 0;\n    pcVar15 = local_eb0;\n    do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);\n    iVar10 = iVar7 + 2;\n    if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }\nLAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }\n    if (local_ec0 != (char *)0x0) goto LAB_00101840;\nLAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;\n    __memset_chk(&local_848,0,(long)iVar10,0x808);\n    puVar19 = &local_848;\n    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }\n    uVar2 = (ushort)(iVar9 * 0x10);\n    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;\n    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;\n    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n    if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }\n    if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }\n    if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }\n    goto LAB_00101539;\n  }" ({ "{") (if_statement "if (local_e98 == 0) {\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" (if "if") (parenthesized_expression "(local_e98 == 0)" (( "(") (binary_expression "local_e98 == 0" (identifier "local_e98") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pr2serr("missing device name!\n\n");\n      FUN_001012d5();\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" ({ "{") (expression_statement "pr2serr("missing device name!\n\n");" (call_expression "pr2serr("missing device name!\n\n")" (identifier "pr2serr") (argument_list "("missing device name!\n\n")" (( "(") (string_literal ""missing device name!\n\n"" (" """) (string_content "missing device name!") (escape_sequence "\n") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" (identifier "FUN_001012d5") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (if_statement "if (local_ea4 != 0) {\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }" (if "if") (parenthesized_expression "(local_ea4 != 0)" (( "(") (binary_expression "local_ea4 != 0" (identifier "local_ea4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      bVar1 = local_e90 < uVar24 && local_e90 != 0;\n      if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);\n      if (iVar7 < 0) goto LAB_001016ce;\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      bVar3 = bVar1;\n      if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }\n      local_ec8 = 0;\n      if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }\n      goto switchD_00101fe9_caseD_3;\n    }" ({ "{") (if_statement "if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" (if "if") (parenthesized_expression "(local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0))" (( "(") (binary_expression "local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" (binary_expression "local_ec0 != (char *)0x0" (identifier "local_ec0") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" (( "(") (binary_expression "local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0" (binary_expression "local_eb8 != (FILE *)0x0" (identifier "local_eb8") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "local_eb0 != (char *)0x0" (identifier "local_eb0") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" ({ "{") (expression_statement "pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");" (call_expression "pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n")" (identifier "pr2serr") (argument_list "("Can\'t have --all= together with --lba=, --num= or --in=\n\n")" (( "(") (string_literal ""Can\'t have --all= together with --lba=, --num= or --in=\n\n"" (" """) (string_content "Can") (escape_sequence "\'") (string_content "t have --all= together with --lba=, --num= or --in=") (escape_sequence "\n") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" (identifier "FUN_001012d5") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" (identifier "uVar8") (= "=") (number_literal "0x1f")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (expression_statement "bVar1 = local_e90 < uVar24 && local_e90 != 0;" (assignment_expression "bVar1 = local_e90 < uVar24 && local_e90 != 0" (identifier "bVar1") (= "=") (binary_expression "local_e90 < uVar24 && local_e90 != 0" (binary_expression "local_e90 < uVar24" (identifier "local_e90") (< "<") (identifier "uVar24")) (&& "&&") (binary_expression "local_e90 != 0" (identifier "local_e90") (!= "!=") (number_literal "0")))) (; ";")) (if_statement "if (bVar1) {\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" ({ "{") (expression_statement "pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");" (call_expression "pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n")" (identifier "pr2serr") (argument_list "("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n")" (( "(") (string_literal ""in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n"" (" """) (string_content "in --all=ST,RN,LA start address (ST) exceeds last address (LA)") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" (identifier "uVar8") (= "=") (number_literal "0x1f")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (expression_statement "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);" (assignment_expression "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4)" (identifier "iVar7") (= "=") (call_expression "sg_cmds_open_device(local_e98,0,local_ec4)" (identifier "sg_cmds_open_device") (argument_list "(local_e98,0,local_ec4)" (( "(") (identifier "local_e98") (, ",") (number_literal "0") (, ",") (identifier "local_ec4") () ")")))) (; ";")) (if_statement "if (iVar7 < 0) goto LAB_001016ce;" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_001016ce;" (goto "goto") (statement_identifier "LAB_001016ce") (; ";"))) (expression_statement "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);" (assignment_expression "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" (identifier "uVar8") (= "=") (call_expression "sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" (identifier "sg_simple_inquiry") (argument_list "(iVar7,local_e78,1,local_ec4)" (( "(") (identifier "iVar7") (, ",") (identifier "local_e78") (, ",") (number_literal "1") (, ",") (identifier "local_ec4") () ")")))) (; ";")) (expression_statement "bVar3 = bVar1;" (assignment_expression "bVar3 = bVar1" (identifier "bVar3") (= "=") (identifier "bVar1")) (; ";")) (if_statement "if (local_e90 == 0) {\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }\n      else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" (if "if") (parenthesized_expression "(local_e90 == 0)" (( "(") (binary_expression "local_e90 == 0" (identifier "local_e90") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }\n        if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }\n        if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }\n      }" ({ "{") (expression_statement "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);" (assignment_expression "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" (identifier "sg_ll_readcap_16") (argument_list "(iVar7,0,0,&local_848,0x20,1,local_ec4)" (( "(") (identifier "iVar7") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "0x20") (, ",") (number_literal "1") (, ",") (identifier "local_ec4") () ")")))) (; ";")) (if_statement "if (local_e80[0] == 6) {\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }" (if "if") (parenthesized_expression "(local_e80[0] == 6)" (( "(") (binary_expression "local_e80[0] == 6" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "6")) () ")")) (compound_statement "{\n          pr2serr("Read capacity(16) unit attention, try again\n");\n          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);\n        }" ({ "{") (expression_statement "pr2serr("Read capacity(16) unit attention, try again\n");" (call_expression "pr2serr("Read capacity(16) unit attention, try again\n")" (identifier "pr2serr") (argument_list "("Read capacity(16) unit attention, try again\n")" (( "(") (string_literal ""Read capacity(16) unit attention, try again\n"" (" """) (string_content "Read capacity(16) unit attention, try again") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);" (assignment_expression "local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4)" (identifier "sg_ll_readcap_16") (argument_list "(iVar7,0,0,&local_848,0x20,1,local_ec4)" (( "(") (identifier "iVar7") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "0x20") (, ",") (number_literal "1") (, ",") (identifier "local_ec4") () ")")))) (; ";")) (} "}"))) (if_statement "if (local_e80[0] == 0) {\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }\n        else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }" (if "if") (parenthesized_expression "(local_e80[0] == 0)" (( "(") (binary_expression "local_e80[0] == 0" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }\n          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);\n          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;\n        }" ({ "{") (if_statement "if (3 < local_ec4) {\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }" (if "if") (parenthesized_expression "(3 < local_ec4)" (( "(") (binary_expression "3 < local_ec4" (number_literal "3") (< "<") (identifier "local_ec4")) () ")")) (compound_statement "{\n            pr2serr("Read capacity(16) response:\n");\n            hex2stderr(&local_848,0x20,1);\n          }" ({ "{") (expression_statement "pr2serr("Read capacity(16) response:\n");" (call_expression "pr2serr("Read capacity(16) response:\n")" (identifier "pr2serr") (argument_list "("Read capacity(16) response:\n")" (( "(") (string_literal ""Read capacity(16) response:\n"" (" """) (string_content "Read capacity(16) response:") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "hex2stderr(&local_848,0x20,1);" (call_expression "hex2stderr(&local_848,0x20,1)" (identifier "hex2stderr") (argument_list "(&local_848,0x20,1)" (( "(") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "0x20") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);" (assignment_expression "uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848)" (identifier "uVar20") (= "=") (call_expression "CONCAT22(local_848._2_2_,(ushort)local_848)" (identifier "CONCAT22") (argument_list "(local_848._2_2_,(ushort)local_848)" (( "(") (field_expression "local_848._2_2_" (identifier "local_848") (. ".") (field_identifier "_2_2_")) (, ",") (cast_expression "(ushort)local_848" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_848")) () ")")))) (; ";")) (expression_statement "local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38;" (assignment_expression "local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38" (identifier "local_e90") (= "=") (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |\n                      CONCAT44(uStack_844,uVar20) << 0x38" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8\n                      | ((ulong)uVar20 & 0xff0000) << 0x18" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |\n                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28\n                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18" (binary_expression "(ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28" (call_expression "(ulong)(uStack_844 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uStack_844 >> 0x18)" (( "(") (binary_expression "uStack_844 >> 0x18" (identifier "uStack_844") (>> ">>") (number_literal "0x18")) () ")"))) (| "|") (binary_expression "(((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28" (parenthesized_expression "(((ulong)uStack_844 & 0xff0000) << 0x20)" (( "(") (binary_expression "((ulong)uStack_844 & 0xff0000) << 0x20" (parenthesized_expression "((ulong)uStack_844 & 0xff0000)" (( "(") (binary_expression "(ulong)uStack_844 & 0xff0000" (cast_expression "(ulong)uStack_844" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uStack_844")) (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x20")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18" (parenthesized_expression "(((ulong)uStack_844 & 0xff00) << 0x20)" (( "(") (binary_expression "((ulong)uStack_844 & 0xff00) << 0x20" (parenthesized_expression "((ulong)uStack_844 & 0xff00)" (( "(") (binary_expression "(ulong)uStack_844 & 0xff00" (cast_expression "(ulong)uStack_844" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uStack_844")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x20")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(((ulong)uStack_844 & 0xff) << 0x20) >> 8" (parenthesized_expression "(((ulong)uStack_844 & 0xff) << 0x20)" (( "(") (binary_expression "((ulong)uStack_844 & 0xff) << 0x20" (parenthesized_expression "((ulong)uStack_844 & 0xff)" (( "(") (binary_expression "(ulong)uStack_844 & 0xff" (cast_expression "(ulong)uStack_844" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uStack_844")) (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "0x20")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((ulong)uVar20 & 0xff000000) << 8" (parenthesized_expression "((ulong)uVar20 & 0xff000000)" (( "(") (binary_expression "(ulong)uVar20 & 0xff000000" (cast_expression "(ulong)uVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar20")) (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "((ulong)uVar20 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)uVar20 & 0xff0000)" (( "(") (binary_expression "(ulong)uVar20 & 0xff0000" (cast_expression "(ulong)uVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar20")) (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)uVar20 & 0xff00) << 0x28" (parenthesized_expression "((ulong)uVar20 & 0xff00)" (( "(") (binary_expression "(ulong)uVar20 & 0xff00" (cast_expression "(ulong)uVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar20")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "CONCAT44(uStack_844,uVar20) << 0x38" (call_expression "CONCAT44(uStack_844,uVar20)" (identifier "CONCAT44") (argument_list "(uStack_844,uVar20)" (( "(") (identifier "uStack_844") (, ",") (identifier "uVar20") () ")"))) (<< "<<") (number_literal "0x38")))) (; ";")) (} "}")) (else_clause "else {\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }" (else "else") (compound_statement "{\n          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }\n          if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }\n          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);\n        }" ({ "{") (if_statement "if ((local_e80[0] - 5 & 0xfffffffb) != 0) {\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }" (if "if") (parenthesized_expression "((local_e80[0] - 5 & 0xfffffffb) != 0)" (( "(") (binary_expression "(local_e80[0] - 5 & 0xfffffffb) != 0" (parenthesized_expression "(local_e80[0] - 5 & 0xfffffffb)" (( "(") (binary_expression "local_e80[0] - 5 & 0xfffffffb" (binary_expression "local_e80[0] - 5" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (- "-") (number_literal "5")) (& "&") (number_literal "0xfffffffb")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }\n            pr2serr("Read capacity(16) failed\n");\n            uVar8 = local_e80[0];\n            goto switchD_00101fe9_caseD_3;\n          }" ({ "{") (if_statement "if ((int)local_e80[0] < 0) {\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }" (if "if") (parenthesized_expression "((int)local_e80[0] < 0)" (( "(") (binary_expression "(int)local_e80[0] < 0" (cast_expression "(int)local_e80[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              local_e80[0] = sg_convert_errno(-local_e80[0]);\n            }" ({ "{") (expression_statement "local_e80[0] = sg_convert_errno(-local_e80[0]);" (assignment_expression "local_e80[0] = sg_convert_errno(-local_e80[0])" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "sg_convert_errno(-local_e80[0])" (identifier "sg_convert_errno") (argument_list "(-local_e80[0])" (( "(") (unary_expression "-local_e80[0]" (- "-") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]"))) () ")")))) (; ";")) (} "}"))) (expression_statement "pr2serr("Read capacity(16) failed\n");" (call_expression "pr2serr("Read capacity(16) failed\n")" (identifier "pr2serr") (argument_list "("Read capacity(16) failed\n")" (( "(") (string_literal ""Read capacity(16) failed\n"" (" """) (string_content "Read capacity(16) failed") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = local_e80[0];" (assignment_expression "uVar8 = local_e80[0]" (identifier "uVar8") (= "=") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]"))) (; ";")) (goto_statement "goto switchD_00101fe9_caseD_3;" (goto "goto") (statement_identifier "switchD_00101fe9_caseD_3") (; ";")) (} "}"))) (if_statement "if (local_ec4 == 0) {\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }\n          else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }" (if "if") (parenthesized_expression "(local_ec4 == 0)" (( "(") (binary_expression "local_ec4 == 0" (identifier "local_ec4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);\n            if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }\n          }" ({ "{") (expression_statement "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);" (assignment_expression "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0)" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0)" (identifier "sg_ll_readcap_10") (argument_list "(iVar7,0,0,&local_848,8,1,0)" (( "(") (identifier "iVar7") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "8") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (local_e80[0] != 0) {\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }" (if "if") (parenthesized_expression "(local_e80[0] != 0)" (( "(") (binary_expression "local_e80[0] != 0" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }\n              pr2serr("Read capacity(10) failed\n");\n              uVar8 = local_e80[0];\n              goto switchD_00101fe9_caseD_3;\n            }" ({ "{") (labeled_statement "LAB_001022f0:\n              if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }" (statement_identifier "LAB_001022f0") (: ":") (if_statement "if ((int)local_e80[0] < 0) {\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }" (if "if") (parenthesized_expression "((int)local_e80[0] < 0)" (( "(") (binary_expression "(int)local_e80[0] < 0" (cast_expression "(int)local_e80[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                local_e80[0] = sg_convert_errno(-local_e80[0]);\n              }" ({ "{") (expression_statement "local_e80[0] = sg_convert_errno(-local_e80[0]);" (assignment_expression "local_e80[0] = sg_convert_errno(-local_e80[0])" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "sg_convert_errno(-local_e80[0])" (identifier "sg_convert_errno") (argument_list "(-local_e80[0])" (( "(") (unary_expression "-local_e80[0]" (- "-") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]"))) () ")")))) (; ";")) (} "}")))) (expression_statement "pr2serr("Read capacity(10) failed\n");" (call_expression "pr2serr("Read capacity(10) failed\n")" (identifier "pr2serr") (argument_list "("Read capacity(10) failed\n")" (( "(") (string_literal ""Read capacity(10) failed\n"" (" """) (string_content "Read capacity(10) failed") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = local_e80[0];" (assignment_expression "uVar8 = local_e80[0]" (identifier "uVar8") (= "=") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]"))) (; ";")) (goto_statement "goto switchD_00101fe9_caseD_3;" (goto "goto") (statement_identifier "switchD_00101fe9_caseD_3") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }" (else "else") (compound_statement "{\n            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");\n            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);\n            if (local_e80[0] != 0) goto LAB_001022f0;\n            if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }\n          }" ({ "{") (expression_statement "pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");" (call_expression "pr2serr("Read capacity(16) not supported, try Read capacity(10)\n")" (identifier "pr2serr") (argument_list "("Read capacity(16) not supported, try Read capacity(10)\n")" (( "(") (string_literal ""Read capacity(16) not supported, try Read capacity(10)\n"" (" """) (string_content "Read capacity(16) not supported, try Read capacity(10)") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);" (assignment_expression "local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4)" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4)" (identifier "sg_ll_readcap_10") (argument_list "(iVar7,0,0,&local_848,8,1,local_ec4)" (( "(") (identifier "iVar7") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "8") (, ",") (number_literal "1") (, ",") (identifier "local_ec4") () ")")))) (; ";")) (if_statement "if (local_e80[0] != 0) goto LAB_001022f0;" (if "if") (parenthesized_expression "(local_e80[0] != 0)" (( "(") (binary_expression "local_e80[0] != 0" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001022f0;" (goto "goto") (statement_identifier "LAB_001022f0") (; ";"))) (if_statement "if (3 < local_ec4) {\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }" (if "if") (parenthesized_expression "(3 < local_ec4)" (( "(") (binary_expression "3 < local_ec4" (number_literal "3") (< "<") (identifier "local_ec4")) () ")")) (compound_statement "{\n              pr2serr("Read capacity(10) response:\n");\n              hex2stderr(&local_848,8,1);\n            }" ({ "{") (expression_statement "pr2serr("Read capacity(10) response:\n");" (call_expression "pr2serr("Read capacity(10) response:\n")" (identifier "pr2serr") (argument_list "("Read capacity(10) response:\n")" (( "(") (string_literal ""Read capacity(10) response:\n"" (" """) (string_content "Read capacity(10) response:") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "hex2stderr(&local_848,8,1);" (call_expression "hex2stderr(&local_848,8,1)" (identifier "hex2stderr") (argument_list "(&local_848,8,1)" (( "(") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "8") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);" (assignment_expression "local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18)" (identifier "local_e90") (= "=") (call_expression "(ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18)" (( "(") (binary_expression "(uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8 |\n                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18" (binary_expression "(uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8\n                              | ((ushort)local_848 & 0xff00) << 8" (binary_expression "(uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8" (call_expression "(uint)(local_848._2_2_ >> 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_848._2_2_ >> 8)" (( "(") (binary_expression "local_848._2_2_ >> 8" (field_expression "local_848._2_2_" (identifier "local_848") (. ".") (field_identifier "_2_2_")) (>> ">>") (number_literal "8")) () ")"))) (| "|") (binary_expression "((local_848._2_2_ & 0xff) << 0x10) >> 8" (parenthesized_expression "((local_848._2_2_ & 0xff) << 0x10)" (( "(") (binary_expression "(local_848._2_2_ & 0xff) << 0x10" (parenthesized_expression "(local_848._2_2_ & 0xff)" (( "(") (binary_expression "local_848._2_2_ & 0xff" (field_expression "local_848._2_2_" (identifier "local_848") (. ".") (field_identifier "_2_2_")) (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "0x10")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((ushort)local_848 & 0xff00) << 8" (parenthesized_expression "((ushort)local_848 & 0xff00)" (( "(") (binary_expression "(ushort)local_848 & 0xff00" (cast_expression "(ushort)local_848" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_848")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18" (call_expression "CONCAT22(local_848._2_2_,(ushort)local_848)" (identifier "CONCAT22") (argument_list "(local_848._2_2_,(ushort)local_848)" (( "(") (field_expression "local_848._2_2_" (identifier "local_848") (. ".") (field_identifier "_2_2_")) (, ",") (cast_expression "(ushort)local_848" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_848")) () ")"))) (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (} "}")))) (if_statement "if (local_e90 < uVar24) {\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }" (if "if") (parenthesized_expression "(local_e90 < uVar24)" (( "(") (binary_expression "local_e90 < uVar24" (identifier "local_e90") (< "<") (identifier "uVar24")) () ")")) (compound_statement "{\n          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);\n          uVar8 = 0x1f;\n          goto switchD_00101fe9_caseD_3;\n        }" ({ "{") (expression_statement "pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90);" (call_expression "pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90)" (identifier "pr2serr") (argument_list "("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",\n                  uVar24,local_e90)" (( "(") (string_literal ""after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n"" (" """) (string_content "after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar24") (, ",") (identifier "local_e90") () ")"))) (; ";")) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" (identifier "uVar8") (= "=") (number_literal "0x1f")) (; ";")) (goto_statement "goto switchD_00101fe9_caseD_3;" (goto "goto") (statement_identifier "switchD_00101fe9_caseD_3") (; ";")) (} "}"))) (if_statement "if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }" (if "if") (parenthesized_expression "(!bVar4)" (( "(") (unary_expression "!bVar4" (! "!") (identifier "bVar4")) () ")")) (compound_statement "{\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);\n          goto LAB_001020d7;\n        }" ({ "{") (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" (identifier "__printf_chk") (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" (( "(") (number_literal "1") (, ",") (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" (" """) (string_content "%s is:  %.8s  %.16s  %.4s") (escape_sequence "\n") (" """)) (, ",") (identifier "local_e98") (, ",") (identifier "local_e70") (, ",") (identifier "local_e67") (, ",") (identifier "local_e56") () ")"))) (; ";")) (expression_statement "sleep(3);" (call_expression "sleep(3)" (identifier "sleep") (argument_list "(3)" (( "(") (number_literal "3") () ")"))) (; ";")) (expression_statement "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90);" (call_expression "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90)" (identifier "__snprintf_chk") (argument_list "(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,\n                         local_e90)" (( "(") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "0x78") (, ",") (number_literal "1") (, ",") (number_literal "0x78") (, ",") (string_literal ""LBA 0x%lx to end of %s (0x%lx)"" (" """) (string_content "LBA 0x%lx to end of %s (0x%lx)") (" """)) (, ",") (identifier "uVar24") (, ",") (identifier "local_e98") (, ",") (identifier "local_e90") () ")"))) (; ";")) (goto_statement "goto LAB_001020d7;" (goto "goto") (statement_identifier "LAB_001020d7") (; ";")) (} "}"))) (} "}")) (else_clause "else if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" (else "else") (if_statement "if (!bVar4) {\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" (if "if") (parenthesized_expression "(!bVar4)" (( "(") (unary_expression "!bVar4" (! "!") (identifier "bVar4")) () ")")) (compound_statement "{\n        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n        sleep(3);\n        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;\nLAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP will commence in 10 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(5);\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);\n        puts("        Press control-C to abort");\n        sleep(7);\n      }" ({ "{") (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" (identifier "__printf_chk") (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" (( "(") (number_literal "1") (, ",") (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" (" """) (string_content "%s is:  %.8s  %.16s  %.4s") (escape_sequence "\n") (" """)) (, ",") (identifier "local_e98") (, ",") (identifier "local_e70") (, ",") (identifier "local_e67") (, ",") (identifier "local_e56") () ")"))) (; ";")) (expression_statement "sleep(3);" (call_expression "sleep(3)" (identifier "sleep") (argument_list "(3)" (( "(") (number_literal "3") () ")"))) (; ";")) (expression_statement "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)\n        ;" (call_expression "__snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)" (identifier "__snprintf_chk") (argument_list "(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)" (( "(") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "0x78") (, ",") (number_literal "1") (, ",") (number_literal "0x78") (, ",") (string_literal ""LBA 0x%lx to 0x%lx on %s"" (" """) (string_content "LBA 0x%lx to 0x%lx on %s") (" """)) (, ",") (identifier "uVar24") (, ",") (identifier "local_e90") (, ",") (identifier "local_e98") () ")"))) (; ";")) (labeled_statement "LAB_001020d7:\n        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" (statement_identifier "LAB_001020d7") (: ":") (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" (identifier "puts") (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" (( "(") (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 15 seconds"" (" """) (escape_sequence "\n") (string_content "An UNMAP (a.k.a. trim) will commence in 15 seconds") (" """)) () ")"))) (; ";"))) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848)" (identifier "__printf_chk") (argument_list "(1,"    ALL data from %s will be LOST\n",&local_848)" (( "(") (number_literal "1") (, ",") (string_literal ""    ALL data from %s will be LOST\n"" (" """) (string_content "    ALL data from %s will be LOST") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) () ")"))) (; ";")) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" (identifier "puts") (argument_list "("        Press control-C to abort")" (( "(") (string_literal ""        Press control-C to abort"" (" """) (string_content "        Press control-C to abort") (" """)) () ")"))) (; ";")) (expression_statement "sleep(5);" (call_expression "sleep(5)" (identifier "sleep") (argument_list "(5)" (( "(") (number_literal "5") () ")"))) (; ";")) (expression_statement "puts("\nAn UNMAP will commence in 10 seconds");" (call_expression "puts("\nAn UNMAP will commence in 10 seconds")" (identifier "puts") (argument_list "("\nAn UNMAP will commence in 10 seconds")" (( "(") (string_literal ""\nAn UNMAP will commence in 10 seconds"" (" """) (escape_sequence "\n") (string_content "An UNMAP will commence in 10 seconds") (" """)) () ")"))) (; ";")) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848)" (identifier "__printf_chk") (argument_list "(1,"    ALL data from %s will be LOST\n",&local_848)" (( "(") (number_literal "1") (, ",") (string_literal ""    ALL data from %s will be LOST\n"" (" """) (string_content "    ALL data from %s will be LOST") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) () ")"))) (; ";")) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" (identifier "puts") (argument_list "("        Press control-C to abort")" (( "(") (string_literal ""        Press control-C to abort"" (" """) (string_content "        Press control-C to abort") (" """)) () ")"))) (; ";")) (expression_statement "sleep(5);" (call_expression "sleep(5)" (identifier "sleep") (argument_list "(5)" (( "(") (number_literal "5") () ")"))) (; ";")) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" (identifier "puts") (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" (( "(") (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 5 seconds"" (" """) (escape_sequence "\n") (string_content "An UNMAP (a.k.a. trim) will commence in 5 seconds") (" """)) () ")"))) (; ";")) (expression_statement "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);" (call_expression "__printf_chk(1,"    ALL data from %s will be LOST\n",&local_848)" (identifier "__printf_chk") (argument_list "(1,"    ALL data from %s will be LOST\n",&local_848)" (( "(") (number_literal "1") (, ",") (string_literal ""    ALL data from %s will be LOST\n"" (" """) (string_content "    ALL data from %s will be LOST") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) () ")"))) (; ";")) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" (identifier "puts") (argument_list "("        Press control-C to abort")" (( "(") (string_literal ""        Press control-C to abort"" (" """) (string_content "        Press control-C to abort") (" """)) () ")"))) (; ";")) (expression_statement "sleep(7);" (call_expression "sleep(7)" (identifier "sleep") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))))) (expression_statement "local_ec8 = 0;" (assignment_expression "local_ec8 = 0" (identifier "local_ec8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (bVar5) {\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }\n      else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (compound_statement "{\n        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);\n      }" ({ "{") (expression_statement "pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4);" (call_expression "pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4)" (identifier "pr2serr") (argument_list "("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"\n                ,uVar24,local_e90,local_ea4)" (( "(") (string_literal ""Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"" (" """) (string_content "Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx") (escape_sequence "\n") (string_content "    %u blocks per UNMAP command") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar24") (, ",") (identifier "local_e90") (, ",") (identifier "local_ea4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" (else "else") (compound_statement "{\n        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }\nLAB_00102795:\n        bVar3 = bVar5;\n        if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }\n      }" ({ "{") (for_statement "for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }" (for "for") (( "(") (; ";") (binary_expression "uVar24 <= local_e90" (identifier "uVar24") (<= "<=") (identifier "local_e90")) (; ";") (assignment_expression "uVar24 = uVar24 + uVar20" (identifier "uVar24") (= "=") (binary_expression "uVar24 + uVar20" (identifier "uVar24") (+ "+") (identifier "uVar20"))) () ")") (compound_statement "{\n          uVar20 = local_ea4;\n          if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }\n          uVar23 = uVar20 + uVar24;\n          bVar3 = false;\n          while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }\n          local_ec8 = local_ec8 + 1;\n        }" ({ "{") (expression_statement "uVar20 = local_ea4;" (assignment_expression "uVar20 = local_ea4" (identifier "uVar20") (= "=") (identifier "local_ea4")) (; ";")) (if_statement "if (local_e90 - uVar24 < (ulong)local_ea4) {\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }" (if "if") (parenthesized_expression "(local_e90 - uVar24 < (ulong)local_ea4)" (( "(") (binary_expression "local_e90 - uVar24 < (ulong)local_ea4" (binary_expression "local_e90 - uVar24" (identifier "local_e90") (- "-") (identifier "uVar24")) (< "<") (cast_expression "(ulong)local_ea4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_ea4"))) () ")")) (compound_statement "{\n            uVar20 = ((int)local_e90 + 1) - (int)uVar24;\n          }" ({ "{") (expression_statement "uVar20 = ((int)local_e90 + 1) - (int)uVar24;" (assignment_expression "uVar20 = ((int)local_e90 + 1) - (int)uVar24" (identifier "uVar20") (= "=") (binary_expression "((int)local_e90 + 1) - (int)uVar24" (parenthesized_expression "((int)local_e90 + 1)" (( "(") (binary_expression "(int)local_e90 + 1" (cast_expression "(int)local_e90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e90")) (+ "+") (number_literal "1")) () ")")) (- "-") (cast_expression "(int)uVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar24")))) (; ";")) (} "}"))) (expression_statement "uVar23 = uVar20 + uVar24;" (assignment_expression "uVar23 = uVar20 + uVar24" (identifier "uVar23") (= "=") (binary_expression "uVar20 + uVar24" (identifier "uVar20") (+ "+") (identifier "uVar24"))) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (while_statement "while( true ) {\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            puVar19 = &uStack_844;\n            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }\n            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;\n            local_848._0_2_ = 0x1600;\n            local_848._2_2_ = 0x1000;\n            iVar9 = 2;\n            if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }\n            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);\n            if (bVar3) goto LAB_00102795;\n            if (uVar8 == 0) break;\n            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;\n            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");\n            uVar23 = uVar23 - 1;\n            if (uVar20 < 2) goto LAB_00102795;\n            uVar20 = uVar20 - 1;\n            bVar3 = true;\n          }" ({ "{") (expression_statement "puVar19 = &uStack_844;" (assignment_expression "puVar19 = &uStack_844" (identifier "puVar19") (= "=") (pointer_expression "&uStack_844" (& "&") (identifier "uStack_844"))) (; ";")) (for_statement "for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }" (for "for") (( "(") (assignment_expression "lVar17 = 5" (identifier "lVar17") (= "=") (number_literal "5")) (; ";") (binary_expression "lVar17 != 0" (identifier "lVar17") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar17 = lVar17 + -1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + -1" (identifier "lVar17") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n              *puVar19 = 0;\n              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;\n            }" ({ "{") (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;" (assignment_expression "puVar19 = puVar19 + (ulong)bVar25 * -2 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + (ulong)bVar25 * -2 + 1" (binary_expression "puVar19 + (ulong)bVar25 * -2" (identifier "puVar19") (+ "+") (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;" (assignment_expression "local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (identifier "local_840") (= "=") (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                        (uVar24 & 0xff00) << 0x28" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                        (uVar24 & 0xff000000) << 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                        (uVar24 & 0xff0000000000) >> 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28" (binary_expression "uVar24 >> 0x38" (identifier "uVar24") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar24 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar24 & 0xff000000000000)" (( "(") (binary_expression "uVar24 & 0xff000000000000" (identifier "uVar24") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar24 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar24 & 0xff0000000000)" (( "(") (binary_expression "uVar24 & 0xff0000000000" (identifier "uVar24") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar24 & 0xff00000000) >> 8" (parenthesized_expression "(uVar24 & 0xff00000000)" (( "(") (binary_expression "uVar24 & 0xff00000000" (identifier "uVar24") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar24 & 0xff000000) << 8" (parenthesized_expression "(uVar24 & 0xff000000)" (( "(") (binary_expression "uVar24 & 0xff000000" (identifier "uVar24") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar24 & 0xff0000) << 0x18" (parenthesized_expression "(uVar24 & 0xff0000)" (( "(") (binary_expression "uVar24 & 0xff0000" (identifier "uVar24") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar24 & 0xff00) << 0x28" (parenthesized_expression "(uVar24 & 0xff00)" (( "(") (binary_expression "uVar24 & 0xff00" (identifier "uVar24") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar24 << 0x38" (identifier "uVar24") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18;" (assignment_expression "local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18" (subscript_expression "local_838[0]" (identifier "local_838") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                           uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" (identifier "uVar20") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" (( "(") (binary_expression "uVar20 & 0xff0000" (identifier "uVar20") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" (( "(") (binary_expression "uVar20 & 0xff00" (identifier "uVar20") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar20 << 0x18" (identifier "uVar20") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_848._0_2_ = 0x1600;" (assignment_expression "local_848._0_2_ = 0x1600" (field_expression "local_848._0_2_" (identifier "local_848") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "0x1600")) (; ";")) (expression_statement "local_848._2_2_ = 0x1000;" (assignment_expression "local_848._2_2_ = 0x1000" (field_expression "local_848._2_2_" (identifier "local_848") (. ".") (field_identifier "_2_2_")) (= "=") (number_literal "0x1000")) (; ";")) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" (identifier "iVar9") (= "=") (number_literal "2")) (; ";")) (if_statement "if (1 < local_ec4) {\n              iVar9 = local_ec4;\n            }" (if "if") (parenthesized_expression "(1 < local_ec4)" (( "(") (binary_expression "1 < local_ec4" (number_literal "1") (< "<") (identifier "local_ec4")) () ")")) (compound_statement "{\n              iVar9 = local_ec4;\n            }" ({ "{") (expression_statement "iVar9 = local_ec4;" (assignment_expression "iVar9 = local_ec4" (identifier "iVar9") (= "=") (identifier "local_ec4")) (; ";")) (} "}"))) (expression_statement "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);" (assignment_expression "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2)" (identifier "uVar8") (= "=") (call_expression "sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2)" (identifier "sg_ll_unmap_v2") (argument_list "(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2)" (( "(") (identifier "iVar7") (, ",") (identifier "local_e9d") (, ",") (identifier "local_e9c") (, ",") (identifier "iVar22") (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "0x18") (, ",") (number_literal "1") (, ",") (binary_expression "iVar9 + -2" (identifier "iVar9") (+ "+") (number_literal "-2")) () ")")))) (; ";")) (if_statement "if (bVar3) goto LAB_00102795;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto LAB_00102795;" (goto "goto") (statement_identifier "LAB_00102795") (; ";"))) (if_statement "if (uVar8 == 0) break;" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;" (if "if") (parenthesized_expression "((uVar8 != 0x16) || (uVar23 <= local_e90))" (( "(") (binary_expression "(uVar8 != 0x16) || (uVar23 <= local_e90)" (parenthesized_expression "(uVar8 != 0x16)" (( "(") (binary_expression "uVar8 != 0x16" (identifier "uVar8") (!= "!=") (number_literal "0x16")) () ")")) (|| "||") (parenthesized_expression "(uVar23 <= local_e90)" (( "(") (binary_expression "uVar23 <= local_e90" (identifier "uVar23") (<= "<=") (identifier "local_e90")) () ")"))) () ")")) (goto_statement "goto LAB_00102795;" (goto "goto") (statement_identifier "LAB_00102795") (; ";"))) (expression_statement "pr2serr("Typical end of disk out-of-range, decrement count and retry\n");" (call_expression "pr2serr("Typical end of disk out-of-range, decrement count and retry\n")" (identifier "pr2serr") (argument_list "("Typical end of disk out-of-range, decrement count and retry\n")" (( "(") (string_literal ""Typical end of disk out-of-range, decrement count and retry\n"" (" """) (string_content "Typical end of disk out-of-range, decrement count and retry") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 - 1" (identifier "uVar23") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (uVar20 < 2) goto LAB_00102795;" (if "if") (parenthesized_expression "(uVar20 < 2)" (( "(") (binary_expression "uVar20 < 2" (identifier "uVar20") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00102795;" (goto "goto") (statement_identifier "LAB_00102795") (; ";"))) (expression_statement "uVar20 = uVar20 - 1;" (assignment_expression "uVar20 = uVar20 - 1" (identifier "uVar20") (= "=") (binary_expression "uVar20 - 1" (identifier "uVar20") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (} "}"))) (expression_statement "local_ec8 = local_ec8 + 1;" (assignment_expression "local_ec8 = local_ec8 + 1" (identifier "local_ec8") (= "=") (binary_expression "local_ec8 + 1" (identifier "local_ec8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (labeled_statement "LAB_00102795:\n        bVar3 = bVar5;" (statement_identifier "LAB_00102795") (: ":") (expression_statement "bVar3 = bVar5;" (assignment_expression "bVar3 = bVar5" (identifier "bVar3") (= "=") (identifier "bVar5")) (; ";"))) (if_statement "if (local_ec4 != 0) {\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }" (if "if") (parenthesized_expression "(local_ec4 != 0)" (( "(") (binary_expression "local_ec4 != 0" (identifier "local_ec4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pr2serr("Completed %d UNMAP commands\n",local_ec8);\n        }" ({ "{") (expression_statement "pr2serr("Completed %d UNMAP commands\n",local_ec8);" (call_expression "pr2serr("Completed %d UNMAP commands\n",local_ec8)" (identifier "pr2serr") (argument_list "("Completed %d UNMAP commands\n",local_ec8)" (( "(") (string_literal ""Completed %d UNMAP commands\n"" (" """) (string_content "Completed %d UNMAP commands") (escape_sequence "\n") (" """)) (, ",") (identifier "local_ec8") () ")"))) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto switchD_00101fe9_caseD_3;" (goto "goto") (statement_identifier "switchD_00101fe9_caseD_3") (; ";")) (} "}"))) (if_statement "if (local_ec0 != (char *)0x0) {\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" (if "if") (parenthesized_expression "(local_ec0 != (char *)0x0)" (( "(") (binary_expression "local_ec0 != (char *)0x0" (identifier "local_ec0") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }\n      puVar21 = local_c48;\n      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }\n      puVar19 = local_e48;\n      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }\n      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;\nLAB_00101840:\n      lVar17 = -1;\n      pcVar15 = local_ec0;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');\n      if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }\n      pr2serr("bad argument to \'--in\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" ({ "{") (if_statement "if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" (if "if") (parenthesized_expression "(local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)" (( "(") (binary_expression "local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0" (binary_expression "local_eb8 != (FILE *)0x0" (identifier "local_eb8") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "local_eb0 != (char *)0x0" (identifier "local_eb0") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");\n        FUN_001012d5();\n        uVar8 = 0x1f;\n        goto LAB_00101539;\n      }" ({ "{") (expression_statement "pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");" (call_expression "pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n")" (identifier "pr2serr") (argument_list "("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n")" (( "(") (string_literal ""expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n"" (" """) (string_content "expect ") (escape_sequence "\'") (string_content "--in=") (escape_sequence "\'") (string_content " by itself, or both ") (escape_sequence "\'") (string_content "--lba=") (escape_sequence "\'") (string_content " and ") (escape_sequence "\'") (string_content "--num=") (escape_sequence "\'") (escape_sequence "\n") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" (identifier "FUN_001012d5") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" (identifier "uVar8") (= "=") (number_literal "0x1f")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (expression_statement "puVar21 = local_c48;" (assignment_expression "puVar21 = local_c48" (identifier "puVar21") (= "=") (identifier "local_c48")) (; ";")) (for_statement "for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }" (for "for") (( "(") (assignment_expression "lVar17 = 0x80" (identifier "lVar17") (= "=") (number_literal "0x80")) (; ";") (binary_expression "lVar17 != 0" (identifier "lVar17") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar17 = lVar17 + -1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + -1" (identifier "lVar17") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        *puVar21 = 0;\n        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n      }" ({ "{") (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;" (assignment_expression "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1" (identifier "puVar21") (= "=") (binary_expression "puVar21 + (ulong)bVar25 * -2 + 1" (binary_expression "puVar21 + (ulong)bVar25 * -2" (identifier "puVar21") (+ "+") (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "puVar19 = local_e48;" (assignment_expression "puVar19 = local_e48" (identifier "puVar19") (= "=") (identifier "local_e48")) (; ";")) (for_statement "for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }" (for "for") (( "(") (assignment_expression "lVar17 = 0x40" (identifier "lVar17") (= "=") (number_literal "0x40")) (; ";") (binary_expression "lVar17 != 0" (identifier "lVar17") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar17 = lVar17 + -1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + -1" (identifier "lVar17") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        puVar19[0] = 0;\n        puVar19[1] = 0;\n        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n      }" ({ "{") (expression_statement "puVar19[0] = 0;" (assignment_expression "puVar19[0] = 0" (subscript_expression "puVar19[0]" (identifier "puVar19") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19[1] = 0;" (assignment_expression "puVar19[1] = 0" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;" (assignment_expression "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2" (identifier "puVar19") (= "=") (binary_expression "puVar19 + ((ulong)bVar25 * -2 + 1) * 2" (identifier "puVar19") (+ "+") (binary_expression "((ulong)bVar25 * -2 + 1) * 2" (parenthesized_expression "((ulong)bVar25 * -2 + 1)" (( "(") (binary_expression "(ulong)bVar25 * -2 + 1" (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2")))) (; ";")) (} "}"))) (if_statement "if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;" (if "if") (parenthesized_expression "((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0))" (( "(") (binary_expression "(local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)" (parenthesized_expression "(local_eb0 != (char *)0x0)" (( "(") (binary_expression "local_eb0 != (char *)0x0" (identifier "local_eb0") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_eb8 != (FILE *)0x0)" (( "(") (binary_expression "local_eb8 != (FILE *)0x0" (identifier "local_eb8") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (goto_statement "goto LAB_001018ea;" (goto "goto") (statement_identifier "LAB_001018ea") (; ";"))) (labeled_statement "LAB_00101840:\n      lVar17 = -1;" (statement_identifier "LAB_00101840") (: ":") (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" (identifier "lVar17") (= "=") (number_literal "-1")) (; ";"))) (expression_statement "pcVar15 = local_ec0;" (assignment_expression "pcVar15 = local_ec0" (identifier "pcVar15") (= "=") (identifier "local_ec0")) (; ";")) (do_statement "do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      } while (cVar6 != '\0');" (do "do") (compound_statement "{\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        cVar6 = *pcVar15;\n        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar17 == 0) break;" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + -1" (identifier "lVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar6 = *pcVar15;" (assignment_expression "cVar6 = *pcVar15" (identifier "cVar6") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar25 * -2" (identifier "pcVar15") (+ "+") (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (if_statement "if ((lVar17 == -3) && (*local_ec0 == '-')) {\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }\n      else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" (if "if") (parenthesized_expression "((lVar17 == -3) && (*local_ec0 == '-'))" (( "(") (binary_expression "(lVar17 == -3) && (*local_ec0 == '-')" (parenthesized_expression "(lVar17 == -3)" (( "(") (binary_expression "lVar17 == -3" (identifier "lVar17") (== "==") (number_literal "-3")) () ")")) (&& "&&") (parenthesized_expression "(*local_ec0 == '-')" (( "(") (binary_expression "*local_ec0 == '-'" (pointer_expression "*local_ec0" (* "*") (identifier "local_ec0")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        local_eb8 = stdin;\n        bVar1 = true;\nLAB_00101bce:\n        uVar8 = 0;\n        iVar7 = 0;\n        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }\n        if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }\n        pcVar15 = "stdin";\n        if (!bVar1) {\n          pcVar15 = local_ec0;\n        }\n        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);\nLAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }\n      }" ({ "{") (expression_statement "local_eb8 = stdin;" (assignment_expression "local_eb8 = stdin" (identifier "local_eb8") (= "=") (identifier "stdin")) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (labeled_statement "LAB_00101bce:\n        uVar8 = 0;" (statement_identifier "LAB_00101bce") (: ":") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (while_statement "while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }" (while "while") (parenthesized_expression "(pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0)" (( "(") (comma_expression "pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0" (assignment_expression "pcVar15 = fgets((char *)&local_848,0x400,local_eb8)" (identifier "pcVar15") (= "=") (call_expression "fgets((char *)&local_848,0x400,local_eb8)" (identifier "fgets") (argument_list "((char *)&local_848,0x400,local_eb8)" (( "(") (cast_expression "(char *)&local_848" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (, ",") (number_literal "0x400") (, ",") (identifier "local_eb8") () ")")))) (, ",") (binary_expression "pcVar15 != (char *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n          lVar17 = -1;\n          pcVar15 = (char *)&local_848;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');\n          iVar9 = ~(uint)lVar17 - 1;\n          if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }\nLAB_00101d67:\n          iVar7 = iVar7 + 1;\n          if (iVar7 == 0x200) break;\n        }" ({ "{") (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" (identifier "lVar17") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar15 = (char *)&local_848;" (assignment_expression "pcVar15 = (char *)&local_848" (identifier "pcVar15") (= "=") (cast_expression "(char *)&local_848" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848")))) (; ";")) (do_statement "do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          } while (cVar6 != '\0');" (do "do") (compound_statement "{\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            cVar6 = *pcVar15;\n            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar17 == 0) break;" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + -1" (identifier "lVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar6 = *pcVar15;" (assignment_expression "cVar6 = *pcVar15" (identifier "cVar6") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar25 * -2" (identifier "pcVar15") (+ "+") (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "iVar9 = ~(uint)lVar17 - 1;" (assignment_expression "iVar9 = ~(uint)lVar17 - 1" (identifier "iVar9") (= "=") (binary_expression "~(uint)lVar17 - 1" (unary_expression "~(uint)lVar17" (~ "~") (cast_expression "(uint)lVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar17"))) (- "-") (number_literal "1"))) (; ";")) (if_statement "if (0 < iVar9) {\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }" (if "if") (parenthesized_expression "(0 < iVar9)" (( "(") (binary_expression "0 < iVar9" (number_literal "0") (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n            iVar10 = ~(uint)lVar17 - 2;\n            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;\n            sVar16 = strspn((char *)&local_848," \t");\n            iVar10 = (int)sVar16;\n            if (iVar10 == iVar9) goto LAB_00101d67;\n            pcVar15 = (char *)((long)&local_848 + (long)iVar10);\n            if (*pcVar15 == '#') goto LAB_00101d67;\n            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");\n            iVar11 = (int)sVar16;\n            if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }\n            if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }\n            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);\n            goto LAB_00101c6b;\n          }" ({ "{") (expression_statement "iVar10 = ~(uint)lVar17 - 2;" (assignment_expression "iVar10 = ~(uint)lVar17 - 2" (identifier "iVar10") (= "=") (binary_expression "~(uint)lVar17 - 2" (unary_expression "~(uint)lVar17" (~ "~") (cast_expression "(uint)lVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar17"))) (- "-") (number_literal "2"))) (; ";")) (if_statement "if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))\n            goto LAB_00101d67;" (if "if") (parenthesized_expression "((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))" (( "(") (binary_expression "(*(char *)((long)&local_848 + (long)iVar10) == '\n') &&\n               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1)" (parenthesized_expression "(*(char *)((long)&local_848 + (long)iVar10) == '\n')" (( "(") (binary_expression "*(char *)((long)&local_848 + (long)iVar10) == '\n'" (pointer_expression "*(char *)((long)&local_848 + (long)iVar10)" (* "*") (cast_expression "(char *)((long)&local_848 + (long)iVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_848 + (long)iVar10)" (( "(") (binary_expression "(long)&local_848 + (long)iVar10" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (cast_expression "(long)iVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar10"))) () ")")))) (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1)" (( "(") (comma_expression "*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1" (assignment_expression "*(undefined1 *)((long)&local_848 + (long)iVar10) = 0" (pointer_expression "*(undefined1 *)((long)&local_848 + (long)iVar10)" (* "*") (cast_expression "(undefined1 *)((long)&local_848 + (long)iVar10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_848 + (long)iVar10)" (( "(") (binary_expression "(long)&local_848 + (long)iVar10" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (cast_expression "(long)iVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar10"))) () ")")))) (= "=") (number_literal "0")) (, ",") (comma_expression "iVar9 = iVar10, iVar10 < 1" (assignment_expression "iVar9 = iVar10" (identifier "iVar9") (= "=") (identifier "iVar10")) (, ",") (binary_expression "iVar10 < 1" (identifier "iVar10") (< "<") (number_literal "1")))) () ")"))) () ")")) (goto_statement "goto LAB_00101d67;" (goto "goto") (statement_identifier "LAB_00101d67") (; ";"))) (expression_statement "sVar16 = strspn((char *)&local_848," \t");" (assignment_expression "sVar16 = strspn((char *)&local_848," \t")" (identifier "sVar16") (= "=") (call_expression "strspn((char *)&local_848," \t")" (identifier "strspn") (argument_list "((char *)&local_848," \t")" (( "(") (cast_expression "(char *)&local_848" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (, ",") (string_literal "" \t"" (" """) (string_content " ") (escape_sequence "\t") (" """)) () ")")))) (; ";")) (expression_statement "iVar10 = (int)sVar16;" (assignment_expression "iVar10 = (int)sVar16" (identifier "iVar10") (= "=") (cast_expression "(int)sVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar16"))) (; ";")) (if_statement "if (iVar10 == iVar9) goto LAB_00101d67;" (if "if") (parenthesized_expression "(iVar10 == iVar9)" (( "(") (binary_expression "iVar10 == iVar9" (identifier "iVar10") (== "==") (identifier "iVar9")) () ")")) (goto_statement "goto LAB_00101d67;" (goto "goto") (statement_identifier "LAB_00101d67") (; ";"))) (expression_statement "pcVar15 = (char *)((long)&local_848 + (long)iVar10);" (assignment_expression "pcVar15 = (char *)((long)&local_848 + (long)iVar10)" (identifier "pcVar15") (= "=") (cast_expression "(char *)((long)&local_848 + (long)iVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_848 + (long)iVar10)" (( "(") (binary_expression "(long)&local_848 + (long)iVar10" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (cast_expression "(long)iVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar10"))) () ")")))) (; ";")) (if_statement "if (*pcVar15 == '#') goto LAB_00101d67;" (if "if") (parenthesized_expression "(*pcVar15 == '#')" (( "(") (binary_expression "*pcVar15 == '#'" (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) (== "==") (char_literal "'#'" (' "'") (character "#") (' "'"))) () ")")) (goto_statement "goto LAB_00101d67;" (goto "goto") (statement_identifier "LAB_00101d67") (; ";"))) (expression_statement "sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");" (assignment_expression "sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" (identifier "sVar16") (= "=") (call_expression "strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" (identifier "strspn") (argument_list "(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t")" (( "(") (identifier "pcVar15") (, ",") (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t"" (" """) (string_content "0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,") (escape_sequence "\t") (" """)) () ")")))) (; ";")) (expression_statement "iVar11 = (int)sVar16;" (assignment_expression "iVar11 = (int)sVar16" (identifier "iVar11") (= "=") (cast_expression "(int)sVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar16"))) (; ";")) (if_statement "if (iVar9 - iVar10 <= iVar11) {\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }" (if "if") (parenthesized_expression "(iVar9 - iVar10 <= iVar11)" (( "(") (binary_expression "iVar9 - iVar10 <= iVar11" (binary_expression "iVar9 - iVar10" (identifier "iVar9") (- "-") (identifier "iVar10")) (<= "<=") (identifier "iVar11")) () ")")) (compound_statement "{\n              iVar9 = 0;\nLAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }\n              if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }\n              iVar9 = iVar9 + -1;\nLAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;\n              goto LAB_00101d67;\n            }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00101d1a:\n              while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }" (statement_identifier "LAB_00101d1a") (: ":") (while_statement "while( true ) {\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                uVar24 = sg_get_llnum(pcVar15);\n                if (uVar24 == 0xffffffffffffffff) break;\n                iVar10 = (int)(iVar9 + uVar8) >> 1;\n                if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }\n                if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }\n                pcVar15 = strpbrk(pcVar15," ,\t");\n                if (pcVar15 == (char *)0x0) goto LAB_00101d62;\n                sVar16 = strspn(pcVar15," ,\t");\n                pcVar15 = pcVar15 + sVar16;\n                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;\n              }" ({ "{") (expression_statement "uVar24 = sg_get_llnum(pcVar15);" (assignment_expression "uVar24 = sg_get_llnum(pcVar15)" (identifier "uVar24") (= "=") (call_expression "sg_get_llnum(pcVar15)" (identifier "sg_get_llnum") (argument_list "(pcVar15)" (( "(") (identifier "pcVar15") () ")")))) (; ";")) (if_statement "if (uVar24 == 0xffffffffffffffff) break;" (if "if") (parenthesized_expression "(uVar24 == 0xffffffffffffffff)" (( "(") (binary_expression "uVar24 == 0xffffffffffffffff" (identifier "uVar24") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar10 = (int)(iVar9 + uVar8) >> 1;" (assignment_expression "iVar10 = (int)(iVar9 + uVar8) >> 1" (identifier "iVar10") (= "=") (binary_expression "(int)(iVar9 + uVar8) >> 1" (cast_expression "(int)(iVar9 + uVar8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar9 + uVar8)" (( "(") (binary_expression "iVar9 + uVar8" (identifier "iVar9") (+ "+") (identifier "uVar8")) () ")"))) (>> ">>") (number_literal "1"))) (; ";")) (if_statement "if (0x7f < iVar10) {\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }" (if "if") (parenthesized_expression "(0x7f < iVar10)" (( "(") (binary_expression "0x7f < iVar10" (number_literal "0x7f") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n                  pr2serr("%s: array length exceeded\n","build_joint_arr");\n                  goto LAB_00101c6b;\n                }" ({ "{") (expression_statement "pr2serr("%s: array length exceeded\n","build_joint_arr");" (call_expression "pr2serr("%s: array length exceeded\n","build_joint_arr")" (identifier "pr2serr") (argument_list "("%s: array length exceeded\n","build_joint_arr")" (( "(") (string_literal ""%s: array length exceeded\n"" (" """) (string_content "%s: array length exceeded") (escape_sequence "\n") (" """)) (, ",") (string_literal ""build_joint_arr"" (" """) (string_content "build_joint_arr") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_00101c6b;" (goto "goto") (statement_identifier "LAB_00101c6b") (; ";")) (} "}"))) (if_statement "if ((iVar9 + uVar8 & 1) == 0) {\n                  local_c48[iVar10] = uVar24;\n                }\n                else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }" (if "if") (parenthesized_expression "((iVar9 + uVar8 & 1) == 0)" (( "(") (binary_expression "(iVar9 + uVar8 & 1) == 0" (parenthesized_expression "(iVar9 + uVar8 & 1)" (( "(") (binary_expression "iVar9 + uVar8 & 1" (binary_expression "iVar9 + uVar8" (identifier "iVar9") (+ "+") (identifier "uVar8")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  local_c48[iVar10] = uVar24;\n                }" ({ "{") (expression_statement "local_c48[iVar10] = uVar24;" (assignment_expression "local_c48[iVar10] = uVar24" (subscript_expression "local_c48[iVar10]" (identifier "local_c48") ([ "[") (identifier "iVar10") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (} "}")) (else_clause "else {\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }" (else "else") (compound_statement "{\n                  if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }\n                  local_e48[iVar10] = (uint)uVar24;\n                }" ({ "{") (if_statement "if (0xffffffff < (long)uVar24) {\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }" (if "if") (parenthesized_expression "(0xffffffff < (long)uVar24)" (( "(") (binary_expression "0xffffffff < (long)uVar24" (number_literal "0xffffffff") (< "<") (cast_expression "(long)uVar24" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar24"))) () ")")) (compound_statement "{\n                    local_ed0 = (int)local_38;\n                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);\n                    goto LAB_00101c6b;\n                  }" ({ "{") (expression_statement "local_ed0 = (int)local_38;" (assignment_expression "local_ed0 = (int)local_38" (identifier "local_ed0") (= "=") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) (; ";")) (expression_statement "pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);" (call_expression "pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811)" (identifier "pr2serr") (argument_list "("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",\n                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811)" (( "(") (string_literal ""%s: number exceeds 32 bits in line %d, at pos %d\n"" (" """) (string_content "%s: number exceeds 32 bits in line %d, at pos %d") (escape_sequence "\n") (" """)) (, ",") (string_literal ""build_joint_arr"" (" """) (string_content "build_joint_arr") (" """)) (, ",") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1")) (, ",") (binary_expression "((int)pcVar15 - local_ed0) + 0x811" (parenthesized_expression "((int)pcVar15 - local_ed0)" (( "(") (binary_expression "(int)pcVar15 - local_ed0" (cast_expression "(int)pcVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar15")) (- "-") (identifier "local_ed0")) () ")")) (+ "+") (number_literal "0x811")) () ")"))) (; ";")) (goto_statement "goto LAB_00101c6b;" (goto "goto") (statement_identifier "LAB_00101c6b") (; ";")) (} "}"))) (expression_statement "local_e48[iVar10] = (uint)uVar24;" (assignment_expression "local_e48[iVar10] = (uint)uVar24" (subscript_expression "local_e48[iVar10]" (identifier "local_e48") ([ "[") (identifier "iVar10") (] "]")) (= "=") (cast_expression "(uint)uVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar24"))) (; ";")) (} "}")))) (expression_statement "pcVar15 = strpbrk(pcVar15," ,\t");" (assignment_expression "pcVar15 = strpbrk(pcVar15," ,\t")" (identifier "pcVar15") (= "=") (call_expression "strpbrk(pcVar15," ,\t")" (identifier "strpbrk") (argument_list "(pcVar15," ,\t")" (( "(") (identifier "pcVar15") (, ",") (string_literal "" ,\t"" (" """) (string_content " ,") (escape_sequence "\t") (" """)) () ")")))) (; ";")) (if_statement "if (pcVar15 == (char *)0x0) goto LAB_00101d62;" (if "if") (parenthesized_expression "(pcVar15 == (char *)0x0)" (( "(") (binary_expression "pcVar15 == (char *)0x0" (identifier "pcVar15") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00101d62;" (goto "goto") (statement_identifier "LAB_00101d62") (; ";"))) (expression_statement "sVar16 = strspn(pcVar15," ,\t");" (assignment_expression "sVar16 = strspn(pcVar15," ,\t")" (identifier "sVar16") (= "=") (call_expression "strspn(pcVar15," ,\t")" (identifier "strspn") (argument_list "(pcVar15," ,\t")" (( "(") (identifier "pcVar15") (, ",") (string_literal "" ,\t"" (" """) (string_content " ,") (escape_sequence "\t") (" """)) () ")")))) (; ";")) (expression_statement "pcVar15 = pcVar15 + sVar16;" (assignment_expression "pcVar15 = pcVar15 + sVar16" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + sVar16" (identifier "pcVar15") (+ "+") (identifier "sVar16"))) (; ";")) (if_statement "if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;" (if "if") (parenthesized_expression "((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400))" (( "(") (binary_expression "(*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)" (parenthesized_expression "(*pcVar15 == '\0')" (( "(") (binary_expression "*pcVar15 == '\0'" (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(iVar9 = iVar9 + 1, iVar9 == 0x400)" (( "(") (comma_expression "iVar9 = iVar9 + 1, iVar9 == 0x400" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (, ",") (binary_expression "iVar9 == 0x400" (identifier "iVar9") (== "==") (number_literal "0x400"))) () ")"))) () ")")) (goto_statement "goto LAB_00101d62;" (goto "goto") (statement_identifier "LAB_00101d62") (; ";"))) (} "}")))) (if_statement "if (*pcVar15 != '#') {\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }" (if "if") (parenthesized_expression "(*pcVar15 != '#')" (( "(") (binary_expression "*pcVar15 != '#'" (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) (!= "!=") (char_literal "'#'" (' "'") (character "#") (' "'"))) () ")")) (compound_statement "{\n                local_ed0 = (int)local_38;\n                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);\n                goto LAB_00101c6b;\n              }" ({ "{") (expression_statement "local_ed0 = (int)local_38;" (assignment_expression "local_ed0 = (int)local_38" (identifier "local_ed0") (= "=") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) (; ";")) (expression_statement "pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811);" (call_expression "pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811)" (identifier "pr2serr") (argument_list "("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,\n                        ((int)pcVar15 - local_ed0) + 0x811)" (( "(") (string_literal ""%s: error on line %d, at pos %d\n"" (" """) (string_content "%s: error on line %d, at pos %d") (escape_sequence "\n") (" """)) (, ",") (string_literal ""build_joint_arr"" (" """) (string_content "build_joint_arr") (" """)) (, ",") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1")) (, ",") (binary_expression "((int)pcVar15 - local_ed0) + 0x811" (parenthesized_expression "((int)pcVar15 - local_ed0)" (( "(") (binary_expression "(int)pcVar15 - local_ed0" (cast_expression "(int)pcVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar15")) (- "-") (identifier "local_ed0")) () ")")) (+ "+") (number_literal "0x811")) () ")"))) (; ";")) (goto_statement "goto LAB_00101c6b;" (goto "goto") (statement_identifier "LAB_00101c6b") (; ";")) (} "}"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (labeled_statement "LAB_00101d62:\n              uVar8 = iVar9 + 1 + uVar8;" (statement_identifier "LAB_00101d62") (: ":") (expression_statement "uVar8 = iVar9 + 1 + uVar8;" (assignment_expression "uVar8 = iVar9 + 1 + uVar8" (identifier "uVar8") (= "=") (binary_expression "iVar9 + 1 + uVar8" (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1")) (+ "+") (identifier "uVar8"))) (; ";"))) (goto_statement "goto LAB_00101d67;" (goto "goto") (statement_identifier "LAB_00101d67") (; ";")) (} "}"))) (if_statement "if (pcVar15[iVar11] == '#') {\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }" (if "if") (parenthesized_expression "(pcVar15[iVar11] == '#')" (( "(") (binary_expression "pcVar15[iVar11] == '#'" (subscript_expression "pcVar15[iVar11]" (identifier "pcVar15") ([ "[") (identifier "iVar11") (] "]")) (== "==") (char_literal "'#'" (' "'") (character "#") (' "'"))) () ")")) (compound_statement "{\n              iVar9 = 0;\n              goto LAB_00101d1a;\n            }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00101d1a;" (goto "goto") (statement_identifier "LAB_00101d1a") (; ";")) (} "}"))) (expression_statement "pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11);" (call_expression "pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11)" (identifier "pr2serr") (argument_list "("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,\n                    iVar10 + 1 + iVar11)" (( "(") (string_literal ""%s: syntax error at line %d, pos %d\n"" (" """) (string_content "%s: syntax error at line %d, pos %d") (escape_sequence "\n") (" """)) (, ",") (string_literal ""build_joint_arr"" (" """) (string_content "build_joint_arr") (" """)) (, ",") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1")) (, ",") (binary_expression "iVar10 + 1 + iVar11" (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1")) (+ "+") (identifier "iVar11")) () ")"))) (; ";")) (goto_statement "goto LAB_00101c6b;" (goto "goto") (statement_identifier "LAB_00101c6b") (; ";")) (} "}"))) (labeled_statement "LAB_00101d67:\n          iVar7 = iVar7 + 1;" (statement_identifier "LAB_00101d67") (: ":") (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (iVar7 == 0x200) break;" (if "if") (parenthesized_expression "(iVar7 == 0x200)" (( "(") (binary_expression "iVar7 == 0x200" (identifier "iVar7") (== "==") (number_literal "0x200")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (if_statement "if ((uVar8 & 1) == 0) {\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }" (if "if") (parenthesized_expression "((uVar8 & 1) == 0)" (( "(") (binary_expression "(uVar8 & 1) == 0" (parenthesized_expression "(uVar8 & 1)" (( "(") (binary_expression "uVar8 & 1" (identifier "uVar8") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar9 = (int)uVar8 >> 1;\n          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }\n          if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }\n          goto LAB_00101e88;\n        }" ({ "{") (expression_statement "iVar9 = (int)uVar8 >> 1;" (assignment_expression "iVar9 = (int)uVar8 >> 1" (identifier "iVar9") (= "=") (binary_expression "(int)uVar8 >> 1" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "1"))) (; ";")) (if_statement "if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n            fclose(local_eb8);\n          }" (if "if") (parenthesized_expression "((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin))" (( "(") (binary_expression "(local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)" (parenthesized_expression "(local_eb8 != (FILE *)0x0)" (( "(") (binary_expression "local_eb8 != (FILE *)0x0" (identifier "local_eb8") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_eb8 != stdin)" (( "(") (binary_expression "local_eb8 != stdin" (identifier "local_eb8") (!= "!=") (identifier "stdin")) () ")"))) () ")")) (compound_statement "{\n            fclose(local_eb8);\n          }" ({ "{") (expression_statement "fclose(local_eb8);" (call_expression "fclose(local_eb8)" (identifier "fclose") (argument_list "(local_eb8)" (( "(") (identifier "local_eb8") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar9 < 1) {\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }" (if "if") (parenthesized_expression "(iVar9 < 1)" (( "(") (binary_expression "iVar9 < 1" (identifier "iVar9") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);\n            uVar8 = 1;\n            goto LAB_00101539;\n          }" ({ "{") (expression_statement "pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);" (call_expression "pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0)" (identifier "pr2serr") (argument_list "("no addresses found in \'--in=\' argument, file: %s\n",local_ec0)" (( "(") (string_literal ""no addresses found in \'--in=\' argument, file: %s\n"" (" """) (string_content "no addresses found in ") (escape_sequence "\'") (string_content "--in=") (escape_sequence "\'") (string_content " argument, file: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "local_ec0") () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (goto_statement "goto LAB_00101e88;" (goto "goto") (statement_identifier "LAB_00101e88") (; ";")) (} "}"))) (expression_statement "pcVar15 = "stdin";" (assignment_expression "pcVar15 = "stdin"" (identifier "pcVar15") (= "=") (string_literal ""stdin"" (" """) (string_content "stdin") (" """))) (; ";")) (if_statement "if (!bVar1) {\n          pcVar15 = local_ec0;\n        }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n          pcVar15 = local_ec0;\n        }" ({ "{") (expression_statement "pcVar15 = local_ec0;" (assignment_expression "pcVar15 = local_ec0" (identifier "pcVar15") (= "=") (identifier "local_ec0")) (; ";")) (} "}"))) (expression_statement "pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15);" (call_expression "pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15)" (identifier "pr2serr") (argument_list "("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",\n                pcVar15)" (( "(") (string_literal ""%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n"" (" """) (string_content "%s: expect LBA,NUM pairs but decoded odd number") (escape_sequence "\n") (string_content "  from %s") (escape_sequence "\n") (" """)) (, ",") (string_literal ""build_joint_arr"" (" """) (string_content "build_joint_arr") (" """)) (, ",") (identifier "pcVar15") () ")"))) (; ";")) (labeled_statement "LAB_00101c6b:\n        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }" (statement_identifier "LAB_00101c6b") (: ":") (if_statement "if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {\n          fclose(local_eb8);\n        }" (if "if") (parenthesized_expression "((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin))" (( "(") (binary_expression "(local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)" (parenthesized_expression "(local_eb8 != (FILE *)0x0)" (( "(") (binary_expression "local_eb8 != (FILE *)0x0" (identifier "local_eb8") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_eb8 != stdin)" (( "(") (binary_expression "local_eb8 != stdin" (identifier "local_eb8") (!= "!=") (identifier "stdin")) () ")"))) () ")")) (compound_statement "{\n          fclose(local_eb8);\n        }" ({ "{") (expression_statement "fclose(local_eb8);" (call_expression "fclose(local_eb8)" (identifier "fclose") (argument_list "(local_eb8)" (( "(") (identifier "local_eb8") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" (else "else") (compound_statement "{\n        local_eb8 = fopen64(local_ec0,"r");\n        if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }\n        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);\n      }" ({ "{") (expression_statement "local_eb8 = fopen64(local_ec0,"r");" (assignment_expression "local_eb8 = fopen64(local_ec0,"r")" (identifier "local_eb8") (= "=") (call_expression "fopen64(local_ec0,"r")" (identifier "fopen64") (argument_list "(local_ec0,"r")" (( "(") (identifier "local_ec0") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (; ";")) (if_statement "if (local_eb8 != (FILE *)0x0) {\n          bVar1 = false;\n          goto LAB_00101bce;\n        }" (if "if") (parenthesized_expression "(local_eb8 != (FILE *)0x0)" (( "(") (binary_expression "local_eb8 != (FILE *)0x0" (identifier "local_eb8") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          bVar1 = false;\n          goto LAB_00101bce;\n        }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_00101bce;" (goto "goto") (statement_identifier "LAB_00101bce") (; ";")) (} "}"))) (expression_statement "pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);" (call_expression "pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0)" (identifier "pr2serr") (argument_list "("%s: unable to open %s\n","build_joint_arr",local_ec0)" (( "(") (string_literal ""%s: unable to open %s\n"" (" """) (string_content "%s: unable to open %s") (escape_sequence "\n") (" """)) (, ",") (string_literal ""build_joint_arr"" (" """) (string_content "build_joint_arr") (" """)) (, ",") (identifier "local_ec0") () ")"))) (; ";")) (} "}")))) (expression_statement "pr2serr("bad argument to \'--in\'\n");" (call_expression "pr2serr("bad argument to \'--in\'\n")" (identifier "pr2serr") (argument_list "("bad argument to \'--in\'\n")" (( "(") (string_literal ""bad argument to \'--in\'\n"" (" """) (string_content "bad argument to ") (escape_sequence "\'") (string_content "--in") (escape_sequence "\'") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (if_statement "if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" (if "if") (parenthesized_expression "((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0))" (( "(") (binary_expression "(local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)" (parenthesized_expression "(local_eb8 == (FILE *)0x0)" (( "(") (binary_expression "local_eb8 == (FILE *)0x0" (identifier "local_eb8") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_eb0 == (char *)0x0)" (( "(") (binary_expression "local_eb0 == (char *)0x0" (identifier "local_eb0") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }\n      FUN_001012d5();\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" ({ "{") (if_statement "if (local_eb8 == (FILE *)0x0) {\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }\n      else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" (if "if") (parenthesized_expression "(local_eb8 == (FILE *)0x0)" (( "(") (binary_expression "local_eb8 == (FILE *)0x0" (identifier "local_eb8") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");\n      }" ({ "{") (expression_statement "pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");" (call_expression "pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n")" (identifier "pr2serr") (argument_list "("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n")" (( "(") (string_literal ""expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n"" (" """) (string_content "expect either both ") (escape_sequence "\'") (string_content "--lba=") (escape_sequence "\'") (string_content " and ") (escape_sequence "\'") (string_content "--num=") (escape_sequence "\'") (string_content ", or ") (escape_sequence "\'") (string_content "--in=") (escape_sequence "\'") (string_content ", or ") (escape_sequence "\'") (string_content "--all=") (escape_sequence "\'") (escape_sequence "\n") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" (else "else") (compound_statement "{\n        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");\n      }" ({ "{") (expression_statement "pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");" (call_expression "pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n")" (identifier "pr2serr") (argument_list "("since \'--lba=\' is given, also need \'--num=\'\n\n")" (( "(") (string_literal ""since \'--lba=\' is given, also need \'--num=\'\n\n"" (" """) (string_content "since ") (escape_sequence "\'") (string_content "--lba=") (escape_sequence "\'") (string_content " is given, also need ") (escape_sequence "\'") (string_content "--num=") (escape_sequence "\'") (escape_sequence "\n") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" (identifier "FUN_001012d5") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" (identifier "uVar8") (= "=") (number_literal "0x1f")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (expression_statement "puVar21 = local_c48;" (assignment_expression "puVar21 = local_c48" (identifier "puVar21") (= "=") (identifier "local_c48")) (; ";")) (for_statement "for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }" (for "for") (( "(") (assignment_expression "lVar17 = 0x80" (identifier "lVar17") (= "=") (number_literal "0x80")) (; ";") (binary_expression "lVar17 != 0" (identifier "lVar17") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar17 = lVar17 + -1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + -1" (identifier "lVar17") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      *puVar21 = 0;\n      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;\n    }" ({ "{") (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;" (assignment_expression "puVar21 = puVar21 + (ulong)bVar25 * -2 + 1" (identifier "puVar21") (= "=") (binary_expression "puVar21 + (ulong)bVar25 * -2 + 1" (binary_expression "puVar21 + (ulong)bVar25 * -2" (identifier "puVar21") (+ "+") (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "puVar19 = local_e48;" (assignment_expression "puVar19 = local_e48" (identifier "puVar19") (= "=") (identifier "local_e48")) (; ";")) (for_statement "for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }" (for "for") (( "(") (assignment_expression "lVar17 = 0x40" (identifier "lVar17") (= "=") (number_literal "0x40")) (; ";") (binary_expression "lVar17 != 0" (identifier "lVar17") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar17 = lVar17 + -1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + -1" (identifier "lVar17") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      puVar19[0] = 0;\n      puVar19[1] = 0;\n      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;\n    }" ({ "{") (expression_statement "puVar19[0] = 0;" (assignment_expression "puVar19[0] = 0" (subscript_expression "puVar19[0]" (identifier "puVar19") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19[1] = 0;" (assignment_expression "puVar19[1] = 0" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;" (assignment_expression "puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2" (identifier "puVar19") (= "=") (binary_expression "puVar19 + ((ulong)bVar25 * -2 + 1) * 2" (identifier "puVar19") (+ "+") (binary_expression "((ulong)bVar25 * -2 + 1) * 2" (parenthesized_expression "((ulong)bVar25 * -2 + 1)" (( "(") (binary_expression "(ulong)bVar25 * -2 + 1" (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2")))) (; ";")) (} "}"))) (labeled_statement "LAB_001018ea:\n    lVar17 = -1;" (statement_identifier "LAB_001018ea") (: ":") (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" (identifier "lVar17") (= "=") (number_literal "-1")) (; ";"))) (expression_statement "pFVar18 = local_eb8;" (assignment_expression "pFVar18 = local_eb8" (identifier "pFVar18") (= "=") (identifier "local_eb8")) (; ";")) (do_statement "do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    } while (cVar6 != '\0');" (do "do") (compound_statement "{\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *(char *)pFVar18;\n      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);\n    }" ({ "{") (if_statement "if (lVar17 == 0) break;" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + -1" (identifier "lVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar6 = *(char *)pFVar18;" (assignment_expression "cVar6 = *(char *)pFVar18" (identifier "cVar6") (= "=") (pointer_expression "*(char *)pFVar18" (* "*") (cast_expression "(char *)pFVar18" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pFVar18")))) (; ";")) (expression_statement "pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);" (assignment_expression "pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1)" (identifier "pFVar18") (= "=") (cast_expression "(FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1)" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pFVar18 + (ulong)bVar25 * -2 + 1)" (( "(") (binary_expression "(long)pFVar18 + (ulong)bVar25 * -2 + 1" (binary_expression "(long)pFVar18 + (ulong)bVar25 * -2" (cast_expression "(long)pFVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pFVar18")) (+ "+") (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (if_statement "if (*(char *)local_eb8 == '-') {\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" (if "if") (parenthesized_expression "(*(char *)local_eb8 == '-')" (( "(") (binary_expression "*(char *)local_eb8 == '-'" (pointer_expression "*(char *)local_eb8" (* "*") (cast_expression "(char *)local_eb8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_eb8"))) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (compound_statement "{\n      pr2serr("\'--lba\' cannot be read from stdin\n");\nLAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" ({ "{") (expression_statement "pr2serr("\'--lba\' cannot be read from stdin\n");" (call_expression "pr2serr("\'--lba\' cannot be read from stdin\n")" (identifier "pr2serr") (argument_list "("\'--lba\' cannot be read from stdin\n")" (( "(") (string_literal ""\'--lba\' cannot be read from stdin\n"" (" """) (escape_sequence "\'") (string_content "--lba") (escape_sequence "\'") (string_content " cannot be read from stdin") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (labeled_statement "LAB_001019b7:\n      pr2serr("bad argument to \'--lba\'\n");" (statement_identifier "LAB_001019b7") (: ":") (expression_statement "pr2serr("bad argument to \'--lba\'\n");" (call_expression "pr2serr("bad argument to \'--lba\'\n")" (identifier "pr2serr") (argument_list "("bad argument to \'--lba\'\n")" (( "(") (string_literal ""bad argument to \'--lba\'\n"" (" """) (string_content "bad argument to ") (escape_sequence "\'") (string_content "--lba") (escape_sequence "\'") (escape_sequence "\n") (" """)) () ")"))) (; ";"))) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))) (expression_statement "sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");" (assignment_expression "sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" (identifier "sVar16") (= "=") (call_expression "strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" (identifier "strspn") (argument_list "((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" (( "(") (cast_expression "(char *)local_eb8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_eb8")) (, ",") (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, "" (" """) (string_content "0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ") (" """)) () ")")))) (; ";")) (if_statement "if (~(uint)lVar17 - 1 != (int)sVar16) {\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }" (if "if") (parenthesized_expression "(~(uint)lVar17 - 1 != (int)sVar16)" (( "(") (binary_expression "~(uint)lVar17 - 1 != (int)sVar16" (binary_expression "~(uint)lVar17 - 1" (unary_expression "~(uint)lVar17" (~ "~") (cast_expression "(uint)lVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar17"))) (- "-") (number_literal "1")) (!= "!=") (cast_expression "(int)sVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar16"))) () ")")) (compound_statement "{\n      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_001019b7;\n    }" ({ "{") (expression_statement "pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);" (call_expression "pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1)" (identifier "pr2serr") (argument_list "("build_lba_arr: error at pos %d\n",(int)sVar16 + 1)" (( "(") (string_literal ""build_lba_arr: error at pos %d\n"" (" """) (string_content "build_lba_arr: error at pos %d") (escape_sequence "\n") (" """)) (, ",") (binary_expression "(int)sVar16 + 1" (cast_expression "(int)sVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar16")) (+ "+") (number_literal "1")) () ")"))) (; ";")) (goto_statement "goto LAB_001019b7;" (goto "goto") (statement_identifier "LAB_001019b7") (; ";")) (} "}"))) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" (identifier "lVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "pFVar18 = local_eb8;" (assignment_expression "pFVar18 = local_eb8" (identifier "pFVar18") (= "=") (identifier "local_eb8")) (; ";")) (do_statement "do {\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);" (do "do") (compound_statement "{\n      iVar7 = (int)lVar17;\n      uVar24 = sg_get_llnum(pFVar18);\n      if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }\n      local_c48[lVar17] = uVar24;\n      pcVar13 = strchr((char *)pFVar18,0x2c);\n      pcVar15 = strchr((char *)pFVar18,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);\n      lVar17 = lVar17 + 1;\n    }" ({ "{") (expression_statement "iVar7 = (int)lVar17;" (assignment_expression "iVar7 = (int)lVar17" (identifier "iVar7") (= "=") (cast_expression "(int)lVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar17"))) (; ";")) (expression_statement "uVar24 = sg_get_llnum(pFVar18);" (assignment_expression "uVar24 = sg_get_llnum(pFVar18)" (identifier "uVar24") (= "=") (call_expression "sg_get_llnum(pFVar18)" (identifier "sg_get_llnum") (argument_list "(pFVar18)" (( "(") (identifier "pFVar18") () ")")))) (; ";")) (if_statement "if (uVar24 == 0xffffffffffffffff) {\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }" (if "if") (parenthesized_expression "(uVar24 == 0xffffffffffffffff)" (( "(") (binary_expression "uVar24 == 0xffffffffffffffff" (identifier "uVar24") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (compound_statement "{\n        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);\n        goto LAB_001019b7;\n      }" ({ "{") (expression_statement "pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);" (call_expression "pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1)" (identifier "pr2serr") (argument_list "("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1)" (( "(") (string_literal ""build_lba_arr: error at pos %d\n"" (" """) (string_content "build_lba_arr: error at pos %d") (escape_sequence "\n") (" """)) (, ",") (binary_expression "((int)pFVar18 - (int)local_eb8) + 1" (parenthesized_expression "((int)pFVar18 - (int)local_eb8)" (( "(") (binary_expression "(int)pFVar18 - (int)local_eb8" (cast_expression "(int)pFVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pFVar18")) (- "-") (cast_expression "(int)local_eb8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_eb8"))) () ")")) (+ "+") (number_literal "1")) () ")"))) (; ";")) (goto_statement "goto LAB_001019b7;" (goto "goto") (statement_identifier "LAB_001019b7") (; ";")) (} "}"))) (expression_statement "local_c48[lVar17] = uVar24;" (assignment_expression "local_c48[lVar17] = uVar24" (subscript_expression "local_c48[lVar17]" (identifier "local_c48") ([ "[") (identifier "lVar17") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "pcVar13 = strchr((char *)pFVar18,0x2c);" (assignment_expression "pcVar13 = strchr((char *)pFVar18,0x2c)" (identifier "pcVar13") (= "=") (call_expression "strchr((char *)pFVar18,0x2c)" (identifier "strchr") (argument_list "((char *)pFVar18,0x2c)" (( "(") (cast_expression "(char *)pFVar18" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pFVar18")) (, ",") (number_literal "0x2c") () ")")))) (; ";")) (expression_statement "pcVar15 = strchr((char *)pFVar18,0x20);" (assignment_expression "pcVar15 = strchr((char *)pFVar18,0x20)" (identifier "pcVar15") (= "=") (call_expression "strchr((char *)pFVar18,0x20)" (identifier "strchr") (argument_list "((char *)pFVar18,0x20)" (( "(") (cast_expression "(char *)pFVar18" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pFVar18")) (, ",") (number_literal "0x20") () ")")))) (; ";")) (if_statement "if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }" (if "if") (parenthesized_expression "(pcVar13 == (char *)0x0)" (( "(") (binary_expression "pcVar13 == (char *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (pcVar15 != (char *)0x0) goto LAB_001019db;\n        iVar9 = iVar7 + 1;\n        goto LAB_00102805;\n      }" ({ "{") (if_statement "if (pcVar15 != (char *)0x0) goto LAB_001019db;" (if "if") (parenthesized_expression "(pcVar15 != (char *)0x0)" (( "(") (binary_expression "pcVar15 != (char *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001019db;" (goto "goto") (statement_identifier "LAB_001019db") (; ";"))) (expression_statement "iVar9 = iVar7 + 1;" (assignment_expression "iVar9 = iVar7 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00102805;" (goto "goto") (statement_identifier "LAB_00102805") (; ";")) (} "}"))) (if_statement "if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }" (if "if") (parenthesized_expression "((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15))" (( "(") (binary_expression "(pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)" (parenthesized_expression "(pcVar15 == (char *)0x0)" (( "(") (binary_expression "pcVar15 == (char *)0x0" (identifier "pcVar15") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar13 <= pcVar15)" (( "(") (binary_expression "pcVar13 <= pcVar15" (identifier "pcVar13") (<= "<=") (identifier "pcVar15")) () ")"))) () ")")) (compound_statement "{\n        pcVar15 = pcVar13;\n      }" ({ "{") (expression_statement "pcVar15 = pcVar13;" (assignment_expression "pcVar15 = pcVar13" (identifier "pcVar15") (= "=") (identifier "pcVar13")) (; ";")) (} "}"))) (labeled_statement "LAB_001019db:\n      pFVar18 = (FILE *)(pcVar15 + 1);" (statement_identifier "LAB_001019db") (: ":") (expression_statement "pFVar18 = (FILE *)(pcVar15 + 1);" (assignment_expression "pFVar18 = (FILE *)(pcVar15 + 1)" (identifier "pFVar18") (= "=") (cast_expression "(FILE *)(pcVar15 + 1)" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 1)" (( "(") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "lVar17 = lVar17 + 1;" (assignment_expression "lVar17 = lVar17 + 1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + 1" (identifier "lVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar17 != 0x80)" (( "(") (binary_expression "lVar17 != 0x80" (identifier "lVar17") (!= "!=") (number_literal "0x80")) () ")")) (; ";")) (expression_statement "iVar9 = iVar7 + 2;" (assignment_expression "iVar9 = iVar7 + 2" (identifier "iVar9") (= "=") (binary_expression "iVar7 + 2" (identifier "iVar7") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (iVar7 == 0x7f) {\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0x7f)" (( "(") (binary_expression "iVar7 == 0x7f" (identifier "iVar7") (== "==") (number_literal "0x7f")) () ")")) (compound_statement "{\n      pr2serr("build_lba_arr: array length exceeded\n");\n      goto LAB_001019b7;\n    }" ({ "{") (expression_statement "pr2serr("build_lba_arr: array length exceeded\n");" (call_expression "pr2serr("build_lba_arr: array length exceeded\n")" (identifier "pr2serr") (argument_list "("build_lba_arr: array length exceeded\n")" (( "(") (string_literal ""build_lba_arr: array length exceeded\n"" (" """) (string_content "build_lba_arr: array length exceeded") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_001019b7;" (goto "goto") (statement_identifier "LAB_001019b7") (; ";")) (} "}"))) (labeled_statement "LAB_00102805:\n    if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" (statement_identifier "LAB_00102805") (: ":") (if_statement "if (*local_eb0 == '-') {\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" (if "if") (parenthesized_expression "(*local_eb0 == '-')" (( "(") (binary_expression "*local_eb0 == '-'" (pointer_expression "*local_eb0" (* "*") (identifier "local_eb0")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (compound_statement "{\n      pr2serr("\'--len\' cannot be read from stdin\n");\nLAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");\n      uVar8 = 1;\n      goto LAB_00101539;\n    }" ({ "{") (expression_statement "pr2serr("\'--len\' cannot be read from stdin\n");" (call_expression "pr2serr("\'--len\' cannot be read from stdin\n")" (identifier "pr2serr") (argument_list "("\'--len\' cannot be read from stdin\n")" (( "(") (string_literal ""\'--len\' cannot be read from stdin\n"" (" """) (escape_sequence "\'") (string_content "--len") (escape_sequence "\'") (string_content " cannot be read from stdin") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (labeled_statement "LAB_00101aa5:\n      pr2serr("bad argument to \'--num\'\n");" (statement_identifier "LAB_00101aa5") (: ":") (expression_statement "pr2serr("bad argument to \'--num\'\n");" (call_expression "pr2serr("bad argument to \'--num\'\n")" (identifier "pr2serr") (argument_list "("bad argument to \'--num\'\n")" (( "(") (string_literal ""bad argument to \'--num\'\n"" (" """) (string_content "bad argument to ") (escape_sequence "\'") (string_content "--num") (escape_sequence "\'") (escape_sequence "\n") (" """)) () ")"))) (; ";"))) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}")))) (expression_statement "lVar17 = -1;" (assignment_expression "lVar17 = -1" (identifier "lVar17") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar15 = local_eb0;" (assignment_expression "pcVar15 = local_eb0" (identifier "pcVar15") (= "=") (identifier "local_eb0")) (; ";")) (do_statement "do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    } while (cVar6 != '\0');" (do "do") (compound_statement "{\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      cVar6 = *pcVar15;\n      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar17 == 0) break;" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + -1" (identifier "lVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar6 = *pcVar15;" (assignment_expression "cVar6 = *pcVar15" (identifier "cVar6") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar25 * -2" (identifier "pcVar15") (+ "+") (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");" (assignment_expression "sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" (identifier "sVar16") (= "=") (call_expression "strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" (identifier "strspn") (argument_list "(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ")" (( "(") (identifier "local_eb0") (, ",") (string_literal ""0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, "" (" """) (string_content "0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ") (" """)) () ")")))) (; ";")) (if_statement "if ((int)sVar16 != ~(uint)lVar17 - 1) {\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }" (if "if") (parenthesized_expression "((int)sVar16 != ~(uint)lVar17 - 1)" (( "(") (binary_expression "(int)sVar16 != ~(uint)lVar17 - 1" (cast_expression "(int)sVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar16")) (!= "!=") (binary_expression "~(uint)lVar17 - 1" (unary_expression "~(uint)lVar17" (~ "~") (cast_expression "(uint)lVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar17"))) (- "-") (number_literal "1"))) () ")")) (compound_statement "{\n      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);\n      goto LAB_00101aa5;\n    }" ({ "{") (expression_statement "pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);" (call_expression "pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1)" (identifier "pr2serr") (argument_list "("build_num_arr: error at pos %d\n",(int)sVar16 + 1)" (( "(") (string_literal ""build_num_arr: error at pos %d\n"" (" """) (string_content "build_num_arr: error at pos %d") (escape_sequence "\n") (" """)) (, ",") (binary_expression "(int)sVar16 + 1" (cast_expression "(int)sVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar16")) (+ "+") (number_literal "1")) () ")"))) (; ";")) (goto_statement "goto LAB_00101aa5;" (goto "goto") (statement_identifier "LAB_00101aa5") (; ";")) (} "}"))) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" (identifier "lVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar15 = local_eb0;" (assignment_expression "pcVar15 = local_eb0" (identifier "pcVar15") (= "=") (identifier "local_eb0")) (; ";")) (do_statement "do {\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    } while (lVar17 != 0x80);" (do "do") (compound_statement "{\n      iVar7 = (int)lVar17;\n      lVar14 = sg_get_llnum(pcVar15);\n      if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }\n      local_e48[lVar17] = (uint)lVar14;\n      pcVar13 = strchr(pcVar15,0x2c);\n      pcVar15 = strchr(pcVar15,0x20);\n      if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }\n      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }\nLAB_00101ae7:\n      pcVar15 = pcVar15 + 1;\n      lVar17 = lVar17 + 1;\n    }" ({ "{") (expression_statement "iVar7 = (int)lVar17;" (assignment_expression "iVar7 = (int)lVar17" (identifier "iVar7") (= "=") (cast_expression "(int)lVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar17"))) (; ";")) (expression_statement "lVar14 = sg_get_llnum(pcVar15);" (assignment_expression "lVar14 = sg_get_llnum(pcVar15)" (identifier "lVar14") (= "=") (call_expression "sg_get_llnum(pcVar15)" (identifier "sg_get_llnum") (argument_list "(pcVar15)" (( "(") (identifier "pcVar15") () ")")))) (; ";")) (if_statement "if (lVar14 == -1) {\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" (if "if") (parenthesized_expression "(lVar14 == -1)" (( "(") (binary_expression "lVar14 == -1" (identifier "lVar14") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" ({ "{") (expression_statement "pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);" (call_expression "pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1)" (identifier "pr2serr") (argument_list "("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1)" (( "(") (string_literal ""build_num_arr: error at pos %d\n"" (" """) (string_content "build_num_arr: error at pos %d") (escape_sequence "\n") (" """)) (, ",") (binary_expression "((int)pcVar15 - (int)local_eb0) + 1" (parenthesized_expression "((int)pcVar15 - (int)local_eb0)" (( "(") (binary_expression "(int)pcVar15 - (int)local_eb0" (cast_expression "(int)pcVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar15")) (- "-") (cast_expression "(int)local_eb0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_eb0"))) () ")")) (+ "+") (number_literal "1")) () ")"))) (; ";")) (goto_statement "goto LAB_00101aa5;" (goto "goto") (statement_identifier "LAB_00101aa5") (; ";")) (} "}"))) (if_statement "if (0xffffffff < lVar14) {\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" (if "if") (parenthesized_expression "(0xffffffff < lVar14)" (( "(") (binary_expression "0xffffffff < lVar14" (number_literal "0xffffffff") (< "<") (identifier "lVar14")) () ")")) (compound_statement "{\n        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);\n        goto LAB_00101aa5;\n      }" ({ "{") (expression_statement "pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1);" (call_expression "pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1)" (identifier "pr2serr") (argument_list "("build_num_arr: number exceeds 32 bits at pos %d\n",\n                ((int)pcVar15 - (int)local_eb0) + 1)" (( "(") (string_literal ""build_num_arr: number exceeds 32 bits at pos %d\n"" (" """) (string_content "build_num_arr: number exceeds 32 bits at pos %d") (escape_sequence "\n") (" """)) (, ",") (binary_expression "((int)pcVar15 - (int)local_eb0) + 1" (parenthesized_expression "((int)pcVar15 - (int)local_eb0)" (( "(") (binary_expression "(int)pcVar15 - (int)local_eb0" (cast_expression "(int)pcVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar15")) (- "-") (cast_expression "(int)local_eb0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_eb0"))) () ")")) (+ "+") (number_literal "1")) () ")"))) (; ";")) (goto_statement "goto LAB_00101aa5;" (goto "goto") (statement_identifier "LAB_00101aa5") (; ";")) (} "}"))) (expression_statement "local_e48[lVar17] = (uint)lVar14;" (assignment_expression "local_e48[lVar17] = (uint)lVar14" (subscript_expression "local_e48[lVar17]" (identifier "local_e48") ([ "[") (identifier "lVar17") (] "]")) (= "=") (cast_expression "(uint)lVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar14"))) (; ";")) (expression_statement "pcVar13 = strchr(pcVar15,0x2c);" (assignment_expression "pcVar13 = strchr(pcVar15,0x2c)" (identifier "pcVar13") (= "=") (call_expression "strchr(pcVar15,0x2c)" (identifier "strchr") (argument_list "(pcVar15,0x2c)" (( "(") (identifier "pcVar15") (, ",") (number_literal "0x2c") () ")")))) (; ";")) (expression_statement "pcVar15 = strchr(pcVar15,0x20);" (assignment_expression "pcVar15 = strchr(pcVar15,0x20)" (identifier "pcVar15") (= "=") (call_expression "strchr(pcVar15,0x20)" (identifier "strchr") (argument_list "(pcVar15,0x20)" (( "(") (identifier "pcVar15") (, ",") (number_literal "0x20") () ")")))) (; ";")) (if_statement "if (pcVar13 == (char *)0x0) {\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }" (if "if") (parenthesized_expression "(pcVar13 == (char *)0x0)" (( "(") (binary_expression "pcVar13 == (char *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;\n        iVar10 = iVar7 + 1;\n        goto LAB_001027df;\n      }" ({ "{") (if_statement "if (pcVar15 != (char *)0x0) goto LAB_00101ae7;" (if "if") (parenthesized_expression "(pcVar15 != (char *)0x0)" (( "(") (binary_expression "pcVar15 != (char *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00101ae7;" (goto "goto") (statement_identifier "LAB_00101ae7") (; ";"))) (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_001027df;" (goto "goto") (statement_identifier "LAB_001027df") (; ";")) (} "}"))) (if_statement "if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {\n        pcVar15 = pcVar13;\n      }" (if "if") (parenthesized_expression "((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15))" (( "(") (binary_expression "(pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)" (parenthesized_expression "(pcVar15 == (char *)0x0)" (( "(") (binary_expression "pcVar15 == (char *)0x0" (identifier "pcVar15") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar13 <= pcVar15)" (( "(") (binary_expression "pcVar13 <= pcVar15" (identifier "pcVar13") (<= "<=") (identifier "pcVar15")) () ")"))) () ")")) (compound_statement "{\n        pcVar15 = pcVar13;\n      }" ({ "{") (expression_statement "pcVar15 = pcVar13;" (assignment_expression "pcVar15 = pcVar13" (identifier "pcVar15") (= "=") (identifier "pcVar13")) (; ";")) (} "}"))) (labeled_statement "LAB_00101ae7:\n      pcVar15 = pcVar15 + 1;" (statement_identifier "LAB_00101ae7") (: ":") (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "lVar17 = lVar17 + 1;" (assignment_expression "lVar17 = lVar17 + 1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + 1" (identifier "lVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar17 != 0x80)" (( "(") (binary_expression "lVar17 != 0x80" (identifier "lVar17") (!= "!=") (number_literal "0x80")) () ")")) (; ";")) (expression_statement "iVar10 = iVar7 + 2;" (assignment_expression "iVar10 = iVar7 + 2" (identifier "iVar10") (= "=") (binary_expression "iVar7 + 2" (identifier "iVar7") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (iVar7 == 0x7f) {\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0x7f)" (( "(") (binary_expression "iVar7 == 0x7f" (identifier "iVar7") (== "==") (number_literal "0x7f")) () ")")) (compound_statement "{\n      pr2serr("build_num_arr: array length exceeded\n");\n      goto LAB_00101aa5;\n    }" ({ "{") (expression_statement "pr2serr("build_num_arr: array length exceeded\n");" (call_expression "pr2serr("build_num_arr: array length exceeded\n")" (identifier "pr2serr") (argument_list "("build_num_arr: array length exceeded\n")" (( "(") (string_literal ""build_num_arr: array length exceeded\n"" (" """) (string_content "build_num_arr: array length exceeded") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_00101aa5;" (goto "goto") (statement_identifier "LAB_00101aa5") (; ";")) (} "}"))) (labeled_statement "LAB_001027df:\n    if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" (statement_identifier "LAB_001027df") (: ":") (if_statement "if ((iVar9 != iVar10) || (iVar10 < 1)) {\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" (if "if") (parenthesized_expression "((iVar9 != iVar10) || (iVar10 < 1))" (( "(") (binary_expression "(iVar9 != iVar10) || (iVar10 < 1)" (parenthesized_expression "(iVar9 != iVar10)" (( "(") (binary_expression "iVar9 != iVar10" (identifier "iVar9") (!= "!=") (identifier "iVar10")) () ")")) (|| "||") (parenthesized_expression "(iVar10 < 1)" (( "(") (binary_expression "iVar10 < 1" (identifier "iVar10") (< "<") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");\n      uVar8 = 0x1f;\n      goto LAB_00101539;\n    }" ({ "{") (expression_statement "pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");" (call_expression "pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n")" (identifier "pr2serr") (argument_list "("need same number of arguments to \'--lba=\' and \'--num=\' options\n")" (( "(") (string_literal ""need same number of arguments to \'--lba=\' and \'--num=\' options\n"" (" """) (string_content "need same number of arguments to ") (escape_sequence "\'") (string_content "--lba=") (escape_sequence "\'") (string_content " and ") (escape_sequence "\'") (string_content "--num=") (escape_sequence "\'") (string_content " options") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" (identifier "uVar8") (= "=") (number_literal "0x1f")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}")))) (if_statement "if (local_ec0 != (char *)0x0) goto LAB_00101840;" (if "if") (parenthesized_expression "(local_ec0 != (char *)0x0)" (( "(") (binary_expression "local_ec0 != (char *)0x0" (identifier "local_ec0") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00101840;" (goto "goto") (statement_identifier "LAB_00101840") (; ";"))) (labeled_statement "LAB_00101e88:\n    iVar10 = iVar9 * 0x10 + 8;" (statement_identifier "LAB_00101e88") (: ":") (expression_statement "iVar10 = iVar9 * 0x10 + 8;" (assignment_expression "iVar10 = iVar9 * 0x10 + 8" (identifier "iVar10") (= "=") (binary_expression "iVar9 * 0x10 + 8" (binary_expression "iVar9 * 0x10" (identifier "iVar9") (* "*") (number_literal "0x10")) (+ "+") (number_literal "8"))) (; ";"))) (expression_statement "__memset_chk(&local_848,0,(long)iVar10,0x808);" (call_expression "__memset_chk(&local_848,0,(long)iVar10,0x808)" (identifier "__memset_chk") (argument_list "(&local_848,0,(long)iVar10,0x808)" (( "(") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "0") (, ",") (cast_expression "(long)iVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar10")) (, ",") (number_literal "0x808") () ")"))) (; ";")) (expression_statement "puVar19 = &local_848;" (assignment_expression "puVar19 = &local_848" (identifier "puVar19") (= "=") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (; ";")) (for_statement "for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }" (for "for") (( "(") (assignment_expression "lVar17 = 0" (identifier "lVar17") (= "=") (number_literal "0")) (; ";") (binary_expression "(int)lVar17 < iVar9" (cast_expression "(int)lVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar17")) (< "<") (identifier "iVar9")) (; ";") (assignment_expression "lVar17 = lVar17 + 1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + 1" (identifier "lVar17") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n      uVar24 = local_c48[lVar17];\n      *(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;\n      uVar8 = local_e48[lVar17];\n      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      puVar19 = puVar19 + 4;\n    }" ({ "{") (expression_statement "uVar24 = local_c48[lVar17];" (assignment_expression "uVar24 = local_c48[lVar17]" (identifier "uVar24") (= "=") (subscript_expression "local_c48[lVar17]" (identifier "local_c48") ([ "[") (identifier "lVar17") (] "]"))) (; ";")) (expression_statement "*(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;" (assignment_expression "*(ulong *)(puVar19 + 2) =\n           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (pointer_expression "*(ulong *)(puVar19 + 2)" (* "*") (cast_expression "(ulong *)(puVar19 + 2)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 2)" (( "(") (binary_expression "puVar19 + 2" (identifier "puVar19") (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18\n           | (uVar24 & 0xff00) << 0x28" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18\n           | (uVar24 & 0xff00000000) >> 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28" (binary_expression "uVar24 >> 0x38" (identifier "uVar24") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar24 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar24 & 0xff000000000000)" (( "(") (binary_expression "uVar24 & 0xff000000000000" (identifier "uVar24") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar24 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar24 & 0xff0000000000)" (( "(") (binary_expression "uVar24 & 0xff0000000000" (identifier "uVar24") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar24 & 0xff00000000) >> 8" (parenthesized_expression "(uVar24 & 0xff00000000)" (( "(") (binary_expression "uVar24 & 0xff00000000" (identifier "uVar24") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar24 & 0xff000000) << 8" (parenthesized_expression "(uVar24 & 0xff000000)" (( "(") (binary_expression "uVar24 & 0xff000000" (identifier "uVar24") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar24 & 0xff0000) << 0x18" (parenthesized_expression "(uVar24 & 0xff0000)" (( "(") (binary_expression "uVar24 & 0xff0000" (identifier "uVar24") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar24 & 0xff00) << 0x28" (parenthesized_expression "(uVar24 & 0xff00)" (( "(") (binary_expression "uVar24 & 0xff00" (identifier "uVar24") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar24 << 0x38" (identifier "uVar24") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar8 = local_e48[lVar17];" (assignment_expression "uVar8 = local_e48[lVar17]" (identifier "uVar8") (= "=") (subscript_expression "local_e48[lVar17]" (identifier "local_e48") ([ "[") (identifier "lVar17") (] "]"))) (; ";")) (expression_statement "puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (subscript_expression "puVar19[4]" (identifier "puVar19") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" (( "(") (binary_expression "uVar8 & 0xff0000" (identifier "uVar8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" (( "(") (binary_expression "uVar8 & 0xff00" (identifier "uVar8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar8 << 0x18" (identifier "uVar8") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "puVar19 = puVar19 + 4;" (assignment_expression "puVar19 = puVar19 + 4" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (expression_statement "uVar2 = (ushort)(iVar9 * 0x10);" (assignment_expression "uVar2 = (ushort)(iVar9 * 0x10)" (identifier "uVar2") (= "=") (call_expression "(ushort)(iVar9 * 0x10)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(iVar9 * 0x10)" (( "(") (binary_expression "iVar9 * 0x10" (identifier "iVar9") (* "*") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;" (assignment_expression "local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8" (field_expression "local_848._0_2_" (identifier "local_848") (. ".") (field_identifier "_0_2_")) (= "=") (binary_expression "(uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8" (binary_expression "(uVar2 + 6) * 0x100" (parenthesized_expression "(uVar2 + 6)" (( "(") (binary_expression "uVar2 + 6" (identifier "uVar2") (+ "+") (number_literal "6")) () ")")) (* "*") (number_literal "0x100")) (| "|") (binary_expression "(ushort)(uVar2 + 6) >> 8" (call_expression "(ushort)(uVar2 + 6)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(uVar2 + 6)" (( "(") (binary_expression "uVar2 + 6" (identifier "uVar2") (+ "+") (number_literal "6")) () ")"))) (>> ">>") (number_literal "8")))) (; ";")) (expression_statement "local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;" (assignment_expression "local_848._2_2_ = uVar2 << 8 | uVar2 >> 8" (field_expression "local_848._2_2_" (identifier "local_848") (. ".") (field_identifier "_2_2_")) (= "=") (binary_expression "uVar2 << 8 | uVar2 >> 8" (binary_expression "uVar2 << 8" (identifier "uVar2") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar2 >> 8" (identifier "uVar2") (>> ">>") (number_literal "8")))) (; ";")) (expression_statement "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);" (assignment_expression "iVar7 = sg_cmds_open_device(local_e98,0,local_ec4)" (identifier "iVar7") (= "=") (call_expression "sg_cmds_open_device(local_e98,0,local_ec4)" (identifier "sg_cmds_open_device") (argument_list "(local_e98,0,local_ec4)" (( "(") (identifier "local_e98") (, ",") (number_literal "0") (, ",") (identifier "local_ec4") () ")")))) (; ";")) (if_statement "if (iVar7 < 0) {\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }\n    else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);\n      uVar12 = safe_strerror(-iVar7);\n      pr2serr("open error: %s: %s\n",local_e98,uVar12);\n    }" ({ "{") (labeled_statement "LAB_001016ce:\n      uVar8 = sg_convert_errno(-iVar7);" (statement_identifier "LAB_001016ce") (: ":") (expression_statement "uVar8 = sg_convert_errno(-iVar7);" (assignment_expression "uVar8 = sg_convert_errno(-iVar7)" (identifier "uVar8") (= "=") (call_expression "sg_convert_errno(-iVar7)" (identifier "sg_convert_errno") (argument_list "(-iVar7)" (( "(") (unary_expression "-iVar7" (- "-") (identifier "iVar7")) () ")")))) (; ";"))) (expression_statement "uVar12 = safe_strerror(-iVar7);" (assignment_expression "uVar12 = safe_strerror(-iVar7)" (identifier "uVar12") (= "=") (call_expression "safe_strerror(-iVar7)" (identifier "safe_strerror") (argument_list "(-iVar7)" (( "(") (unary_expression "-iVar7" (- "-") (identifier "iVar7")) () ")")))) (; ";")) (expression_statement "pr2serr("open error: %s: %s\n",local_e98,uVar12);" (call_expression "pr2serr("open error: %s: %s\n",local_e98,uVar12)" (identifier "pr2serr") (argument_list "("open error: %s: %s\n",local_e98,uVar12)" (( "(") (string_literal ""open error: %s: %s\n"" (" """) (string_content "open error: %s: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "local_e98") (, ",") (identifier "uVar12") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }" (else "else") (compound_statement "{\n      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);\n      if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }\nswitchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);\n      if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }\n    }" ({ "{") (expression_statement "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);" (assignment_expression "uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" (identifier "uVar8") (= "=") (call_expression "sg_simple_inquiry(iVar7,local_e78,1,local_ec4)" (identifier "sg_simple_inquiry") (argument_list "(iVar7,local_e78,1,local_ec4)" (( "(") (identifier "iVar7") (, ",") (identifier "local_e78") (, ",") (number_literal "1") (, ",") (identifier "local_ec4") () ")")))) (; ";")) (if_statement "if (bVar5) {\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }\n      else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (compound_statement "{\n        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");\n        puVar19 = &local_848;\n        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }\n      }" ({ "{") (expression_statement "pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");" (call_expression "pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n")" (identifier "pr2serr") (argument_list "("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n")" (( "(") (string_literal ""Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n"" (" """) (string_content "Doing dry-run so here is ") (escape_sequence "\'") (string_content "LBA, number_of_blocks") (escape_sequence "\'") (string_content " list of candidates") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "puVar19 = &local_848;" (assignment_expression "puVar19 = &local_848" (identifier "puVar19") (= "=") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (; ";")) (for_statement "for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }" (for "for") (( "(") (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";") (binary_expression "iVar22 < iVar9" (identifier "iVar22") (< "<") (identifier "iVar9")) (; ";") (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n          uVar20 = puVar19[4];\n          uVar24 = *(ulong *)(puVar19 + 2);\n          __printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);\n          puVar19 = puVar19 + 4;\n        }" ({ "{") (expression_statement "uVar20 = puVar19[4];" (assignment_expression "uVar20 = puVar19[4]" (identifier "uVar20") (= "=") (subscript_expression "puVar19[4]" (identifier "puVar19") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar24 = *(ulong *)(puVar19 + 2);" (assignment_expression "uVar24 = *(ulong *)(puVar19 + 2)" (identifier "uVar24") (= "=") (pointer_expression "*(ulong *)(puVar19 + 2)" (* "*") (cast_expression "(ulong *)(puVar19 + 2)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 2)" (( "(") (binary_expression "puVar19 + 2" (identifier "puVar19") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "__printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18);" (call_expression "__printf_chk(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18)" (identifier "__printf_chk") (argument_list "(1,"    0x%lx, 0x%u\n",\n                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,\n                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18)" (( "(") (number_literal "1") (, ",") (string_literal ""    0x%lx, 0x%u\n"" (" """) (string_content "    0x%lx, 0x%u") (escape_sequence "\n") (" """)) (, ",") (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |\n                       (uVar24 & 0xff00) << 0x28" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |\n                       (uVar24 & 0xff000000) << 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |\n                       (uVar24 & 0xff0000000000) >> 0x18" (binary_expression "uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28" (binary_expression "uVar24 >> 0x38" (identifier "uVar24") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar24 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar24 & 0xff000000000000)" (( "(") (binary_expression "uVar24 & 0xff000000000000" (identifier "uVar24") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar24 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar24 & 0xff0000000000)" (( "(") (binary_expression "uVar24 & 0xff0000000000" (identifier "uVar24") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar24 & 0xff00000000) >> 8" (parenthesized_expression "(uVar24 & 0xff00000000)" (( "(") (binary_expression "uVar24 & 0xff00000000" (identifier "uVar24") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar24 & 0xff000000) << 8" (parenthesized_expression "(uVar24 & 0xff000000)" (( "(") (binary_expression "uVar24 & 0xff000000" (identifier "uVar24") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar24 & 0xff0000) << 0x18" (parenthesized_expression "(uVar24 & 0xff0000)" (( "(") (binary_expression "uVar24 & 0xff0000" (identifier "uVar24") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar24 & 0xff00) << 0x28" (parenthesized_expression "(uVar24 & 0xff00)" (( "(") (binary_expression "uVar24 & 0xff00" (identifier "uVar24") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar24 << 0x38" (identifier "uVar24") (<< "<<") (number_literal "0x38"))) (, ",") (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                       uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" (identifier "uVar20") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" (( "(") (binary_expression "uVar20 & 0xff0000" (identifier "uVar20") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" (( "(") (binary_expression "uVar20 & 0xff00" (identifier "uVar20") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar20 << 0x18" (identifier "uVar20") (<< "<<") (number_literal "0x18"))) () ")"))) (; ";")) (expression_statement "puVar19 = puVar19 + 4;" (assignment_expression "puVar19 = puVar19 + 4" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }" (else "else") (compound_statement "{\n        if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }\n        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);\n        local_e80[0] = uVar8;\n        bVar3 = bVar5;\n        switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }\n      }" ({ "{") (if_statement "if (!bVar4) {\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }" (if "if") (parenthesized_expression "(!bVar4)" (( "(") (unary_expression "!bVar4" (! "!") (identifier "bVar4")) () ")")) (compound_statement "{\n          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);\n          sleep(3);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP will commence in 10 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(5);\n          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");\n          puts("    Some data will be LOST");\n          puts("        Press control-C to abort");\n          sleep(7);\n        }" ({ "{") (expression_statement "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);" (call_expression "__printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" (identifier "__printf_chk") (argument_list "(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56)" (( "(") (number_literal "1") (, ",") (string_literal ""%s is:  %.8s  %.16s  %.4s\n"" (" """) (string_content "%s is:  %.8s  %.16s  %.4s") (escape_sequence "\n") (" """)) (, ",") (identifier "local_e98") (, ",") (identifier "local_e70") (, ",") (identifier "local_e67") (, ",") (identifier "local_e56") () ")"))) (; ";")) (expression_statement "sleep(3);" (call_expression "sleep(3)" (identifier "sleep") (argument_list "(3)" (( "(") (number_literal "3") () ")"))) (; ";")) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" (identifier "puts") (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds")" (( "(") (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 15 seconds"" (" """) (escape_sequence "\n") (string_content "An UNMAP (a.k.a. trim) will commence in 15 seconds") (" """)) () ")"))) (; ";")) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" (identifier "puts") (argument_list "("    Some data will be LOST")" (( "(") (string_literal ""    Some data will be LOST"" (" """) (string_content "    Some data will be LOST") (" """)) () ")"))) (; ";")) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" (identifier "puts") (argument_list "("        Press control-C to abort")" (( "(") (string_literal ""        Press control-C to abort"" (" """) (string_content "        Press control-C to abort") (" """)) () ")"))) (; ";")) (expression_statement "sleep(5);" (call_expression "sleep(5)" (identifier "sleep") (argument_list "(5)" (( "(") (number_literal "5") () ")"))) (; ";")) (expression_statement "puts("\nAn UNMAP will commence in 10 seconds");" (call_expression "puts("\nAn UNMAP will commence in 10 seconds")" (identifier "puts") (argument_list "("\nAn UNMAP will commence in 10 seconds")" (( "(") (string_literal ""\nAn UNMAP will commence in 10 seconds"" (" """) (escape_sequence "\n") (string_content "An UNMAP will commence in 10 seconds") (" """)) () ")"))) (; ";")) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" (identifier "puts") (argument_list "("    Some data will be LOST")" (( "(") (string_literal ""    Some data will be LOST"" (" """) (string_content "    Some data will be LOST") (" """)) () ")"))) (; ";")) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" (identifier "puts") (argument_list "("        Press control-C to abort")" (( "(") (string_literal ""        Press control-C to abort"" (" """) (string_content "        Press control-C to abort") (" """)) () ")"))) (; ";")) (expression_statement "sleep(5);" (call_expression "sleep(5)" (identifier "sleep") (argument_list "(5)" (( "(") (number_literal "5") () ")"))) (; ";")) (expression_statement "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");" (call_expression "puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" (identifier "puts") (argument_list "("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds")" (( "(") (string_literal ""\nAn UNMAP (a.k.a. trim) will commence in 5 seconds"" (" """) (escape_sequence "\n") (string_content "An UNMAP (a.k.a. trim) will commence in 5 seconds") (" """)) () ")"))) (; ";")) (expression_statement "puts("    Some data will be LOST");" (call_expression "puts("    Some data will be LOST")" (identifier "puts") (argument_list "("    Some data will be LOST")" (( "(") (string_literal ""    Some data will be LOST"" (" """) (string_content "    Some data will be LOST") (" """)) () ")"))) (; ";")) (expression_statement "puts("        Press control-C to abort");" (call_expression "puts("        Press control-C to abort")" (identifier "puts") (argument_list "("        Press control-C to abort")" (( "(") (string_literal ""        Press control-C to abort"" (" """) (string_content "        Press control-C to abort") (" """)) () ")"))) (; ";")) (expression_statement "sleep(7);" (call_expression "sleep(7)" (identifier "sleep") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);" (assignment_expression "uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4)" (identifier "uVar8") (= "=") (call_expression "sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4)" (identifier "sg_ll_unmap_v2") (argument_list "(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4)" (( "(") (identifier "iVar7") (, ",") (identifier "local_e9d") (, ",") (identifier "local_e9c") (, ",") (identifier "iVar22") (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (identifier "iVar10") (, ",") (number_literal "1") (, ",") (identifier "local_ec4") () ")")))) (; ";")) (expression_statement "local_e80[0] = uVar8;" (assignment_expression "local_e80[0] = uVar8" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "bVar3 = bVar5;" (assignment_expression "bVar3 = bVar5" (identifier "bVar3") (= "=") (identifier "bVar5")) (; ";")) (switch_statement "switch(uVar8) {\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }" (switch "switch") (parenthesized_expression "(uVar8)" (( "(") (identifier "uVar8") () ")")) (compound_statement "{\n        case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;\n        case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;\n        case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;\n        case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;\n        case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;\n        }" ({ "{") (case_statement "case 2:\n          pr2serr("UNMAP failed, device not ready\n");\n          bVar3 = true;\n          break;" (case "case") (number_literal "2") (: ":") (expression_statement "pr2serr("UNMAP failed, device not ready\n");" (call_expression "pr2serr("UNMAP failed, device not ready\n")" (identifier "pr2serr") (argument_list "("UNMAP failed, device not ready\n")" (( "(") (string_literal ""UNMAP failed, device not ready\n"" (" """) (string_content "UNMAP failed, device not ready") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n          pr2serr("bad field in UNMAP cdb\n");\n          bVar3 = true;\n          break;" (case "case") (number_literal "5") (: ":") (expression_statement "pr2serr("bad field in UNMAP cdb\n");" (call_expression "pr2serr("bad field in UNMAP cdb\n")" (identifier "pr2serr") (argument_list "("bad field in UNMAP cdb\n")" (( "(") (string_literal ""bad field in UNMAP cdb\n"" (" """) (string_content "bad field in UNMAP cdb") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n          pr2serr("UNMAP, unit attention\n");\n          bVar3 = true;\n          break;" (case "case") (number_literal "6") (: ":") (expression_statement "pr2serr("UNMAP, unit attention\n");" (call_expression "pr2serr("UNMAP, unit attention\n")" (identifier "pr2serr") (argument_list "("UNMAP, unit attention\n")" (( "(") (string_literal ""UNMAP, unit attention\n"" (" """) (string_content "UNMAP, unit attention") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n          pr2serr("UNMAP not supported\n");\n          bVar3 = true;\n          break;" (case "case") (number_literal "9") (: ":") (expression_statement "pr2serr("UNMAP not supported\n");" (call_expression "pr2serr("UNMAP not supported\n")" (identifier "pr2serr") (argument_list "("UNMAP not supported\n")" (( "(") (string_literal ""UNMAP not supported\n"" (" """) (string_content "UNMAP not supported") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xb:\n          pr2serr("UNMAP, aborted command\n");\n          bVar3 = true;" (case "case") (number_literal "0xb") (: ":") (expression_statement "pr2serr("UNMAP, aborted command\n");" (call_expression "pr2serr("UNMAP, aborted command\n")" (identifier "pr2serr") (argument_list "("UNMAP, aborted command\n")" (( "(") (string_literal ""UNMAP, aborted command\n"" (" """) (string_content "UNMAP, aborted command") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";"))) (} "}"))) (} "}")))) (labeled_statement "switchD_00101fe9_caseD_3:\n      local_e80[0] = sg_cmds_close_device(iVar7);" (statement_identifier "switchD_00101fe9_caseD_3") (: ":") (expression_statement "local_e80[0] = sg_cmds_close_device(iVar7);" (assignment_expression "local_e80[0] = sg_cmds_close_device(iVar7)" (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "sg_cmds_close_device(iVar7)" (identifier "sg_cmds_close_device") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";"))) (if_statement "if ((int)local_e80[0] < 0) {\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }" (if "if") (parenthesized_expression "((int)local_e80[0] < 0)" (( "(") (binary_expression "(int)local_e80[0] < 0" (cast_expression "(int)local_e80[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        uVar12 = safe_strerror(-local_e80[0]);\n        pr2serr("close error: %s\n",uVar12);\n        if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }\n      }" ({ "{") (expression_statement "uVar12 = safe_strerror(-local_e80[0]);" (assignment_expression "uVar12 = safe_strerror(-local_e80[0])" (identifier "uVar12") (= "=") (call_expression "safe_strerror(-local_e80[0])" (identifier "safe_strerror") (argument_list "(-local_e80[0])" (( "(") (unary_expression "-local_e80[0]" (- "-") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]"))) () ")")))) (; ";")) (expression_statement "pr2serr("close error: %s\n",uVar12);" (call_expression "pr2serr("close error: %s\n",uVar12)" (identifier "pr2serr") (argument_list "("close error: %s\n",uVar12)" (( "(") (string_literal ""close error: %s\n"" (" """) (string_content "close error: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar12") () ")"))) (; ";")) (if_statement "if (uVar8 == 0) {\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar8 = sg_convert_errno(-local_e80[0]);\n        }" ({ "{") (expression_statement "uVar8 = sg_convert_errno(-local_e80[0]);" (assignment_expression "uVar8 = sg_convert_errno(-local_e80[0])" (identifier "uVar8") (= "=") (call_expression "sg_convert_errno(-local_e80[0])" (identifier "sg_convert_errno") (argument_list "(-local_e80[0])" (( "(") (unary_expression "-local_e80[0]" (- "-") (subscript_expression "local_e80[0]" (identifier "local_e80") ([ "[") (number_literal "0") (] "]"))) () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }" (if "if") (parenthesized_expression "(((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0'))" (( "(") (binary_expression "((local_ec4 == 0) && (!bVar3)) &&\n       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')" (parenthesized_expression "((local_ec4 == 0) && (!bVar3))" (( "(") (binary_expression "(local_ec4 == 0) && (!bVar3)" (parenthesized_expression "(local_ec4 == 0)" (( "(") (binary_expression "local_ec4 == 0" (identifier "local_ec4") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')" (( "(") (comma_expression "cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0'" (assignment_expression "cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8)" (identifier "cVar6") (= "=") (call_expression "sg_if_can2stderr("sg_unmap failed: ",uVar8)" (identifier "sg_if_can2stderr") (argument_list "("sg_unmap failed: ",uVar8)" (( "(") (string_literal ""sg_unmap failed: "" (" """) (string_content "sg_unmap failed: ") (" """)) (, ",") (identifier "uVar8") () ")")))) (, ",") (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n    }" ({ "{") (expression_statement "pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");" (call_expression "pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n")" (identifier "pr2serr") (argument_list "("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n")" (( "(") (string_literal ""Some error occurred, try again with \'-v\' or \'-vv\' for more information\n"" (" """) (string_content "Some error occurred, try again with ") (escape_sequence "\'") (string_content "-v") (escape_sequence "\'") (string_content " or ") (escape_sequence "\'") (string_content "-vv") (escape_sequence "\'") (string_content " for more information") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((int)uVar8 < 0) {\n      uVar8 = 99;\n    }" (if "if") (parenthesized_expression "((int)uVar8 < 0)" (( "(") (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar8 = 99;\n    }" ({ "{") (expression_statement "uVar8 = 99;" (assignment_expression "uVar8 = 99" (identifier "uVar8") (= "=") (number_literal "99")) (; ";")) (} "}"))) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (} "}"))))) (expression_statement "pr2serr("version: %s\n","1.17 20180628");" (call_expression "pr2serr("version: %s\n","1.17 20180628")" (identifier "pr2serr") (argument_list "("version: %s\n","1.17 20180628")" (( "(") (string_literal ""version: %s\n"" (" """) (string_content "version: %s") (escape_sequence "\n") (" """)) (, ",") (string_literal ""1.17 20180628"" (" """) (string_content "1.17 20180628") (" """)) () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (labeled_statement "LAB_00101512:\n  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");" (statement_identifier "LAB_00101512") (: ":") (expression_statement "pr2serr("value for \'--grpnum=\' must be 0 to 63\n");" (call_expression "pr2serr("value for \'--grpnum=\' must be 0 to 63\n")" (identifier "pr2serr") (argument_list "("value for \'--grpnum=\' must be 0 to 63\n")" (( "(") (string_literal ""value for \'--grpnum=\' must be 0 to 63\n"" (" """) (string_content "value for ") (escape_sequence "\'") (string_content "--grpnum=") (escape_sequence "\'") (string_content " must be 0 to 63") (escape_sequence "\n") (" """)) () ")"))) (; ";"))) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101539;" (goto "goto") (statement_identifier "LAB_00101539") (; ";")) (labeled_statement "LAB_0010172e:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" (statement_identifier "LAB_0010172e") (: ":") (do_statement "do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" (do "do") (compound_statement "{\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  }" ({ "{") (expression_statement "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));" (call_expression "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" (identifier "pr2serr") (argument_list "("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" (( "(") (string_literal ""Unexpected extra argument: %s\n"" (" """) (string_content "Unexpected extra argument: %s") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*(undefined8 *)(param_2 + (long)optind * 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + (long)optind * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + (long)optind * 8)" (( "(") (binary_expression "param_2 + (long)optind * 8" (identifier "param_2") (+ "+") (binary_expression "(long)optind * 8" (cast_expression "(long)optind" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "optind")) (* "*") (number_literal "8"))) () ")")))) () ")"))) (; ";")) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" (identifier "optind") (= "=") (binary_expression "optind + 1" (identifier "optind") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(optind < param_1)" (( "(") (binary_expression "optind < param_1" (identifier "optind") (< "<") (identifier "param_1")) () ")")) (; ";"))) (expression_statement "FUN_001012d5();" (call_expression "FUN_001012d5()" (identifier "FUN_001012d5") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00101539:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" (statement_identifier "LAB_00101539") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return uVar8;\n  }" ({ "{") (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

int function_1(int var_16,char **argv)

{
  uint8_t var_48;
  long var_66;
  bool bVar3;
  type_1 var_62;
  bool bVar5;
  bool bVar6;
  bool bVar7;
  char var_46;
  int var_3;
  int var_25;
  int var_49;
  int var_51;
  type_2 uVar13;
  char *var_7;
  long var_59;
  uint64_t var_52;
  char *var_10;
  size_t var_55;
  long var_40;
  type_3 *pFVar20;
  uint8_t *var_41;
  type_4 *var_61;
  type_4 var_38;
  uint64_t *var_44;
  uint32_t *var_45;
  int var_13;
  type_5 var_9;
  type_5 var_23;
  long var_1;
  type_6 bVar29;
  int var_53;
  int var_43;
  int var_14;
  char *var_19;
  type_3 *var_20;
  char *var_21;
  type_4 var_18;
  type_7 local_e9d;
  int local_e9c;
  char *var_17;
  type_5 var_22;
  int var_28;
  int option_index;
  type_8 inq_resp;
  uint32_t num_arr [128];
  uint64_t addr_arr [128];
  uint8_t var_39 [2056];
  type_7 local_38 [8];
  
  bVar29 = 0;
  var_66 = *(long *)(var_1 + 0x28);
  var_19 = (char *)0x0;
  var_21 = (char *)0x0;
  var_20 = (type_3 *)0x0;
  var_22 = 0;
  var_23 = 0;
  var_18 = 0;
  var_14 = 0;
  var_13 = 0x3c;
  local_e9c = 0;
  bVar3 = false;
  bVar5 = false;
  bVar7 = false;
  bVar6 = false;
  local_e9d = 0;
  while( true ) {
    option_index = 0;
    var_3 = var_2(var_16,argv,"aA:dfg:hI:Hl:n:t:vV",long_options,&option_index);
    var_10 = optarg;
    if (var_3 == -1) break;
    switch(var_3) {
    case 0x3f:
    case 0x68:
      var_4();
      var_3 = 0;
      goto LAB_00101539;
    default:
      var_5("unrecognised option code 0x%x ??\n",var_3);
      var_4();
      var_3 = 1;
      goto LAB_00101539;
    case 0x41:
      var_7 = var_6(optarg,0x2c);
      if (var_7 == (char *)0x0) {
        var_5("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");
        var_3 = 1;
        goto LAB_00101539;
      }
      var_23 = var_8(var_10);
      if ((long)var_23 < 0) {
        var_5("unable to decode --all=ST,.... (starting LBA)\n");
        var_3 = 1;
        goto LAB_00101539;
      }
      var_9 = var_8(var_7 + 1);
      if (0xffffffff < var_9) {
        var_5("unable to decode --all=ST,RN.... (repeat number)\n");
        var_3 = 1;
        goto LAB_00101539;
      }
      var_18 = (type_4)var_9;
      if (var_9 == 0) {
        var_5("warning: --all=ST,RN... being ignored because RN is 0\n");
      }
      var_10 = var_6(var_7 + 1,0x2c);
      if ((var_10 != (char *)0x0) && (var_22 = var_8(var_10 + 1), (long)var_22 < 0))
      {
        var_5("unable to decode --all=ST,NR,LA (last LBA)\n");
        var_3 = 1;
        goto LAB_00101539;
      }
      break;
    case 0x49:
      var_19 = optarg;
      break;
    case 0x56:
      bVar3 = true;
      break;
    case 0x61:
      local_e9d = 1;
      break;
    case 100:
      bVar7 = true;
      break;
    case 0x66:
      bVar6 = true;
      break;
    case 0x67:
      var_3 = var_11(optarg,&DAT_00103ffa,&var_28);
      if ((var_3 != 1) || (local_e9c = var_28, 0x3f < (type_4)var_28)) goto LAB_00101512;
      break;
    case 0x6c:
      var_20 = (type_3 *)optarg;
      break;
    case 0x6e:
      var_21 = optarg;
      break;
    case 0x74:
      var_13 = var_12(optarg);
      if (var_13 < 0) {
        var_5("bad argument to \'--timeout\'\n");
        var_3 = 1;
        goto LAB_00101539;
      }
      if (var_13 == 0) {
        var_13 = 0x3c;
      }
      break;
    case 0x76:
      var_14 = var_14 + 1;
      bVar5 = true;
    }
  }
  if (var_15 < var_16) {
    var_17 = argv[var_15];
    var_15 = var_15 + 1;
    if (var_15 < var_16) goto LAB_0010172e;
  }
  else {
    var_17 = (char *)0x0;
  }
  if ((bVar5) && (bVar3)) {
    var_5("Not in DEBUG mode, so \'-vV\' has no special action\n");
  }
  else if (!bVar3) {
    if (var_17 == (char *)0x0) {
      var_5("missing device name!\n\n");
      var_4();
      var_3 = 1;
      goto LAB_00101539;
    }
    bVar5 = false;
    if (var_18 != 0) {
      if (var_19 != (char *)0x0 || (var_20 != (type_3 *)0x0 || var_21 != (char *)0x0)) {
        var_5("Can\'t have --all= together with --lba=, --num= or --in=\n\n");
        var_4();
        var_3 = 0x1f;
        goto LAB_00101539;
      }
      bVar3 = var_22 < var_23 && var_22 != 0;
      if (bVar3) {
        var_5("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");
        var_3 = 0x1f;
        goto LAB_00101539;
      }
      var_25 = var_24(var_17,0,var_14);
      if (var_25 < 0) goto LAB_001016ce;
      var_3 = var_26(var_25,&inq_resp,1,var_14);
      bVar5 = bVar3;
      if (var_22 == 0) {
        var_28 = var_27(var_25,0,0,var_39,0x20,1,var_14);
        if (var_28 == 6) {
          var_5("Read capacity(16) unit attention, try again\n");
          var_28 = var_27(var_25,0,0,var_39,0x20,1,var_14);
        }
        if (var_28 == 0) {
          if (3 < var_14) {
            var_5("Read capacity(16) response:\n");
            var_29(var_39,0x20,1);
          }
          var_38 = var_30(var_39._2_2_,var_39._0_2_);
          var_22 = (type_5)((type_4)var_39._4_4_ >> 0x18) |
                      (((type_5)(type_4)var_39._4_4_ & 0xff0000) << 0x20) >> 0x28 |
                      (((type_5)(type_4)var_39._4_4_ & 0xff00) << 0x20) >> 0x18 |
                      (((type_5)(type_4)var_39._4_4_ & 0xff) << 0x20) >> 8 |
                      ((type_5)var_38 & 0xff000000) << 8 | ((type_5)var_38 & 0xff0000) << 0x18 |
                      ((type_5)var_38 & 0xff00) << 0x28 | var_31(var_39._4_4_,var_38) << 0x38;
        }
        else {
          if ((var_28 - 5U & 0xfffffffb) != 0) {
            if (var_28 < 0) {
              var_28 = var_32(-var_28);
            }
            var_5("Read capacity(16) failed\n");
            var_3 = var_28;
            goto switchD_00101fe9_caseD_3;
          }
          if (var_14 == 0) {
            var_28 = var_33(var_25,0,0,var_39,8,1,0);
            if (var_28 != 0) {
LAB_001022f0:
              if (var_28 < 0) {
                var_28 = var_32(-var_28);
              }
              var_5("Read capacity(10) failed\n");
              var_3 = var_28;
              goto switchD_00101fe9_caseD_3;
            }
          }
          else {
            var_5("Read capacity(16) not supported, try Read capacity(10)\n");
            var_28 = var_33(var_25,0,0,var_39,8,1,var_14);
            if (var_28 != 0) goto LAB_001022f0;
            if (3 < var_14) {
              var_5("Read capacity(10) response:\n");
              var_29(var_39,8,1);
            }
          }
          var_22 = (type_5)((type_4)((type_1)var_39._2_2_ >> 8) |
                              (((type_1)var_39._2_2_ & 0xff) << 0x10) >> 8 |
                              ((type_1)var_39._0_2_ & 0xff00) << 8 |
                             var_30(var_39._2_2_,var_39._0_2_) << 0x18);
        }
        if (var_22 < var_23) {
          var_5("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",
                  var_23,var_22);
          var_3 = 0x1f;
          goto switchD_00101fe9_caseD_3;
        }
        if (!bVar6) {
          var_34(1,"%s is:  %.8s  %.16s  %.4s\n",var_17,inq_resp.vendor,inq_resp.product,
                       inq_resp.revision);
          var_35(3);
          var_36(var_39,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",var_23,var_17,
                         var_22);
          goto LAB_001020d7;
        }
      }
      else if (!bVar6) {
        var_34(1,"%s is:  %.8s  %.16s  %.4s\n",var_17,inq_resp.vendor,inq_resp.product,
                     inq_resp.revision);
        var_35(3);
        var_36(var_39,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",var_23,var_22,var_17);
LAB_001020d7:
        var_37("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");
        var_34(1,"    ALL data from %s will be LOST\n",var_39);
        var_37("        Press control-C to abort");
        var_35(5);
        var_37("\nAn UNMAP will commence in 10 seconds");
        var_34(1,"    ALL data from %s will be LOST\n",var_39);
        var_37("        Press control-C to abort");
        var_35(5);
        var_37("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");
        var_34(1,"    ALL data from %s will be LOST\n",var_39);
        var_37("        Press control-C to abort");
        var_35(7);
      }
      var_43 = 0;
      if (bVar7) {
        var_5("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"
                ,var_23,var_22,var_18);
      }
      else {
        for (; var_23 <= var_22; var_23 = var_23 + var_38) {
          var_38 = var_18;
          if (var_22 - var_23 < (type_5)var_18) {
            var_38 = ((int)var_22 + 1) - (int)var_23;
          }
          var_9 = var_38 + var_23;
          bVar5 = false;
          while( true ) {
            var_41 = var_39 + 4;
            for (var_40 = 5; var_40 != 0; var_40 = var_40 + -1) {
              var_41[0] = '\0';
              var_41[1] = '\0';
              var_41[2] = '\0';
              var_41[3] = '\0';
              var_41 = var_41 + (type_5)bVar29 * -8 + 4;
            }
            var_39._8_8_ =
                 var_23 >> 0x38 | (var_23 & 0xff000000000000) >> 0x28 |
                 (var_23 & 0xff0000000000) >> 0x18 | (var_23 & 0xff00000000) >> 8 |
                 (var_23 & 0xff000000) << 8 | (var_23 & 0xff0000) << 0x18 |
                 (var_23 & 0xff00) << 0x28 | var_23 << 0x38;
            var_39._16_4_ =
                 var_38 >> 0x18 | (var_38 & 0xff0000) >> 8 | (var_38 & 0xff00) << 8 | var_38 << 0x18
            ;
            var_39[0] = '\0';
            var_39[1] = '\x16';
            var_39[2] = '\0';
            var_39[3] = '\x10';
            var_3 = 2;
            if (1 < var_14) {
              var_3 = var_14;
            }
            var_3 = var_42(var_25,local_e9d,local_e9c,var_13,var_39,0x18,1,var_3 + -2);
            if (bVar5) goto LAB_00102795;
            if (var_3 == 0) break;
            if ((var_3 != 0x16) || (var_9 <= var_22)) goto LAB_00102795;
            var_5("Typical end of disk out-of-range, decrement count and retry\n");
            var_9 = var_9 - 1;
            if (var_38 < 2) goto LAB_00102795;
            var_38 = var_38 - 1;
            bVar5 = true;
          }
          var_43 = var_43 + 1;
        }
LAB_00102795:
        bVar5 = bVar7;
        if (var_14 != 0) {
          var_5("Completed %d UNMAP commands\n",var_43);
        }
      }
      goto switchD_00101fe9_caseD_3;
    }
    if (var_19 != (char *)0x0) {
      if (var_20 != (type_3 *)0x0 || var_21 != (char *)0x0) {
        var_5("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");
        var_4();
        var_3 = 0x1f;
        goto LAB_00101539;
      }
      var_44 = addr_arr;
      for (var_40 = 0x80; var_40 != 0; var_40 = var_40 + -1) {
        *var_44 = 0;
        var_44 = var_44 + (type_5)bVar29 * -2 + 1;
      }
      var_45 = num_arr;
      for (var_40 = 0x40; var_40 != 0; var_40 = var_40 + -1) {
        var_45[0] = 0;
        var_45[1] = 0;
        var_45 = var_45 + (type_5)bVar29 * -4 + 2;
      }
      if ((var_21 != (char *)0x0) && (var_20 != (type_3 *)0x0)) goto LAB_001018ea;
LAB_00101840:
      var_40 = -1;
      var_10 = var_19;
      do {
        if (var_40 == 0) break;
        var_40 = var_40 + -1;
        var_46 = *var_10;
        var_10 = var_10 + (type_5)bVar29 * -2 + 1;
      } while (var_46 != '\0');
      if ((var_40 == -3) && (*var_19 == '-')) {
        var_20 = var_56;
        bVar3 = true;
LAB_00101bce:
        var_38 = 0;
        var_3 = 0;
        while (var_10 = var_47((char *)var_39,0x400,var_20), var_10 != (char *)0x0) {
          var_40 = -1;
          var_41 = var_39;
          do {
            if (var_40 == 0) break;
            var_40 = var_40 + -1;
            var_48 = *var_41;
            var_41 = var_41 + (type_5)bVar29 * -2 + 1;
          } while (var_48 != '\0');
          var_25 = ~(type_4)var_40 - 1;
          if (0 < var_25) {
            var_49 = ~(type_4)var_40 - 2;
            if ((var_39[var_49] == '\n') &&
               (var_39[var_49] = '\0', var_25 = var_49, var_49 < 1)) goto LAB_00101d67;
            var_55 = var_50((char *)var_39," \t");
            var_49 = (int)var_55;
            if (var_49 == var_25) goto LAB_00101d67;
            var_41 = var_39 + var_49;
            if (*var_41 == '#') goto LAB_00101d67;
            var_55 = var_50((char *)var_41,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");
            var_51 = (int)var_55;
            if (var_25 - var_49 <= var_51) {
              var_25 = 0;
LAB_00101d1a:
              while( true ) {
                var_52 = var_8(var_41);
                if (var_52 == 0xffffffffffffffff) break;
                var_49 = (int)(var_25 + var_38) >> 1;
                if (0x7f < var_49) {
                  var_5("%s: array length exceeded\n","build_joint_arr");
                  goto LAB_00101c6b;
                }
                if ((var_25 + var_38 & 1) == 0) {
                  addr_arr[var_49] = var_52;
                }
                else {
                  if (0xffffffff < (long)var_52) {
                    var_53 = (int)local_38;
                    var_5("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",
                            var_3 + 1,((int)var_41 - var_53) + 0x811);
                    goto LAB_00101c6b;
                  }
                  num_arr[var_49] = (uint32_t)var_52;
                }
                var_10 = var_54((char *)var_41," ,\t");
                if (var_10 == (char *)0x0) goto LAB_00101d62;
                var_55 = var_50(var_10," ,\t");
                var_41 = (uint8_t *)(var_10 + var_55);
                if ((*var_41 == '\0') || (var_25 = var_25 + 1, var_25 == 0x400)) goto LAB_00101d62;
              }
              if (*var_41 != '#') {
                var_53 = (int)local_38;
                var_5("%s: error on line %d, at pos %d\n","build_joint_arr",var_3 + 1,
                        ((int)var_41 - var_53) + 0x811);
                goto LAB_00101c6b;
              }
              var_25 = var_25 + -1;
LAB_00101d62:
              var_38 = var_25 + 1 + var_38;
              goto LAB_00101d67;
            }
            if (var_41[var_51] == '#') {
              var_25 = 0;
              goto LAB_00101d1a;
            }
            var_5("%s: syntax error at line %d, pos %d\n","build_joint_arr",var_3 + 1,
                    var_49 + 1 + var_51);
            goto LAB_00101c6b;
          }
LAB_00101d67:
          var_3 = var_3 + 1;
          if (var_3 == 0x200) break;
        }
        if ((var_38 & 1) == 0) {
          var_49 = (int)var_38 >> 1;
          if ((var_20 != (type_3 *)0x0) && (var_20 != var_56)) {
            var_57(var_20);
          }
          if (var_49 < 1) {
            var_5("no addresses found in \'--in=\' argument, file: %s\n",var_19);
            var_3 = 1;
            goto LAB_00101539;
          }
          goto LAB_00101e88;
        }
        var_10 = "stdin";
        if (!bVar3) {
          var_10 = var_19;
        }
        var_5("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",
                var_10);
LAB_00101c6b:
        if ((var_20 != (type_3 *)0x0) && (var_20 != var_56)) {
          var_57(var_20);
        }
      }
      else {
        var_20 = var_58(var_19,"r");
        if (var_20 != (type_3 *)0x0) {
          bVar3 = false;
          goto LAB_00101bce;
        }
        var_5("%s: unable to open %s\n","build_joint_arr",var_19);
      }
      var_5("bad argument to \'--in\'\n");
      var_3 = 1;
      goto LAB_00101539;
    }
    if ((var_20 == (type_3 *)0x0) || (var_21 == (char *)0x0)) {
      if (var_20 == (type_3 *)0x0) {
        var_5("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");
      }
      else {
        var_5("since \'--lba=\' is given, also need \'--num=\'\n\n");
      }
      var_4();
      var_3 = 0x1f;
      goto LAB_00101539;
    }
    var_44 = addr_arr;
    for (var_40 = 0x80; var_40 != 0; var_40 = var_40 + -1) {
      *var_44 = 0;
      var_44 = var_44 + (type_5)bVar29 * -2 + 1;
    }
    var_45 = num_arr;
    for (var_40 = 0x40; var_40 != 0; var_40 = var_40 + -1) {
      var_45[0] = 0;
      var_45[1] = 0;
      var_45 = var_45 + (type_5)bVar29 * -4 + 2;
    }
LAB_001018ea:
    var_40 = -1;
    pFVar20 = var_20;
    do {
      if (var_40 == 0) break;
      var_40 = var_40 + -1;
      var_46 = *(char *)pFVar20;
      pFVar20 = (type_3 *)((long)pFVar20 + (type_5)bVar29 * -2 + 1);
    } while (var_46 != '\0');
    if (*(char *)var_20 == '-') {
      var_5("\'--lba\' cannot be read from stdin\n");
LAB_001019b7:
      var_5("bad argument to \'--lba\'\n");
      var_3 = 1;
      goto LAB_00101539;
    }
    var_55 = var_50((char *)var_20,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");
    if (~(type_4)var_40 - 1 != (int)var_55) {
      var_5("build_lba_arr: error at pos %d\n",(int)var_55 + 1);
      goto LAB_001019b7;
    }
    var_40 = 0;
    pFVar20 = var_20;
    do {
      var_3 = (int)var_40;
      var_52 = var_8(pFVar20);
      if (var_52 == 0xffffffffffffffff) {
        var_5("build_lba_arr: error at pos %d\n",((int)pFVar20 - (int)var_20) + 1);
        goto LAB_001019b7;
      }
      addr_arr[var_40] = var_52;
      var_7 = var_6((char *)pFVar20,0x2c);
      var_10 = var_6((char *)pFVar20,0x20);
      if (var_7 == (char *)0x0) {
        if (var_10 != (char *)0x0) goto LAB_001019db;
        var_49 = var_3 + 1;
        goto LAB_00102805;
      }
      if ((var_10 == (char *)0x0) || (var_7 <= var_10)) {
        var_10 = var_7;
      }
LAB_001019db:
      pFVar20 = (type_3 *)(var_10 + 1);
      var_40 = var_40 + 1;
    } while (var_40 != 0x80);
    var_49 = var_3 + 2;
    if (var_3 == 0x7f) {
      var_5("build_lba_arr: array length exceeded\n");
      goto LAB_001019b7;
    }
LAB_00102805:
    if (*var_21 == '-') {
      var_5("\'--len\' cannot be read from stdin\n");
LAB_00101aa5:
      var_5("bad argument to \'--num\'\n");
      var_3 = 1;
      goto LAB_00101539;
    }
    var_40 = -1;
    var_10 = var_21;
    do {
      if (var_40 == 0) break;
      var_40 = var_40 + -1;
      var_46 = *var_10;
      var_10 = var_10 + (type_5)bVar29 * -2 + 1;
    } while (var_46 != '\0');
    var_55 = var_50(var_21,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");
    if ((int)var_55 != ~(type_4)var_40 - 1) {
      var_5("build_num_arr: error at pos %d\n",(int)var_55 + 1);
      goto LAB_00101aa5;
    }
    var_40 = 0;
    var_10 = var_21;
    do {
      var_3 = (int)var_40;
      var_59 = var_8(var_10);
      if (var_59 == -1) {
        var_5("build_num_arr: error at pos %d\n",((int)var_10 - (int)var_21) + 1);
        goto LAB_00101aa5;
      }
      if (0xffffffff < var_59) {
        var_5("build_num_arr: number exceeds 32 bits at pos %d\n",
                ((int)var_10 - (int)var_21) + 1);
        goto LAB_00101aa5;
      }
      num_arr[var_40] = (uint32_t)var_59;
      var_7 = var_6(var_10,0x2c);
      var_10 = var_6(var_10,0x20);
      if (var_7 == (char *)0x0) {
        if (var_10 != (char *)0x0) goto LAB_00101ae7;
        var_25 = var_3 + 1;
        goto LAB_001027df;
      }
      if ((var_10 == (char *)0x0) || (var_7 <= var_10)) {
        var_10 = var_7;
      }
LAB_00101ae7:
      var_10 = var_10 + 1;
      var_40 = var_40 + 1;
    } while (var_40 != 0x80);
    var_25 = var_3 + 2;
    if (var_3 == 0x7f) {
      var_5("build_num_arr: array length exceeded\n");
      goto LAB_00101aa5;
    }
LAB_001027df:
    if ((var_49 != var_25) || (var_25 < 1)) {
      var_5("need same number of arguments to \'--lba=\' and \'--num=\' options\n");
      var_3 = 0x1f;
      goto LAB_00101539;
    }
    if (var_19 != (char *)0x0) goto LAB_00101840;
LAB_00101e88:
    var_51 = var_49 * 0x10 + 8;
    var_60(var_39,0,(long)var_51,0x808);
    var_61 = (type_4 *)var_39;
    for (var_40 = 0; (int)var_40 < var_49; var_40 = var_40 + 1) {
      var_23 = addr_arr[var_40];
      *(type_5 *)(var_61 + 2) =
           var_23 >> 0x38 | (var_23 & 0xff000000000000) >> 0x28 | (var_23 & 0xff0000000000) >> 0x18
           | (var_23 & 0xff00000000) >> 8 | (var_23 & 0xff000000) << 8 | (var_23 & 0xff0000) << 0x18
           | (var_23 & 0xff00) << 0x28 | var_23 << 0x38;
      var_38 = num_arr[var_40];
      var_61[4] = var_38 >> 0x18 | (var_38 & 0xff0000) >> 8 | (var_38 & 0xff00) << 8 |
                   var_38 << 0x18;
      var_61 = var_61 + 4;
    }
    var_62 = (type_1)(var_49 * 0x10);
    var_39._0_2_ = (var_62 + 6) * 0x100 | (type_1)(var_62 + 6) >> 8;
    var_39._2_2_ = var_62 << 8 | var_62 >> 8;
    var_25 = var_24(var_17,0,var_14);
    if (var_25 < 0) {
LAB_001016ce:
      var_3 = var_32(-var_25);
      uVar13 = var_63(-var_25);
      var_5("open error: %s: %s\n",var_17,uVar13);
    }
    else {
      var_3 = var_26(var_25,&inq_resp,1,var_14);
      if (bVar7) {
        var_5("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");
        var_61 = (type_4 *)var_39;
        for (var_13 = 0; var_13 < var_49; var_13 = var_13 + 1) {
          var_38 = var_61[4];
          var_23 = *(type_5 *)(var_61 + 2);
          var_34(1,"    0x%lx, 0x%u\n",
                       var_23 >> 0x38 | (var_23 & 0xff000000000000) >> 0x28 |
                       (var_23 & 0xff0000000000) >> 0x18 | (var_23 & 0xff00000000) >> 8 |
                       (var_23 & 0xff000000) << 8 | (var_23 & 0xff0000) << 0x18 |
                       (var_23 & 0xff00) << 0x28 | var_23 << 0x38,
                       var_38 >> 0x18 | (var_38 & 0xff0000) >> 8 | (var_38 & 0xff00) << 8 |
                       var_38 << 0x18);
          var_61 = var_61 + 4;
        }
      }
      else {
        if (!bVar6) {
          var_34(1,"%s is:  %.8s  %.16s  %.4s\n",var_17,inq_resp.vendor,inq_resp.product,
                       inq_resp.revision);
          var_35(3);
          var_37("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");
          var_37("    Some data will be LOST");
          var_37("        Press control-C to abort");
          var_35(5);
          var_37("\nAn UNMAP will commence in 10 seconds");
          var_37("    Some data will be LOST");
          var_37("        Press control-C to abort");
          var_35(5);
          var_37("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");
          var_37("    Some data will be LOST");
          var_37("        Press control-C to abort");
          var_35(7);
        }
        var_3 = var_42(var_25,local_e9d,local_e9c,var_13,var_39,var_51,1,var_14);
        var_28 = var_3;
        bVar5 = bVar7;
        switch(var_3) {
        case 2:
          var_5("UNMAP failed, device not ready\n");
          bVar5 = true;
          break;
        case 5:
          var_5("bad field in UNMAP cdb\n");
          bVar5 = true;
          break;
        case 6:
          var_5("UNMAP, unit attention\n");
          bVar5 = true;
          break;
        case 9:
          var_5("UNMAP not supported\n");
          bVar5 = true;
          break;
        case 0xb:
          var_5("UNMAP, aborted command\n");
          bVar5 = true;
        }
      }
switchD_00101fe9_caseD_3:
      var_28 = var_64(var_25);
      if (var_28 < 0) {
        uVar13 = var_63(-var_28);
        var_5("close error: %s\n",uVar13);
        if (var_3 == 0) {
          var_3 = var_32(-var_28);
        }
      }
    }
    if (((var_14 == 0) && (!bVar5)) &&
       (var_46 = var_65("sg_unmap failed: ",var_3), var_46 == '\0')) {
      var_5("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
    }
    if (var_3 < 0) {
      var_3 = 99;
    }
    goto LAB_00101539;
  }
  var_5("version: %s\n","1.17 20180628");
  var_3 = 0;
  goto LAB_00101539;
LAB_00101512:
  var_5("value for \'--grpnum=\' must be 0 to 63\n");
  var_3 = 1;
  goto LAB_00101539;
LAB_0010172e:
  do {
    var_5("Unexpected extra argument: %s\n",argv[var_15]);
    var_15 = var_15 + 1;
  } while (var_15 < var_16);
  var_4();
  var_3 = 1;
LAB_00101539:
  if (var_66 == *(long *)(var_1 + 0x28)) {
    return var_3;
  }
                    /* WARNING: Subroutine does not return */
  var_67();
}


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

/* WARNING: Type propagation algorithm not settling */

uint MASKED(int param_1,long param_2)

{
  bool bVar1;
  ushort uVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  char cVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  undefined8 uVar12;
  char *pcVar13;
  long lVar14;
  char *pcVar15;
  size_t sVar16;
  long lVar17;
  FILE *pFVar18;
  uint *puVar19;
  uint uVar20;
  ulong *puVar21;
  int iVar22;
  ulong uVar23;
  ulong uVar24;
  long in_FS_OFFSET;
  byte bVar25;
  int local_ed0;
  int local_ec8;
  int local_ec4;
  char *local_ec0;
  FILE *local_eb8;
  char *local_eb0;
  uint local_ea4;
  undefined1 local_e9d;
  uint local_e9c;
  long local_e98;
  ulong local_e90;
  uint local_e80 [2];
  undefined1 local_e78 [8];
  undefined1 local_e70 [9];
  undefined1 local_e67 [17];
  undefined1 local_e56 [14];
  uint local_e48 [128];
  ulong local_c48 [128];
  undefined4 local_848;
  uint uStack_844;
  ulong local_840;
  uint local_838 [510];
  long local_40;
  undefined1 local_38 [8];
  
  bVar25 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_ec0 = (char *)0x0;
  local_eb0 = (char *)0x0;
  local_eb8 = (FILE *)0x0;
  local_e90 = 0;
  uVar24 = 0;
  local_ea4 = 0;
  local_ec4 = 0;
  iVar22 = 0x3c;
  local_e9c = 0;
  bVar1 = false;
  bVar3 = false;
  bVar5 = false;
  bVar4 = false;
  local_e9d = 0;
  while( true ) {
    local_e80[1] = 0;
    iVar7 = getopt_long(param_1,param_2,"aA:dfg:hI:Hl:n:t:vV",&PTR_DAT_00106020,local_e80 + 1);
    pcVar15 = optarg;
    if (iVar7 == -1) break;
    switch(iVar7) {
    case 0x3f:
    case 0x68:
      FUN_001012d5();
      uVar8 = 0;
      goto LAB_00101539;
    default:
      pr2serr("unrecognised option code 0x%x ??\n",iVar7);
      FUN_001012d5();
      uVar8 = 1;
      goto LAB_00101539;
    case 0x41:
      pcVar13 = strchr(optarg,0x2c);
      if (pcVar13 == (char *)0x0) {
        pr2serr("--all=ST,RN[,LA] expects at least one comma in argument, found none\n");
        uVar8 = 1;
        goto LAB_00101539;
      }
      uVar24 = sg_get_llnum(pcVar15);
      if ((long)uVar24 < 0) {
        pr2serr("unable to decode --all=ST,.... (starting LBA)\n");
        uVar8 = 1;
        goto LAB_00101539;
      }
      uVar23 = sg_get_llnum(pcVar13 + 1);
      if (0xffffffff < uVar23) {
        pr2serr("unable to decode --all=ST,RN.... (repeat number)\n");
        uVar8 = 1;
        goto LAB_00101539;
      }
      local_ea4 = (uint)uVar23;
      if (uVar23 == 0) {
        pr2serr("warning: --all=ST,RN... being ignored because RN is 0\n");
      }
      pcVar15 = strchr(pcVar13 + 1,0x2c);
      if ((pcVar15 != (char *)0x0) && (local_e90 = sg_get_llnum(pcVar15 + 1), (long)local_e90 < 0))
      {
        pr2serr("unable to decode --all=ST,NR,LA (last LBA)\n");
        uVar8 = 1;
        goto LAB_00101539;
      }
      break;
    case 0x49:
      local_ec0 = optarg;
      break;
    case 0x56:
      bVar1 = true;
      break;
    case 0x61:
      local_e9d = 1;
      break;
    case 100:
      bVar5 = true;
      break;
    case 0x66:
      bVar4 = true;
      break;
    case 0x67:
      iVar7 = __isoc99_sscanf(optarg,&DAT_00103ffa,local_e80);
      if ((iVar7 != 1) || (local_e9c = local_e80[0], 0x3f < local_e80[0])) goto LAB_00101512;
      break;
    case 0x6c:
      local_eb8 = (FILE *)optarg;
      break;
    case 0x6e:
      local_eb0 = optarg;
      break;
    case 0x74:
      iVar22 = sg_get_num(optarg);
      if (iVar22 < 0) {
        pr2serr("bad argument to \'--timeout\'\n");
        uVar8 = 1;
        goto LAB_00101539;
      }
      if (iVar22 == 0) {
        iVar22 = 0x3c;
      }
      break;
    case 0x76:
      local_ec4 = local_ec4 + 1;
      bVar3 = true;
    }
  }
  if (optind < param_1) {
    local_e98 = *(long *)(param_2 + (long)optind * 8);
    optind = optind + 1;
    if (optind < param_1) goto LAB_0010172e;
  }
  else {
    local_e98 = 0;
  }
  if ((bVar3) && (bVar1)) {
    pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");
  }
  else if (!bVar1) {
    if (local_e98 == 0) {
      pr2serr("missing device name!\n\n");
      FUN_001012d5();
      uVar8 = 1;
      goto LAB_00101539;
    }
    bVar3 = false;
    if (local_ea4 != 0) {
      if (local_ec0 != (char *)0x0 || (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0)) {
        pr2serr("Can\'t have --all= together with --lba=, --num= or --in=\n\n");
        FUN_001012d5();
        uVar8 = 0x1f;
        goto LAB_00101539;
      }
      bVar1 = local_e90 < uVar24 && local_e90 != 0;
      if (bVar1) {
        pr2serr("in --all=ST,RN,LA start address (ST) exceeds last address (LA)\n");
        uVar8 = 0x1f;
        goto LAB_00101539;
      }
      iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);
      if (iVar7 < 0) goto LAB_001016ce;
      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);
      bVar3 = bVar1;
      if (local_e90 == 0) {
        local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);
        if (local_e80[0] == 6) {
          pr2serr("Read capacity(16) unit attention, try again\n");
          local_e80[0] = sg_ll_readcap_16(iVar7,0,0,&local_848,0x20,1,local_ec4);
        }
        if (local_e80[0] == 0) {
          if (3 < local_ec4) {
            pr2serr("Read capacity(16) response:\n");
            hex2stderr(&local_848,0x20,1);
          }
          uVar20 = CONCAT22(local_848._2_2_,(ushort)local_848);
          local_e90 = (ulong)(uStack_844 >> 0x18) | (((ulong)uStack_844 & 0xff0000) << 0x20) >> 0x28
                      | (((ulong)uStack_844 & 0xff00) << 0x20) >> 0x18 |
                      (((ulong)uStack_844 & 0xff) << 0x20) >> 8 | ((ulong)uVar20 & 0xff000000) << 8
                      | ((ulong)uVar20 & 0xff0000) << 0x18 | ((ulong)uVar20 & 0xff00) << 0x28 |
                      CONCAT44(uStack_844,uVar20) << 0x38;
        }
        else {
          if ((local_e80[0] - 5 & 0xfffffffb) != 0) {
            if ((int)local_e80[0] < 0) {
              local_e80[0] = sg_convert_errno(-local_e80[0]);
            }
            pr2serr("Read capacity(16) failed\n");
            uVar8 = local_e80[0];
            goto switchD_00101fe9_caseD_3;
          }
          if (local_ec4 == 0) {
            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,0);
            if (local_e80[0] != 0) {
LAB_001022f0:
              if ((int)local_e80[0] < 0) {
                local_e80[0] = sg_convert_errno(-local_e80[0]);
              }
              pr2serr("Read capacity(10) failed\n");
              uVar8 = local_e80[0];
              goto switchD_00101fe9_caseD_3;
            }
          }
          else {
            pr2serr("Read capacity(16) not supported, try Read capacity(10)\n");
            local_e80[0] = sg_ll_readcap_10(iVar7,0,0,&local_848,8,1,local_ec4);
            if (local_e80[0] != 0) goto LAB_001022f0;
            if (3 < local_ec4) {
              pr2serr("Read capacity(10) response:\n");
              hex2stderr(&local_848,8,1);
            }
          }
          local_e90 = (ulong)((uint)(local_848._2_2_ >> 8) | ((local_848._2_2_ & 0xff) << 0x10) >> 8
                              | ((ushort)local_848 & 0xff00) << 8 |
                             CONCAT22(local_848._2_2_,(ushort)local_848) << 0x18);
        }
        if (local_e90 < uVar24) {
          pr2serr("after READ CAPACITY the last block (0x%lx) less than start address (0x%lx)\n",
                  uVar24,local_e90);
          uVar8 = 0x1f;
          goto switchD_00101fe9_caseD_3;
        }
        if (!bVar4) {
          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);
          sleep(3);
          __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to end of %s (0x%lx)",uVar24,local_e98,
                         local_e90);
          goto LAB_001020d7;
        }
      }
      else if (!bVar4) {
        __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);
        sleep(3);
        __snprintf_chk(&local_848,0x78,1,0x78,"LBA 0x%lx to 0x%lx on %s",uVar24,local_e90,local_e98)
        ;
LAB_001020d7:
        puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");
        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);
        puts("        Press control-C to abort");
        sleep(5);
        puts("\nAn UNMAP will commence in 10 seconds");
        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);
        puts("        Press control-C to abort");
        sleep(5);
        puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");
        __printf_chk(1,"    ALL data from %s will be LOST\n",&local_848);
        puts("        Press control-C to abort");
        sleep(7);
      }
      local_ec8 = 0;
      if (bVar5) {
        pr2serr("Doing dry-run, would have unmapped from LBA 0x%lx to 0x%lx\n    %u blocks per UNMAP command\n"
                ,uVar24,local_e90,local_ea4);
      }
      else {
        for (; uVar24 <= local_e90; uVar24 = uVar24 + uVar20) {
          uVar20 = local_ea4;
          if (local_e90 - uVar24 < (ulong)local_ea4) {
            uVar20 = ((int)local_e90 + 1) - (int)uVar24;
          }
          uVar23 = uVar20 + uVar24;
          bVar3 = false;
          while( true ) {
            puVar19 = &uStack_844;
            for (lVar17 = 5; lVar17 != 0; lVar17 = lVar17 + -1) {
              *puVar19 = 0;
              puVar19 = puVar19 + (ulong)bVar25 * -2 + 1;
            }
            local_840 = uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |
                        (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |
                        (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |
                        (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;
            local_838[0] = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |
                           uVar20 << 0x18;
            local_848._0_2_ = 0x1600;
            local_848._2_2_ = 0x1000;
            iVar9 = 2;
            if (1 < local_ec4) {
              iVar9 = local_ec4;
            }
            uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,0x18,1,iVar9 + -2);
            if (bVar3) goto LAB_00102795;
            if (uVar8 == 0) break;
            if ((uVar8 != 0x16) || (uVar23 <= local_e90)) goto LAB_00102795;
            pr2serr("Typical end of disk out-of-range, decrement count and retry\n");
            uVar23 = uVar23 - 1;
            if (uVar20 < 2) goto LAB_00102795;
            uVar20 = uVar20 - 1;
            bVar3 = true;
          }
          local_ec8 = local_ec8 + 1;
        }
LAB_00102795:
        bVar3 = bVar5;
        if (local_ec4 != 0) {
          pr2serr("Completed %d UNMAP commands\n",local_ec8);
        }
      }
      goto switchD_00101fe9_caseD_3;
    }
    if (local_ec0 != (char *)0x0) {
      if (local_eb8 != (FILE *)0x0 || local_eb0 != (char *)0x0) {
        pr2serr("expect \'--in=\' by itself, or both \'--lba=\' and \'--num=\'\n\n");
        FUN_001012d5();
        uVar8 = 0x1f;
        goto LAB_00101539;
      }
      puVar21 = local_c48;
      for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {
        *puVar21 = 0;
        puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;
      }
      puVar19 = local_e48;
      for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {
        puVar19[0] = 0;
        puVar19[1] = 0;
        puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;
      }
      if ((local_eb0 != (char *)0x0) && (local_eb8 != (FILE *)0x0)) goto LAB_001018ea;
LAB_00101840:
      lVar17 = -1;
      pcVar15 = local_ec0;
      do {
        if (lVar17 == 0) break;
        lVar17 = lVar17 + -1;
        cVar6 = *pcVar15;
        pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;
      } while (cVar6 != '\0');
      if ((lVar17 == -3) && (*local_ec0 == '-')) {
        local_eb8 = stdin;
        bVar1 = true;
LAB_00101bce:
        uVar8 = 0;
        iVar7 = 0;
        while (pcVar15 = fgets((char *)&local_848,0x400,local_eb8), pcVar15 != (char *)0x0) {
          lVar17 = -1;
          pcVar15 = (char *)&local_848;
          do {
            if (lVar17 == 0) break;
            lVar17 = lVar17 + -1;
            cVar6 = *pcVar15;
            pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;
          } while (cVar6 != '\0');
          iVar9 = ~(uint)lVar17 - 1;
          if (0 < iVar9) {
            iVar10 = ~(uint)lVar17 - 2;
            if ((*(char *)((long)&local_848 + (long)iVar10) == '\n') &&
               (*(undefined1 *)((long)&local_848 + (long)iVar10) = 0, iVar9 = iVar10, iVar10 < 1))
            goto LAB_00101d67;
            sVar16 = strspn((char *)&local_848," \t");
            iVar10 = (int)sVar16;
            if (iVar10 == iVar9) goto LAB_00101d67;
            pcVar15 = (char *)((long)&local_848 + (long)iVar10);
            if (*pcVar15 == '#') goto LAB_00101d67;
            sVar16 = strspn(pcVar15,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP ,\t");
            iVar11 = (int)sVar16;
            if (iVar9 - iVar10 <= iVar11) {
              iVar9 = 0;
LAB_00101d1a:
              while( true ) {
                uVar24 = sg_get_llnum(pcVar15);
                if (uVar24 == 0xffffffffffffffff) break;
                iVar10 = (int)(iVar9 + uVar8) >> 1;
                if (0x7f < iVar10) {
                  pr2serr("%s: array length exceeded\n","build_joint_arr");
                  goto LAB_00101c6b;
                }
                if ((iVar9 + uVar8 & 1) == 0) {
                  local_c48[iVar10] = uVar24;
                }
                else {
                  if (0xffffffff < (long)uVar24) {
                    local_ed0 = (int)local_38;
                    pr2serr("%s: number exceeds 32 bits in line %d, at pos %d\n","build_joint_arr",
                            iVar7 + 1,((int)pcVar15 - local_ed0) + 0x811);
                    goto LAB_00101c6b;
                  }
                  local_e48[iVar10] = (uint)uVar24;
                }
                pcVar15 = strpbrk(pcVar15," ,\t");
                if (pcVar15 == (char *)0x0) goto LAB_00101d62;
                sVar16 = strspn(pcVar15," ,\t");
                pcVar15 = pcVar15 + sVar16;
                if ((*pcVar15 == '\0') || (iVar9 = iVar9 + 1, iVar9 == 0x400)) goto LAB_00101d62;
              }
              if (*pcVar15 != '#') {
                local_ed0 = (int)local_38;
                pr2serr("%s: error on line %d, at pos %d\n","build_joint_arr",iVar7 + 1,
                        ((int)pcVar15 - local_ed0) + 0x811);
                goto LAB_00101c6b;
              }
              iVar9 = iVar9 + -1;
LAB_00101d62:
              uVar8 = iVar9 + 1 + uVar8;
              goto LAB_00101d67;
            }
            if (pcVar15[iVar11] == '#') {
              iVar9 = 0;
              goto LAB_00101d1a;
            }
            pr2serr("%s: syntax error at line %d, pos %d\n","build_joint_arr",iVar7 + 1,
                    iVar10 + 1 + iVar11);
            goto LAB_00101c6b;
          }
LAB_00101d67:
          iVar7 = iVar7 + 1;
          if (iVar7 == 0x200) break;
        }
        if ((uVar8 & 1) == 0) {
          iVar9 = (int)uVar8 >> 1;
          if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {
            fclose(local_eb8);
          }
          if (iVar9 < 1) {
            pr2serr("no addresses found in \'--in=\' argument, file: %s\n",local_ec0);
            uVar8 = 1;
            goto LAB_00101539;
          }
          goto LAB_00101e88;
        }
        pcVar15 = "stdin";
        if (!bVar1) {
          pcVar15 = local_ec0;
        }
        pr2serr("%s: expect LBA,NUM pairs but decoded odd number\n  from %s\n","build_joint_arr",
                pcVar15);
LAB_00101c6b:
        if ((local_eb8 != (FILE *)0x0) && (local_eb8 != stdin)) {
          fclose(local_eb8);
        }
      }
      else {
        local_eb8 = fopen64(local_ec0,"r");
        if (local_eb8 != (FILE *)0x0) {
          bVar1 = false;
          goto LAB_00101bce;
        }
        pr2serr("%s: unable to open %s\n","build_joint_arr",local_ec0);
      }
      pr2serr("bad argument to \'--in\'\n");
      uVar8 = 1;
      goto LAB_00101539;
    }
    if ((local_eb8 == (FILE *)0x0) || (local_eb0 == (char *)0x0)) {
      if (local_eb8 == (FILE *)0x0) {
        pr2serr("expect either both \'--lba=\' and \'--num=\', or \'--in=\', or \'--all=\'\n\n");
      }
      else {
        pr2serr("since \'--lba=\' is given, also need \'--num=\'\n\n");
      }
      FUN_001012d5();
      uVar8 = 0x1f;
      goto LAB_00101539;
    }
    puVar21 = local_c48;
    for (lVar17 = 0x80; lVar17 != 0; lVar17 = lVar17 + -1) {
      *puVar21 = 0;
      puVar21 = puVar21 + (ulong)bVar25 * -2 + 1;
    }
    puVar19 = local_e48;
    for (lVar17 = 0x40; lVar17 != 0; lVar17 = lVar17 + -1) {
      puVar19[0] = 0;
      puVar19[1] = 0;
      puVar19 = puVar19 + ((ulong)bVar25 * -2 + 1) * 2;
    }
LAB_001018ea:
    lVar17 = -1;
    pFVar18 = local_eb8;
    do {
      if (lVar17 == 0) break;
      lVar17 = lVar17 + -1;
      cVar6 = *(char *)pFVar18;
      pFVar18 = (FILE *)((long)pFVar18 + (ulong)bVar25 * -2 + 1);
    } while (cVar6 != '\0');
    if (*(char *)local_eb8 == '-') {
      pr2serr("\'--lba\' cannot be read from stdin\n");
LAB_001019b7:
      pr2serr("bad argument to \'--lba\'\n");
      uVar8 = 1;
      goto LAB_00101539;
    }
    sVar16 = strspn((char *)local_eb8,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");
    if (~(uint)lVar17 - 1 != (int)sVar16) {
      pr2serr("build_lba_arr: error at pos %d\n",(int)sVar16 + 1);
      goto LAB_001019b7;
    }
    lVar17 = 0;
    pFVar18 = local_eb8;
    do {
      iVar7 = (int)lVar17;
      uVar24 = sg_get_llnum(pFVar18);
      if (uVar24 == 0xffffffffffffffff) {
        pr2serr("build_lba_arr: error at pos %d\n",((int)pFVar18 - (int)local_eb8) + 1);
        goto LAB_001019b7;
      }
      local_c48[lVar17] = uVar24;
      pcVar13 = strchr((char *)pFVar18,0x2c);
      pcVar15 = strchr((char *)pFVar18,0x20);
      if (pcVar13 == (char *)0x0) {
        if (pcVar15 != (char *)0x0) goto LAB_001019db;
        iVar9 = iVar7 + 1;
        goto LAB_00102805;
      }
      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {
        pcVar15 = pcVar13;
      }
LAB_001019db:
      pFVar18 = (FILE *)(pcVar15 + 1);
      lVar17 = lVar17 + 1;
    } while (lVar17 != 0x80);
    iVar9 = iVar7 + 2;
    if (iVar7 == 0x7f) {
      pr2serr("build_lba_arr: array length exceeded\n");
      goto LAB_001019b7;
    }
LAB_00102805:
    if (*local_eb0 == '-') {
      pr2serr("\'--len\' cannot be read from stdin\n");
LAB_00101aa5:
      pr2serr("bad argument to \'--num\'\n");
      uVar8 = 1;
      goto LAB_00101539;
    }
    lVar17 = -1;
    pcVar15 = local_eb0;
    do {
      if (lVar17 == 0) break;
      lVar17 = lVar17 + -1;
      cVar6 = *pcVar15;
      pcVar15 = pcVar15 + (ulong)bVar25 * -2 + 1;
    } while (cVar6 != '\0');
    sVar16 = strspn(local_eb0,"0123456789aAbBcCdDeEfFhHxXiIkKmMgGtTpP, ");
    if ((int)sVar16 != ~(uint)lVar17 - 1) {
      pr2serr("build_num_arr: error at pos %d\n",(int)sVar16 + 1);
      goto LAB_00101aa5;
    }
    lVar17 = 0;
    pcVar15 = local_eb0;
    do {
      iVar7 = (int)lVar17;
      lVar14 = sg_get_llnum(pcVar15);
      if (lVar14 == -1) {
        pr2serr("build_num_arr: error at pos %d\n",((int)pcVar15 - (int)local_eb0) + 1);
        goto LAB_00101aa5;
      }
      if (0xffffffff < lVar14) {
        pr2serr("build_num_arr: number exceeds 32 bits at pos %d\n",
                ((int)pcVar15 - (int)local_eb0) + 1);
        goto LAB_00101aa5;
      }
      local_e48[lVar17] = (uint)lVar14;
      pcVar13 = strchr(pcVar15,0x2c);
      pcVar15 = strchr(pcVar15,0x20);
      if (pcVar13 == (char *)0x0) {
        if (pcVar15 != (char *)0x0) goto LAB_00101ae7;
        iVar10 = iVar7 + 1;
        goto LAB_001027df;
      }
      if ((pcVar15 == (char *)0x0) || (pcVar13 <= pcVar15)) {
        pcVar15 = pcVar13;
      }
LAB_00101ae7:
      pcVar15 = pcVar15 + 1;
      lVar17 = lVar17 + 1;
    } while (lVar17 != 0x80);
    iVar10 = iVar7 + 2;
    if (iVar7 == 0x7f) {
      pr2serr("build_num_arr: array length exceeded\n");
      goto LAB_00101aa5;
    }
LAB_001027df:
    if ((iVar9 != iVar10) || (iVar10 < 1)) {
      pr2serr("need same number of arguments to \'--lba=\' and \'--num=\' options\n");
      uVar8 = 0x1f;
      goto LAB_00101539;
    }
    if (local_ec0 != (char *)0x0) goto LAB_00101840;
LAB_00101e88:
    iVar10 = iVar9 * 0x10 + 8;
    __memset_chk(&local_848,0,(long)iVar10,0x808);
    puVar19 = &local_848;
    for (lVar17 = 0; (int)lVar17 < iVar9; lVar17 = lVar17 + 1) {
      uVar24 = local_c48[lVar17];
      *(ulong *)(puVar19 + 2) =
           uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 | (uVar24 & 0xff0000000000) >> 0x18
           | (uVar24 & 0xff00000000) >> 8 | (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18
           | (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38;
      uVar8 = local_e48[lVar17];
      puVar19[4] = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
      puVar19 = puVar19 + 4;
    }
    uVar2 = (ushort)(iVar9 * 0x10);
    local_848._0_2_ = (uVar2 + 6) * 0x100 | (ushort)(uVar2 + 6) >> 8;
    local_848._2_2_ = uVar2 << 8 | uVar2 >> 8;
    iVar7 = sg_cmds_open_device(local_e98,0,local_ec4);
    if (iVar7 < 0) {
LAB_001016ce:
      uVar8 = sg_convert_errno(-iVar7);
      uVar12 = safe_strerror(-iVar7);
      pr2serr("open error: %s: %s\n",local_e98,uVar12);
    }
    else {
      uVar8 = sg_simple_inquiry(iVar7,local_e78,1,local_ec4);
      if (bVar5) {
        pr2serr("Doing dry-run so here is \'LBA, number_of_blocks\' list of candidates\n");
        puVar19 = &local_848;
        for (iVar22 = 0; iVar22 < iVar9; iVar22 = iVar22 + 1) {
          uVar20 = puVar19[4];
          uVar24 = *(ulong *)(puVar19 + 2);
          __printf_chk(1,"    0x%lx, 0x%u\n",
                       uVar24 >> 0x38 | (uVar24 & 0xff000000000000) >> 0x28 |
                       (uVar24 & 0xff0000000000) >> 0x18 | (uVar24 & 0xff00000000) >> 8 |
                       (uVar24 & 0xff000000) << 8 | (uVar24 & 0xff0000) << 0x18 |
                       (uVar24 & 0xff00) << 0x28 | uVar24 << 0x38,
                       uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |
                       uVar20 << 0x18);
          puVar19 = puVar19 + 4;
        }
      }
      else {
        if (!bVar4) {
          __printf_chk(1,"%s is:  %.8s  %.16s  %.4s\n",local_e98,local_e70,local_e67,local_e56);
          sleep(3);
          puts("\nAn UNMAP (a.k.a. trim) will commence in 15 seconds");
          puts("    Some data will be LOST");
          puts("        Press control-C to abort");
          sleep(5);
          puts("\nAn UNMAP will commence in 10 seconds");
          puts("    Some data will be LOST");
          puts("        Press control-C to abort");
          sleep(5);
          puts("\nAn UNMAP (a.k.a. trim) will commence in 5 seconds");
          puts("    Some data will be LOST");
          puts("        Press control-C to abort");
          sleep(7);
        }
        uVar8 = sg_ll_unmap_v2(iVar7,local_e9d,local_e9c,iVar22,&local_848,iVar10,1,local_ec4);
        local_e80[0] = uVar8;
        bVar3 = bVar5;
        switch(uVar8) {
        case 2:
          pr2serr("UNMAP failed, device not ready\n");
          bVar3 = true;
          break;
        case 5:
          pr2serr("bad field in UNMAP cdb\n");
          bVar3 = true;
          break;
        case 6:
          pr2serr("UNMAP, unit attention\n");
          bVar3 = true;
          break;
        case 9:
          pr2serr("UNMAP not supported\n");
          bVar3 = true;
          break;
        case 0xb:
          pr2serr("UNMAP, aborted command\n");
          bVar3 = true;
        }
      }
switchD_00101fe9_caseD_3:
      local_e80[0] = sg_cmds_close_device(iVar7);
      if ((int)local_e80[0] < 0) {
        uVar12 = safe_strerror(-local_e80[0]);
        pr2serr("close error: %s\n",uVar12);
        if (uVar8 == 0) {
          uVar8 = sg_convert_errno(-local_e80[0]);
        }
      }
    }
    if (((local_ec4 == 0) && (!bVar3)) &&
       (cVar6 = sg_if_can2stderr("sg_unmap failed: ",uVar8), cVar6 == '\0')) {
      pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
    }
    if ((int)uVar8 < 0) {
      uVar8 = 99;
    }
    goto LAB_00101539;
  }
  pr2serr("version: %s\n","1.17 20180628");
  uVar8 = 0;
  goto LAB_00101539;
LAB_00101512:
  pr2serr("value for \'--grpnum=\' must be 0 to 63\n");
  uVar8 = 1;
  goto LAB_00101539;
LAB_0010172e:
  do {
    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));
    optind = optind + 1;
  } while (optind < param_1);
  FUN_001012d5();
  uVar8 = 1;
LAB_00101539:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar8;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

