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

int main(int argc,char **argv)

{
  bool bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  char **ppcVar5;
  char cVar6;
  int iVar7;
  uint uVar8;
  undefined4 uVar9;
  char *pcVar10;
  char *extraout_ECX;
  int iVar11;
  undefined4 extraout_EDX;
  byte *pbVar12;
  int in_GS_OFFSET;
  byte bVar13;
  longlong lVar14;
  char *pcVar15;
  char *pcVar16;
  uint local_fc;
  uint local_f8;
  ushort local_f4;
  byte local_f0;
  byte local_ef;
  byte local_ee;
  char *local_ec;
  char *local_e8;
  char *local_e4;
  int local_e0;
  char **local_d8;
  int local_d4;
  int local_c8;
  byte local_c4 [2];
  uint local_c2;
  uint local_be;
  byte local_ba [2];
  ushort local_b8;
  undefined1 local_b6;
  undefined1 local_b4 [64];
  char local_74 [80];
  int local_24;
  int *local_18;
  
  ppcVar5 = argv;
  iVar11 = argc;
  puVar4 = PTR_optarg_00013ff8;
  bVar13 = 0;
  local_18 = &argc;
  local_d4 = argc;
  local_d8 = argv;
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  local_e8 = (char *)((uint)local_e8 & 0xffffff00);
  lVar14 = 0;
  local_e0 = 0;
  local_e4 = (char *)0x0;
  bVar1 = false;
  local_f0 = 0;
  local_ef = 0;
  local_ec = (char *)((uint)local_ec & 0xffffff00);
  local_ee = 0;
  bVar2 = false;
  local_f4 = 0;
  while( true ) {
    local_fc = (uint)((ulonglong)lVar14 >> 0x20);
    local_f8 = (uint)lVar14;
    local_c8 = 0;
    iVar7 = getopt_long(iVar11,ppcVar5,"acC:fhoRSvVz:",long_options,&local_c8);
    puVar3 = PTR_optind_00013fe4;
    if (iVar7 == -1) break;
    switch(iVar7) {
    case 0x3f:
    case 0x68:
      pr2serr(
             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
             );
      pr2serr(
             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
             );
      iVar11 = 0;
      goto LAB_00011340;
    default:
      pcVar10 = "unrecognised option code 0x%x ??\n";
      goto LAB_000113b9;
    case 0x43:
      uVar8 = sg_get_num(*(undefined4 *)puVar4);
      if (0xffff < uVar8) {
        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");
        iVar11 = 1;
        goto LAB_00011340;
      }
      local_f4 = (ushort)uVar8;
      break;
    case 0x52:
    case 0x61:
      bVar2 = true;
      break;
    case 0x53:
      local_e0 = 0x10;
      local_f0 = 1;
      break;
    case 0x56:
      local_e8 = (char *)CONCAT31(local_e8._1_3_,1);
      break;
    case 99:
      local_e0 = 1;
      local_ee = 1;
      break;
    case 0x66:
      local_e0 = 2;
      local_ec = (char *)CONCAT31(local_ec._1_3_,1);
      break;
    case 0x6f:
      local_e0 = 3;
      local_ef = 1;
      break;
    case 0x76:
      local_e4 = local_e4 + 1;
      bVar1 = true;
      break;
    case 0x7a:
      lVar14 = sg_get_llnum(*(undefined4 *)puVar4);
      if (lVar14 == -1) {
        pr2serr("bad argument to \'--zone=ID\'\n");
        iVar11 = 1;
LAB_00011340:
        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {
          pcVar10 = (char *)__stack_chk_fail_local();
LAB_0001193b:
          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);
          iVar11 = local_d4;
LAB_0001181c:
          pcVar16 = local_e4;
          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);
          pcVar15 = local_ec;
          pr2serr("%s command: %s\n",local_e8,local_ec);
          pcVar10 = local_ec;
LAB_00011856:
          iVar7 = sg_cmds_close_device(local_d8);
          local_d4 = iVar11;
          if (iVar7 < 0) {
            uVar9 = safe_strerror(-iVar7);
            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);
          }
LAB_0001160a:
          if ((local_e4 == (char *)0x0) &&
             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11
             , cVar6 == '\0')) {
            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
          }
          if (iVar11 < 0) {
            iVar11 = 99;
          }
        }
        return iVar11;
      }
    }
  }
  pcVar10 = (char *)0x0;
  iVar7 = *(int *)PTR_optind_00013fe4;
  if (iVar7 < iVar11) {
    pcVar10 = ppcVar5[iVar7];
    iVar7 = iVar7 + 1;
    *(int *)PTR_optind_00013fe4 = iVar7;
    if (iVar7 < iVar11) {
      uVar9 = 0xffffffff;
      do {
        pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);
        iVar7 = *(int *)puVar3 + 1;
        *(int *)puVar3 = iVar7;
        uVar9 = extraout_EDX;
      } while (iVar7 < iVar11);
      goto LAB_000113c8;
    }
  }
  if (bVar1) {
    if ((char)local_e8 != '\0') {
      iVar7 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");
LAB_0001163b:
      pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7);
      iVar11 = 0;
      goto LAB_00011340;
    }
  }
  else if ((char)local_e8 != '\0') goto LAB_0001163b;
  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {
    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");
    pr2serr(
           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
           );
    pr2serr(
           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
           );
    iVar11 = 0x1f;
    goto LAB_00011340;
  }
  if (pcVar10 != (char *)0x0) {
    local_e8 = sa_name_arr[local_e0];
    local_d8 = (char **)sg_cmds_open_device(pcVar10,0,local_e4,local_e8);
    local_d4 = -1;
    if ((int)local_d8 < 0) {
      if (local_e4 != (char *)0x0) {
        uVar9 = safe_strerror(-(int)local_d8);
        pr2serr("open error: %s: %s\n",pcVar10,uVar9);
      }
      iVar11 = sg_convert_errno(-(int)local_d8);
      goto LAB_0001160a;
    }
    pbVar12 = local_ba;
    for (iVar11 = 6; iVar11 != 0; iVar11 = iVar11 + -1) {
      *pbVar12 = 0;
      pbVar12 = pbVar12 + (uint)bVar13 * -2 + 1;
    }
    local_c4[0] = 0x94;
    local_c4[1] = (undefined1)local_e0;
    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |
               local_fc << 0x18;
    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |
               local_f8 << 0x18;
    local_b8 = local_f4 << 8 | local_f4 >> 8;
    if (bVar2) {
      local_b6 = 1;
    }
    local_ec = local_74;
    uVar9 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);
    if (local_e4 != (char *)0x0) {
      iVar11 = 0;
      pbVar12 = local_c4;
      pr2serr("    %s cdb: ",local_ec,uVar9,uVar9);
      pcVar10 = "%02x ";
      do {
        uVar8 = (uint)pbVar12[iVar11];
        iVar11 = iVar11 + 1;
        pcVar15 = pcVar10;
        pcVar16 = pcVar10;
        pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);
      } while (iVar11 != 0x10);
      pr2serr("\n",uVar8,pcVar15,pcVar16);
    }
    pcVar10 = (char *)construct_scsi_pt_obj();
    if (pcVar10 == (char *)0x0) goto LAB_0001193b;
    set_scsi_pt_cdb(pcVar10,local_c4,0x10,pbVar12);
    set_scsi_pt_sense(pcVar10,local_b4,0x40);
    uVar9 = do_scsi_pt(pcVar10,local_d8,0x3c,local_e4);
    iVar11 = sg_cmds_process_resp
                       (pcVar10,"reset write pointer",uVar9,0,local_b4,1,local_e4,&local_c8);
    if (iVar11 == -1) {
      uVar9 = get_scsi_pt_os_err(pcVar10);
      iVar11 = sg_convert_errno(uVar9);
    }
    else if ((iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2)) {
      destruct_scsi_pt_obj(pcVar10);
      goto LAB_000115ef;
    }
    destruct_scsi_pt_obj(pcVar10);
    local_d4 = iVar11;
    if (iVar11 != 0) {
      if (iVar11 != 9) goto LAB_0001181c;
      pcVar15 = extraout_ECX;
      pcVar16 = extraout_ECX;
      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);
      goto LAB_00011856;
    }
LAB_000115ef:
    iVar11 = sg_cmds_close_device(local_d8);
    if (-1 < iVar11) {
      iVar11 = 0;
      goto LAB_0001160a;
    }
    pcVar10 = (char *)-iVar11;
    uVar9 = safe_strerror(pcVar10);
    pr2serr("close error: %s\n",uVar9);
    iVar11 = sg_convert_errno(pcVar10);
    goto LAB_0001160a;
  }
  pcVar10 = "missing device name!\n";
LAB_000113b9:
  pr2serr(pcVar10);
LAB_000113c8:
  pr2serr(
         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
         );
  pr2serr(
         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
         );
  iVar11 = 1;
  goto LAB_00011340;
}



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

int FUN_00011190(int param_1,int param_2)

{
  bool bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  char cVar5;
  int iVar6;
  uint uVar7;
  char *pcVar8;
  int iVar9;
  undefined4 uVar10;
  undefined1 *puVar11;
  undefined1 *extraout_ECX;
  int iVar12;
  undefined4 extraout_EDX;
  byte *pbVar13;
  int in_GS_OFFSET;
  byte bVar14;
  longlong lVar15;
  char *pcVar16;
  undefined1 *puVar17;
  char *pcVar18;
  undefined1 *puVar19;
  uint local_fc;
  uint local_f8;
  ushort local_f4;
  byte local_f0;
  byte local_ef;
  byte local_ee;
  undefined1 *local_ec;
  undefined *local_e8;
  undefined1 *local_e4;
  int local_e0;
  int local_d8;
  int local_d4;
  int local_c8;
  byte local_c4 [2];
  uint local_c2;
  uint local_be;
  byte local_ba [2];
  ushort local_b8;
  undefined1 local_b6;
  undefined1 local_b4 [64];
  undefined1 local_74 [80];
  int local_24;
  undefined4 *local_18;
  
  iVar9 = param_2;
  iVar12 = param_1;
  puVar4 = PTR_optarg_00013ff8;
  bVar14 = 0;
  local_18 = &param_1;
  local_d4 = param_1;
  local_d8 = param_2;
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);
  lVar15 = 0;
  local_e0 = 0;
  local_e4 = (undefined1 *)0x0;
  bVar1 = false;
  local_f0 = 0;
  local_ef = 0;
  local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);
  local_ee = 0;
  bVar2 = false;
  local_f4 = 0;
  while( true ) {
    local_fc = (uint)((ulonglong)lVar15 >> 0x20);
    local_f8 = (uint)lVar15;
    local_c8 = 0;
    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);
    puVar3 = PTR_optind_00013fe4;
    if (iVar6 == -1) break;
    switch(iVar6) {
    case 0x3f:
    case 0x68:
      pr2serr(
             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
             );
      pr2serr(
             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
             );
      iVar12 = 0;
      goto LAB_00011340;
    default:
      pcVar8 = "unrecognised option code 0x%x ??\n";
      goto LAB_000113b9;
    case 0x43:
      uVar7 = func_0x00011150(*(undefined4 *)puVar4);
      if (0xffff < uVar7) {
        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");
        iVar12 = 1;
        goto LAB_00011340;
      }
      local_f4 = (ushort)uVar7;
      break;
    case 0x52:
    case 0x61:
      bVar2 = true;
      break;
    case 0x53:
      local_e0 = 0x10;
      local_f0 = 1;
      break;
    case 0x56:
      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);
      break;
    case 99:
      local_e0 = 1;
      local_ee = 1;
      break;
    case 0x66:
      local_e0 = 2;
      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);
      break;
    case 0x6f:
      local_e0 = 3;
      local_ef = 1;
      break;
    case 0x76:
      local_e4 = local_e4 + 1;
      bVar1 = true;
      break;
    case 0x7a:
      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);
      if (lVar15 == -1) {
        pr2serr("bad argument to \'--zone=ID\'\n");
        iVar12 = 1;
LAB_00011340:
        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {
          puVar11 = (undefined1 *)FUN_00011b50();
LAB_0001193b:
          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);
          iVar12 = local_d4;
LAB_0001181c:
          puVar19 = local_e4;
          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);
          puVar17 = local_ec;
          pr2serr("%s command: %s\n",local_e8,local_ec);
          puVar11 = local_ec;
LAB_00011856:
          iVar9 = sg_cmds_close_device(local_d8);
          local_d4 = iVar12;
          if (iVar9 < 0) {
            uVar10 = safe_strerror(-iVar9);
            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);
          }
LAB_0001160a:
          if ((local_e4 == (undefined1 *)0x0) &&
             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12
             , cVar5 == '\0')) {
            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
          }
          if (iVar12 < 0) {
            iVar12 = 99;
          }
        }
        return iVar12;
      }
    }
  }
  puVar11 = (undefined1 *)0x0;
  iVar6 = *(int *)PTR_optind_00013fe4;
  if (iVar6 < iVar12) {
    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);
    iVar6 = iVar6 + 1;
    *(int *)PTR_optind_00013fe4 = iVar6;
    if (iVar6 < iVar12) {
      uVar10 = 0xffffffff;
      do {
        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);
        iVar6 = *(int *)puVar3 + 1;
        *(int *)puVar3 = iVar6;
        uVar10 = extraout_EDX;
      } while (iVar6 < iVar12);
      goto LAB_000113c8;
    }
  }
  if (bVar1) {
    if ((char)local_e8 != '\0') {
      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");
LAB_0001163b:
      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);
      iVar12 = 0;
      goto LAB_00011340;
    }
  }
  else if ((char)local_e8 != '\0') goto LAB_0001163b;
  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {
    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");
    pr2serr(
           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
           );
    pr2serr(
           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
           );
    iVar12 = 0x1f;
    goto LAB_00011340;
  }
  if (puVar11 != (undefined1 *)0x0) {
    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];
    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);
    local_d4 = -1;
    if (local_d8 < 0) {
      if (local_e4 != (undefined1 *)0x0) {
        uVar10 = safe_strerror(-local_d8);
        pr2serr("open error: %s: %s\n",puVar11,uVar10);
      }
      iVar12 = sg_convert_errno(-local_d8);
      goto LAB_0001160a;
    }
    pbVar13 = local_ba;
    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {
      *pbVar13 = 0;
      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;
    }
    local_c4[0] = 0x94;
    local_c4[1] = (undefined1)local_e0;
    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |
               local_fc << 0x18;
    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |
               local_f8 << 0x18;
    local_b8 = local_f4 << 8 | local_f4 >> 8;
    if (bVar2) {
      local_b6 = 1;
    }
    local_ec = local_74;
    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);
    if (local_e4 != (undefined1 *)0x0) {
      iVar12 = 0;
      pbVar13 = local_c4;
      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);
      pcVar8 = "%02x ";
      do {
        uVar7 = (uint)pbVar13[iVar12];
        iVar12 = iVar12 + 1;
        pcVar16 = pcVar8;
        pcVar18 = pcVar8;
        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);
      } while (iVar12 != 0x10);
      pr2serr("\n",uVar7,pcVar16,pcVar18);
    }
    puVar11 = (undefined1 *)construct_scsi_pt_obj();
    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;
    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);
    set_scsi_pt_sense(puVar11,local_b4,0x40);
    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);
    iVar12 = sg_cmds_process_resp
                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);
    if (iVar12 == -1) {
      uVar10 = get_scsi_pt_os_err(puVar11);
      iVar12 = sg_convert_errno(uVar10);
    }
    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {
      destruct_scsi_pt_obj(puVar11);
      goto LAB_000115ef;
    }
    destruct_scsi_pt_obj(puVar11);
    local_d4 = iVar12;
    if (iVar12 != 0) {
      if (iVar12 != 9) goto LAB_0001181c;
      puVar17 = extraout_ECX;
      puVar19 = extraout_ECX;
      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);
      goto LAB_00011856;
    }
LAB_000115ef:
    iVar12 = sg_cmds_close_device(local_d8);
    if (-1 < iVar12) {
      iVar12 = 0;
      goto LAB_0001160a;
    }
    puVar11 = (undefined1 *)-iVar12;
    uVar10 = safe_strerror(puVar11);
    pr2serr("close error: %s\n",uVar10);
    iVar12 = sg_convert_errno(puVar11);
    goto LAB_0001160a;
  }
  pcVar8 = "missing device name!\n";
LAB_000113b9:
  pr2serr(pcVar8);
LAB_000113c8:
  pr2serr(
         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
         );
  pr2serr(
         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
         );
  iVar12 = 1;
  goto LAB_00011340;
}


LEA ECX,[ESP + 0x4]
AND ESP,0xfffffff0
PUSH dword ptr [ECX + -0x4]
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
XOR ESI,ESI
PUSH EBX
CALL 0x000119a0
ADD EBX,0x2ddd
PUSH ECX
SUB ESP,0xf8
MOV EAX,dword ptr [ECX]
MOV dword ptr [EBP + 0xffffff34],EAX
MOV EAX,dword ptr [ECX + 0x4]
LEA EDI,[EBX + 0x9c]
MOV dword ptr [EBP + 0xffffff30],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [EBP + -0x1c],EAX
XOR EAX,EAX
LEA EAX,[EBP + 0xffffff40]
MOV byte ptr [EBP + 0xffffff20],0x0
MOV dword ptr [EBP + 0xffffff2c],EAX
MOV EAX,dword ptr [EBX + 0x74]
MOV dword ptr [EBP + 0xffffff10],0x0
MOV dword ptr [EBP + 0xffffff0c],0x0
MOV dword ptr [EBP + 0xffffff28],0x0
MOV dword ptr [EBP + 0xffffff24],0x0
MOV byte ptr [EBP + 0xffffff1b],0x0
MOV byte ptr [EBP + 0xffffff18],0x0
MOV byte ptr [EBP + 0xffffff19],0x0
MOV byte ptr [EBP + 0xffffff1c],0x0
MOV byte ptr [EBP + 0xffffff1a],0x0
MOV byte ptr [EBP + 0xffffff17],0x0
MOV dword ptr [EBP + 0xffffff08],EAX
MOV dword ptr [EBP + 0xffffff04],EAX
MOV word ptr [EBP + 0xffffff14],SI
LEA ESI,[EBX + 0xffffe084]
MOV dword ptr [EBP + 0xffffff40],0x0
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff2c]
PUSH EDI
PUSH ESI
PUSH dword ptr [EBP + 0xffffff30]
PUSH dword ptr [EBP + 0xffffff34]
CALL 0x00011090
ADD ESP,0x20
CMP EAX,-0x1
JZ 0x00011409
LEA EDX,[EAX + -0x3f]
CMP EDX,0x3b
JA 0x000113b0
MOV ECX,dword ptr [EBX + EDX*0x4 + 0xffffe704]
ADD ECX,EBX
JMP ECX
MOV EDI,dword ptr [EBP + -0x1c]
XOR EDI,dword ptr GS:[0x14]
MOV EAX,EDX
JNZ 0x00011936
LEA ESP,[EBP + -0x10]
POP ECX
POP EBX
POP ESI
POP EDI
POP EBP
LEA ESP,[ECX + -0x4]
RET
PUSH ECX
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xffffe5f0]
PUSH EAX
CALL 0x00011080
LEA EAX,[EBX + 0xffffe248]
MOV dword ptr [ESP],EAX
CALL 0x00011080
LEA EAX,[EBX + 0xffffe2f4]
MOV dword ptr [ESP],EAX
CALL 0x00011080
ADD ESP,0x10
MOV EDX,0x1
JMP 0x00011340
MOV EDI,dword ptr [EBX + 0x60]
MOV EDX,EAX
XOR ESI,ESI
MOV EAX,dword ptr [EDI]
CMP EAX,dword ptr [EBP + 0xffffff34]
JGE 0x00011437
MOV ESI,dword ptr [EBP + 0xffffff30]
MOV ESI,dword ptr [ESI + EAX*0x4]
ADD EAX,0x1
MOV dword ptr [EDI],EAX
CMP EAX,dword ptr [EBP + 0xffffff34]
JL 0x0001165a
CMP byte ptr [EBP + 0xffffff1b],0x0
JZ 0x000116a0
CMP byte ptr [EBP + 0xffffff20],0x0
JNZ 0x00011629
MOVZX EAX,byte ptr [EBP + 0xffffff1a]
MOVZX ECX,byte ptr [EBP + 0xffffff1c]
ADD ECX,EAX
MOVZX EAX,byte ptr [EBP + 0xffffff19]
ADD EAX,ECX
MOVZX ECX,byte ptr [EBP + 0xffffff18]
ADD EAX,ECX
SUB EAX,0x1
JNZ 0x000116d3
TEST ESI,ESI
JZ 0x00011692
MOV EAX,dword ptr [EBP + 0xffffff28]
MOV dword ptr [EBP + 0xffffff34],EDX
MOV EAX,dword ptr [EBX + EAX*0x4 + 0xfffffedc]
MOV dword ptr [EBP + 0xffffff20],EAX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff24]
PUSH 0x0
PUSH ESI
CALL 0x00011160
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xffffff34]
TEST EAX,EAX
MOV dword ptr [EBP + 0xffffff30],EAX
JS 0x000116af
XOR EAX,EAX
LEA EDI,[EBP + 0xffffff4e]
MOV ECX,0x6
STOSB.REP ES:EDI
MOVZX EAX,byte ptr [EBP + 0xffffff28]
MOV ECX,dword ptr [EBP + 0xffffff0c]
MOV byte ptr [EBP + 0xffffff44],0x94
MOV byte ptr [EBP + 0xffffff45],AL
MOV EAX,dword ptr [EBP + 0xffffff10]
BSWAP ECX
MOV dword ptr [EBP + 0xffffff46],ECX
BSWAP EAX
MOV dword ptr [EBP + 0xffffff4a],EAX
MOVZX EAX,word ptr [EBP + 0xffffff14]
ROL AX,0x8
CMP byte ptr [EBP + 0xffffff17],0x0
MOV word ptr [EBP + 0xffffff50],AX
JZ 0x00011524
MOV byte ptr [EBP + 0xffffff52],0x1
SUB ESP,0xc
LEA EAX,[EBP + -0x6c]
MOV dword ptr [EBP + 0xffffff34],EDX
PUSH EAX
PUSH 0x40
PUSH -0x1
PUSH dword ptr [EBP + 0xffffff28]
PUSH 0x94
MOV dword ptr [EBP + 0xffffff1c],EAX
CALL 0x00011130
ADD ESP,0x20
CMP dword ptr [EBP + 0xffffff24],0x0
MOV EDX,dword ptr [EBP + 0xffffff34]
JNZ 0x0001176a
MOV dword ptr [EBP + 0xffffff34],EDX
CALL 0x00011050
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0001193b
LEA EAX,[EBP + 0xffffff44]
PUSH EDI
LEA EDI,[EBP + 0xffffff54]
PUSH 0x10
PUSH EAX
PUSH ESI
CALL 0x00011170
ADD ESP,0xc
PUSH 0x40
PUSH EDI
PUSH ESI
CALL 0x00011100
PUSH dword ptr [EBP + 0xffffff24]
PUSH 0x3c
PUSH dword ptr [EBP + 0xffffff30]
PUSH ESI
CALL 0x000110c0
ADD ESP,0x20
PUSH dword ptr [EBP + 0xffffff2c]
PUSH dword ptr [EBP + 0xffffff24]
PUSH 0x1
PUSH EDI
PUSH 0x0
PUSH EAX
LEA EAX,[EBX + 0xffffe11a]
PUSH EAX
PUSH ESI
CALL 0x00011120
ADD ESP,0x20
CMP EAX,-0x1
JZ 0x000118cb
CMP EAX,-0x2
JZ 0x000117e1
SUB ESP,0xc
PUSH ESI
CALL 0x000110d0
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff30]
CALL 0x00011060
ADD ESP,0x10
TEST EAX,EAX
JS 0x00011908
XOR EDX,EDX
CMP dword ptr [EBP + 0xffffff24],0x0
JZ 0x0001170b
TEST EDX,EDX
JNS 0x00011340
MOV EDX,0x63
JMP 0x00011340
SUB ESP,0xc
LEA EAX,[EBX + 0xffffe634]
PUSH EAX
CALL 0x00011080
ADD ESP,0x10
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xffffe0af]
PUSH EAX
LEA EAX,[EBX + 0xffffe0bd]
PUSH EAX
CALL 0x00011080
ADD ESP,0x10
XOR EDX,EDX
JMP 0x00011340
LEA ESI,[EBX + 0xffffe614]
MOV ECX,dword ptr [EBP + 0xffffff30]
PUSH EDX
PUSH EDX
PUSH dword ptr [ECX + EAX*0x4]
PUSH ESI
CALL 0x00011080
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
ADD EAX,0x1
MOV dword ptr [EDI],EAX
CMP EAX,dword ptr [EBP + 0xffffff34]
JL 0x00011660
SUB ESP,0xc
LEA EAX,[EBX + 0xffffe248]
PUSH EAX
JMP 0x000113c8
SUB ESP,0xc
LEA EAX,[EBX + 0xffffe0ca]
JMP 0x000113b9
CMP byte ptr [EBP + 0xffffff20],0x0
JZ 0x00011451
JMP 0x0001163b
NEG EAX
CMP dword ptr [EBP + 0xffffff24],0x0
MOV EDI,EAX
JNZ 0x000118a9
SUB ESP,0xc
PUSH EDI
CALL 0x000110f0
ADD ESP,0x10
MOV EDX,EAX
JMP 0x0001160a
SUB ESP,0xc
LEA EAX,[EBX + 0xffffe668]
PUSH EAX
CALL 0x00011080
LEA EAX,[EBX + 0xffffe248]
MOV dword ptr [ESP],EAX
CALL 0x00011080
LEA EAX,[EBX + 0xffffe2f4]
MOV dword ptr [ESP],EAX
CALL 0x00011080
ADD ESP,0x10
MOV EDX,0x1f
JMP 0x00011340
LEA EAX,[EBX + 0xffffe169]
PUSH ESI
PUSH ESI
PUSH EDX
PUSH EAX
MOV dword ptr [EBP + 0xffffff34],EDX
CALL 0x000110b0
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xffffff34]
TEST AL,AL
JNZ 0x00011617
SUB ESP,0xc
LEA EAX,[EBX + 0xffffe6bc]
PUSH EAX
CALL 0x00011080
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xffffff34]
JMP 0x00011617
PUSH EAX
XOR ESI,ESI
LEA EDI,[EBP + 0xffffff44]
PUSH EAX
LEA EAX,[EBX + 0xffffe0f4]
PUSH dword ptr [EBP + 0xffffff1c]
PUSH EAX
MOV dword ptr [EBP + 0xffffff28],EDX
CALL 0x00011080
LEA EAX,[EBX + 0xffffe101]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff34],EAX
PUSH EAX
PUSH EAX
MOVZX EAX,byte ptr [EDI + ESI*0x1]
ADD ESI,0x1
PUSH EAX
PUSH dword ptr [EBP + 0xffffff34]
CALL 0x00011080
ADD ESP,0x10
CMP ESI,0x10
JNZ 0x0001179b
SUB ESP,0xc
LEA EAX,[EBX + 0xffffe0de]
MOV EDX,dword ptr [EBP + 0xffffff28]
PUSH EAX
MOV dword ptr [EBP + 0xffffff34],EDX
CALL 0x00011080
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xffffff34]
JMP 0x00011561
MOV EDX,dword ptr [EBP + 0xffffff40]
LEA EAX,[EDX + -0x14]
CMP EAX,0x1
JBE 0x000115e3
SUB ESP,0xc
MOV dword ptr [EBP + 0xffffff34],EDX
PUSH ESI
CALL 0x000110d0
MOV EDX,dword ptr [EBP + 0xffffff34]
ADD ESP,0x10
TEST EDX,EDX
JZ 0x000115ef
CMP EDX,0x9
JZ 0x000118e6
MOV ESI,dword ptr [EBP + 0xffffff1c]
PUSH dword ptr [EBP + 0xffffff24]
MOV dword ptr [EBP + 0xffffff34],EDX
PUSH ESI
PUSH 0x50
PUSH EDX
CALL 0x00011140
ADD ESP,0xc
LEA EAX,[EBX + 0xffffe148]
PUSH ESI
PUSH dword ptr [EBP + 0xffffff20]
PUSH EAX
CALL 0x00011080
MOV EDX,dword ptr [EBP + 0xffffff34]
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff30]
MOV dword ptr [EBP + 0xffffff34],EDX
CALL 0x00011060
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xffffff34]
TEST EAX,EAX
JNS 0x0001160a
SUB ESP,0xc
NEG EAX
MOV dword ptr [EBP + 0xffffff34],EDX
PUSH EAX
CALL 0x00011110
POP EDI
POP EDX
PUSH EAX
LEA EAX,[EBX + 0xffffe158]
PUSH EAX
CALL 0x00011080
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xffffff34]
JMP 0x0001160a
SUB ESP,0xc
PUSH EAX
CALL 0x00011110
ADD ESP,0xc
PUSH EAX
LEA EAX,[EBX + 0xffffe0e0]
PUSH ESI
PUSH EAX
CALL 0x00011080
ADD ESP,0x10
JMP 0x000116c0
SUB ESP,0xc
PUSH ESI
CALL 0x00011040
MOV dword ptr [ESP],EAX
CALL 0x000110f0
ADD ESP,0x10
MOV EDX,EAX
JMP 0x000117f3
LEA EAX,[EBX + 0xffffe12e]
PUSH ECX
PUSH ECX
PUSH dword ptr [EBP + 0xffffff20]
PUSH EAX
CALL 0x00011080
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xffffff34]
JMP 0x00011856
SUB ESP,0xc
NEG EAX
PUSH EAX
MOV ESI,EAX
CALL 0x00011110
POP EDX
POP ECX
PUSH EAX
LEA EAX,[EBX + 0xffffe158]
PUSH EAX
CALL 0x00011080
MOV dword ptr [ESP],ESI
CALL 0x000110f0
ADD ESP,0x10
MOV EDX,EAX
JMP 0x0001160a
CALL 0x00011b50
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xffffe107]
PUSH dword ptr [EBP + 0xffffff1c]
PUSH EAX
CALL 0x00011080
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xffffff34]
JMP 0x0001181c
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_00011190(int param_1,int param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char cVar5;\n  int iVar6;\n  uint uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined1 *extraout_ECX;\n  int iVar12;\n  undefined4 extraout_EDX;\n  byte *pbVar13;\n  int in_GS_OFFSET;\n  byte bVar14;\n  longlong lVar15;\n  char *pcVar16;\n  undefined1 *puVar17;\n  char *pcVar18;\n  undefined1 *puVar19;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  undefined1 *local_ec;\n  undefined *local_e8;\n  undefined1 *local_e4;\n  int local_e0;\n  int local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  undefined1 local_74 [80];\n  int local_24;\n  undefined4 *local_18;\n  \n  iVar9 = param_2;\n  iVar12 = param_1;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar14 = 0;\n  local_18 = &param_1;\n  local_d4 = param_1;\n  local_d8 = param_2;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);\n  lVar15 = 0;\n  local_e0 = 0;\n  local_e4 = (undefined1 *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }\n  puVar11 = (undefined1 *)0x0;\n  iVar6 = *(int *)PTR_optind_00013fe4;\n  if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }\n  pcVar8 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar8);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar12 = 1;\n  goto LAB_00011340;\n}\n\n" comment (function_definition "int FUN_00011190(int param_1,int param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char cVar5;\n  int iVar6;\n  uint uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined1 *extraout_ECX;\n  int iVar12;\n  undefined4 extraout_EDX;\n  byte *pbVar13;\n  int in_GS_OFFSET;\n  byte bVar14;\n  longlong lVar15;\n  char *pcVar16;\n  undefined1 *puVar17;\n  char *pcVar18;\n  undefined1 *puVar19;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  undefined1 *local_ec;\n  undefined *local_e8;\n  undefined1 *local_e4;\n  int local_e0;\n  int local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  undefined1 local_74 [80];\n  int local_24;\n  undefined4 *local_18;\n  \n  iVar9 = param_2;\n  iVar12 = param_1;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar14 = 0;\n  local_18 = &param_1;\n  local_d4 = param_1;\n  local_d8 = param_2;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);\n  lVar15 = 0;\n  local_e0 = 0;\n  local_e4 = (undefined1 *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }\n  puVar11 = (undefined1 *)0x0;\n  iVar6 = *(int *)PTR_optind_00013fe4;\n  if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }\n  pcVar8 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar8);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar12 = 1;\n  goto LAB_00011340;\n}" primitive_type (function_declarator "FUN_00011190(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char cVar5;\n  int iVar6;\n  uint uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined1 *extraout_ECX;\n  int iVar12;\n  undefined4 extraout_EDX;\n  byte *pbVar13;\n  int in_GS_OFFSET;\n  byte bVar14;\n  longlong lVar15;\n  char *pcVar16;\n  undefined1 *puVar17;\n  char *pcVar18;\n  undefined1 *puVar19;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  undefined1 *local_ec;\n  undefined *local_e8;\n  undefined1 *local_e4;\n  int local_e0;\n  int local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  undefined1 local_74 [80];\n  int local_24;\n  undefined4 *local_18;\n  \n  iVar9 = param_2;\n  iVar12 = param_1;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar14 = 0;\n  local_18 = &param_1;\n  local_d4 = param_1;\n  local_d8 = param_2;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);\n  lVar15 = 0;\n  local_e0 = 0;\n  local_e4 = (undefined1 *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }\n  puVar11 = (undefined1 *)0x0;\n  iVar6 = *(int *)PTR_optind_00013fe4;\n  if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }\n  pcVar8 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar8);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar12 = 1;\n  goto LAB_00011340;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "longlong lVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint local_fc;" type_identifier identifier ;) (declaration "uint local_f8;" type_identifier identifier ;) (declaration "ushort local_f4;" type_identifier identifier ;) (declaration "byte local_f0;" type_identifier identifier ;) (declaration "byte local_ef;" type_identifier identifier ;) (declaration "byte local_ee;" type_identifier identifier ;) (declaration "undefined1 *local_ec;" type_identifier (pointer_declarator "*local_ec" * identifier) ;) (declaration "undefined *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "undefined1 *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte local_c4 [2];" type_identifier (array_declarator "local_c4 [2]" identifier [ number_literal ]) ;) (declaration "uint local_c2;" type_identifier identifier ;) (declaration "uint local_be;" type_identifier identifier ;) (declaration "byte local_ba [2];" type_identifier (array_declarator "local_ba [2]" identifier [ number_literal ]) ;) (declaration "ushort local_b8;" type_identifier identifier ;) (declaration "undefined1 local_b6;" type_identifier identifier ;) (declaration "undefined1 local_b4 [64];" type_identifier (array_declarator "local_b4 [64]" identifier [ number_literal ]) ;) (declaration "undefined1 local_74 [80];" type_identifier (array_declarator "local_74 [80]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 *local_18;" type_identifier (pointer_declarator "*local_18" * identifier) ;) (expression_statement "iVar9 = param_2;" (assignment_expression "iVar9 = param_2" identifier = identifier) ;) (expression_statement "iVar12 = param_1;" (assignment_expression "iVar12 = param_1" identifier = identifier) ;) (expression_statement "puVar4 = PTR_optarg_00013ff8;" (assignment_expression "puVar4 = PTR_optarg_00013ff8" identifier = identifier) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "local_18 = &param_1;" (assignment_expression "local_18 = &param_1" identifier = (pointer_expression "&param_1" & identifier)) ;) (expression_statement "local_d4 = param_1;" (assignment_expression "local_d4 = param_1" identifier = identifier) ;) (expression_statement "local_d8 = param_2;" (assignment_expression "local_d8 = param_2" identifier = identifier) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);" (assignment_expression "local_e8 = (undefined *)((uint)local_e8 & 0xffffff00)" identifier = (cast_expression "(undefined *)((uint)local_e8 & 0xffffff00)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_e8 & 0xffffff00)" ( (binary_expression "(uint)local_e8 & 0xffffff00" (cast_expression "(uint)local_e8" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_e4 = (undefined1 *)0x0;" (assignment_expression "local_e4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "local_ef = 0;" (assignment_expression "local_ef = 0" identifier = number_literal) ;) (expression_statement "local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);" (assignment_expression "local_ec = (undefined1 *)((uint)local_ec & 0xffffff00)" identifier = (cast_expression "(undefined1 *)((uint)local_ec & 0xffffff00)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_ec & 0xffffff00)" ( (binary_expression "(uint)local_ec & 0xffffff00" (cast_expression "(uint)local_ec" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_ee = 0;" (assignment_expression "local_ee = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_f4 = 0;" (assignment_expression "local_f4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }" { (expression_statement "local_fc = (uint)((ulonglong)lVar15 >> 0x20);" (assignment_expression "local_fc = (uint)((ulonglong)lVar15 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar15 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar15 >> 0x20)" ( (binary_expression "(ulonglong)lVar15 >> 0x20" (cast_expression "(ulonglong)lVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_f8 = (uint)lVar15;" (assignment_expression "local_f8 = (uint)lVar15" identifier = (cast_expression "(uint)lVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);" (assignment_expression "iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8)" identifier = (call_expression "getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8)" identifier (argument_list "(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8)" ( identifier , identifier , (string_literal ""acC:fhoRSvVz:"" " string_content ") , (pointer_expression "&PTR_s_all_00014020" & identifier) , (pointer_expression "&local_c8" & identifier) )))) ;) (expression_statement "puVar3 = PTR_optind_00013fe4;" (assignment_expression "puVar3 = PTR_optind_00013fe4" identifier = identifier) ;) (if_statement "if (iVar6 == -1) break;" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (switch_statement "switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }" switch (parenthesized_expression "(iVar6)" ( identifier )) (compound_statement "{\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }" { (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;" case number_literal : (expression_statement "pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );" (call_expression "pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             )" identifier (argument_list "(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             )" ( (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );" (call_expression "pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             )" identifier (argument_list "(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             )" ( (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;)) (case_statement "default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;" default : (expression_statement "pcVar8 = "unrecognised option code 0x%x ??\n";" (assignment_expression "pcVar8 = "unrecognised option code 0x%x ??\n"" identifier = (string_literal ""unrecognised option code 0x%x ??\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000113b9;" goto statement_identifier ;)) (case_statement "case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;" case number_literal : (expression_statement "uVar7 = func_0x00011150(*(undefined4 *)puVar4);" (assignment_expression "uVar7 = func_0x00011150(*(undefined4 *)puVar4)" identifier = (call_expression "func_0x00011150(*(undefined4 *)puVar4)" identifier (argument_list "(*(undefined4 *)puVar4)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }" if (parenthesized_expression "(0xffff < uVar7)" ( (binary_expression "0xffff < uVar7" number_literal < identifier) )) (compound_statement "{\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }" { (expression_statement "pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");" (call_expression "pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n")" identifier (argument_list "("--count= expects an argument between 0 and 0xffff inclusive\n")" ( (string_literal ""--count= expects an argument between 0 and 0xffff inclusive\n"" " string_content escape_sequence ") ))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })) (expression_statement "local_f4 = (ushort)uVar7;" (assignment_expression "local_f4 = (ushort)uVar7" identifier = (cast_expression "(ushort)uVar7" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x52:" case number_literal :) (case_statement "case 0x61:\n      bVar2 = true;\n      break;" case number_literal : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;" case number_literal : (expression_statement "local_e0 = 0x10;" (assignment_expression "local_e0 = 0x10" identifier = number_literal) ;) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;" case number_literal : (expression_statement "local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);" (assignment_expression "local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1)" identifier = (cast_expression "(undefined *)CONCAT31(local_e8._1_3_,1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_e8._1_3_,1)" identifier (argument_list "(local_e8._1_3_,1)" ( (field_expression "local_e8._1_3_" identifier . field_identifier) , number_literal ))))) ;) (break_statement "break;" break ;)) (case_statement "case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;" case number_literal : (expression_statement "local_e0 = 1;" (assignment_expression "local_e0 = 1" identifier = number_literal) ;) (expression_statement "local_ee = 1;" (assignment_expression "local_ee = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;" case number_literal : (expression_statement "local_e0 = 2;" (assignment_expression "local_e0 = 2" identifier = number_literal) ;) (expression_statement "local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);" (assignment_expression "local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1)" identifier = (cast_expression "(undefined1 *)CONCAT31(local_ec._1_3_,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_ec._1_3_,1)" identifier (argument_list "(local_ec._1_3_,1)" ( (field_expression "local_ec._1_3_" identifier . field_identifier) , number_literal ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;" case number_literal : (expression_statement "local_e0 = 3;" (assignment_expression "local_e0 = 3" identifier = number_literal) ;) (expression_statement "local_ef = 1;" (assignment_expression "local_ef = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;" case number_literal : (expression_statement "local_e4 = local_e4 + 1;" (assignment_expression "local_e4 = local_e4 + 1" identifier = (binary_expression "local_e4 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }" case number_literal : (expression_statement "lVar15 = func_0x000110e0(*(undefined4 *)puVar4);" (assignment_expression "lVar15 = func_0x000110e0(*(undefined4 *)puVar4)" identifier = (call_expression "func_0x000110e0(*(undefined4 *)puVar4)" identifier (argument_list "(*(undefined4 *)puVar4)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }" if (parenthesized_expression "(lVar15 == -1)" ( (binary_expression "lVar15 == -1" identifier == number_literal) )) (compound_statement "{\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }" { (expression_statement "pr2serr("bad argument to \'--zone=ID\'\n");" (call_expression "pr2serr("bad argument to \'--zone=ID\'\n")" identifier (argument_list "("bad argument to \'--zone=ID\'\n")" ( (string_literal ""bad argument to \'--zone=ID\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }" statement_identifier : (while_statement "while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }" while (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }" { (expression_statement "puVar11 = (undefined1 *)FUN_00011b50();" (assignment_expression "puVar11 = (undefined1 *)FUN_00011b50()" identifier = (cast_expression "(undefined1 *)FUN_00011b50()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00011b50()" identifier (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);" statement_identifier : (expression_statement "pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);" (call_expression "pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11)" identifier (argument_list "("%s: out of memory\n",local_ec,puVar11,puVar11)" ( (string_literal ""%s: out of memory\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;)) (expression_statement "iVar12 = local_d4;" (assignment_expression "iVar12 = local_d4" identifier = identifier) ;) (labeled_statement "LAB_0001181c:\n          puVar19 = local_e4;" statement_identifier : (expression_statement "puVar19 = local_e4;" (assignment_expression "puVar19 = local_e4" identifier = identifier) ;)) (expression_statement "sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);" (call_expression "sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4)" identifier (argument_list "(iVar12,0x50,local_ec,local_e4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "puVar17 = local_ec;" (assignment_expression "puVar17 = local_ec" identifier = identifier) ;) (expression_statement "pr2serr("%s command: %s\n",local_e8,local_ec);" (call_expression "pr2serr("%s command: %s\n",local_e8,local_ec)" identifier (argument_list "("%s command: %s\n",local_e8,local_ec)" ( (string_literal ""%s command: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "puVar11 = local_ec;" (assignment_expression "puVar11 = local_ec" identifier = identifier) ;) (labeled_statement "LAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);" statement_identifier : (expression_statement "iVar9 = sg_cmds_close_device(local_d8);" (assignment_expression "iVar9 = sg_cmds_close_device(local_d8)" identifier = (call_expression "sg_cmds_close_device(local_d8)" identifier (argument_list "(local_d8)" ( identifier )))) ;)) (expression_statement "local_d4 = iVar12;" (assignment_expression "local_d4 = iVar12" identifier = identifier) ;) (if_statement "if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }" { (expression_statement "uVar10 = safe_strerror(-iVar9);" (assignment_expression "uVar10 = safe_strerror(-iVar9)" identifier = (call_expression "safe_strerror(-iVar9)" identifier (argument_list "(-iVar9)" ( (unary_expression "-iVar9" - identifier) )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar10,puVar17,puVar19);" (call_expression "pr2serr("close error: %s\n",uVar10,puVar17,puVar19)" identifier (argument_list "("close error: %s\n",uVar10,puVar17,puVar19)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }" statement_identifier : (if_statement "if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }" if (parenthesized_expression "((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0'))" ( (binary_expression "(local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')" (parenthesized_expression "(local_e4 == (undefined1 *)0x0)" ( (binary_expression "local_e4 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')" ( (comma_expression "cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0'" (assignment_expression "cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11)" identifier = (call_expression "sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11)" identifier (argument_list "("sg_zone failed: ",iVar12,puVar11,puVar11)" ( (string_literal ""sg_zone failed: "" " string_content ") , identifier , identifier , identifier )))) , (comma_expression "local_d4 = iVar12\n             , cVar5 == '\0'" (assignment_expression "local_d4 = iVar12" identifier = identifier) , (binary_expression "cVar5 == '\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 (iVar12 < 0) {\n            iVar12 = 99;\n          }" if (parenthesized_expression "(iVar12 < 0)" ( (binary_expression "iVar12 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar12 = 99;\n          }" { (expression_statement "iVar12 = 99;" (assignment_expression "iVar12 = 99" identifier = number_literal) ;) })) }))) (return_statement "return iVar12;" return identifier ;) }))) })) })) (expression_statement "puVar11 = (undefined1 *)0x0;" (assignment_expression "puVar11 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = *(int *)PTR_optind_00013fe4;" (assignment_expression "iVar6 = *(int *)PTR_optind_00013fe4" identifier = (pointer_expression "*(int *)PTR_optind_00013fe4" * (cast_expression "(int *)PTR_optind_00013fe4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }" if (parenthesized_expression "(iVar6 < iVar12)" ( (binary_expression "iVar6 < iVar12" identifier < identifier) )) (compound_statement "{\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }" { (expression_statement "puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);" (assignment_expression "puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4)" identifier = (pointer_expression "*(undefined1 **)(iVar9 + iVar6 * 4)" * (cast_expression "(undefined1 **)(iVar9 + iVar6 * 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + iVar6 * 4)" ( (binary_expression "iVar9 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)PTR_optind_00013fe4 = iVar6;" (assignment_expression "*(int *)PTR_optind_00013fe4 = iVar6" (pointer_expression "*(int *)PTR_optind_00013fe4" * (cast_expression "(int *)PTR_optind_00013fe4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }" if (parenthesized_expression "(iVar6 < iVar12)" ( (binary_expression "iVar6 < iVar12" identifier < identifier) )) (compound_statement "{\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }" { (expression_statement "uVar10 = 0xffffffff;" (assignment_expression "uVar10 = 0xffffffff" identifier = number_literal) ;) (do_statement "do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);" do (compound_statement "{\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      }" { (expression_statement "pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);" (call_expression "pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10)" identifier (argument_list "("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10)" ( (string_literal ""Unexpected extra argument: %s\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(iVar9 + iVar6 * 4)" * (cast_expression "(undefined4 *)(iVar9 + iVar6 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar6 * 4)" ( (binary_expression "iVar9 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) , identifier , identifier ))) ;) (expression_statement "iVar6 = *(int *)puVar3 + 1;" (assignment_expression "iVar6 = *(int *)puVar3 + 1" identifier = (binary_expression "*(int *)puVar3 + 1" (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "*(int *)puVar3 = iVar6;" (assignment_expression "*(int *)puVar3 = iVar6" (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar10 = extraout_EDX;" (assignment_expression "uVar10 = extraout_EDX" identifier = identifier) ;) }) while (parenthesized_expression "(iVar6 < iVar12)" ( (binary_expression "iVar6 < iVar12" identifier < identifier) )) ;) (goto_statement "goto LAB_000113c8;" goto statement_identifier ;) })) })) (if_statement "if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }" { (if_statement "if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }" if (parenthesized_expression "((char)local_e8 != '\0')" ( (binary_expression "(char)local_e8 != '\0'" (cast_expression "(char)local_e8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }" { (expression_statement "iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (assignment_expression "iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" identifier = (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 ") )))) ;) (labeled_statement "LAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);" statement_identifier : (expression_statement "pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);" (call_expression "pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6)" identifier (argument_list "("version: %s\n","1.12 20180628",iVar6,iVar6)" ( (string_literal ""version: %s\n"" " string_content escape_sequence ") , (string_literal ""1.12 20180628"" " string_content ") , identifier , identifier ))) ;)) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })) }) (else_clause "else if ((char)local_e8 != '\0') goto LAB_0001163b;" else (if_statement "if ((char)local_e8 != '\0') goto LAB_0001163b;" if (parenthesized_expression "((char)local_e8 != '\0')" ( (binary_expression "(char)local_e8 != '\0'" (cast_expression "(char)local_e8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001163b;" goto statement_identifier ;)))) (if_statement "if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }" if (parenthesized_expression "((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1)" ( (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff)" (cast_expression "(uint)local_ef" ( (type_descriptor "uint" type_identifier) ) identifier) + (parenthesized_expression "((uint)local_ec & 0xff)" ( (binary_expression "(uint)local_ec & 0xff" (cast_expression "(uint)local_ec" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) + (cast_expression "(uint)local_ee" ( (type_descriptor "uint" type_identifier) ) identifier)) + (cast_expression "(uint)local_f0" ( (type_descriptor "uint" type_identifier) ) identifier)) != number_literal) )) (compound_statement "{\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }" { (expression_statement "pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");" (call_expression "pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n")" identifier (argument_list "("one from the --close, --finish, --open and --sequentialize options must be given\n")" ( (string_literal ""one from the --close, --finish, --open and --sequentialize options must be given\n"" " string_content escape_sequence ") ))) ;) (expression_statement "pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           )" identifier (argument_list "(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           )" ( (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );" (call_expression "pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           )" identifier (argument_list "(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           )" ( (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar12 = 0x1f;" (assignment_expression "iVar12 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }" if (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }" { (expression_statement "local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];" (assignment_expression "local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0]" identifier = (subscript_expression "(&PTR_s_no_SA_0_00013e60)[local_e0]" (parenthesized_expression "(&PTR_s_no_SA_0_00013e60)" ( (pointer_expression "&PTR_s_no_SA_0_00013e60" & identifier) )) [ identifier ])) ;) (expression_statement "local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);" (assignment_expression "local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8)" identifier = (call_expression "sg_cmds_open_device(puVar11,0,local_e4,local_e8)" identifier (argument_list "(puVar11,0,local_e4,local_e8)" ( identifier , number_literal , identifier , identifier )))) ;) (expression_statement "local_d4 = -1;" (assignment_expression "local_d4 = -1" identifier = number_literal) ;) (if_statement "if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }" if (parenthesized_expression "(local_d8 < 0)" ( (binary_expression "local_d8 < 0" identifier < number_literal) )) (compound_statement "{\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }" { (if_statement "if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }" if (parenthesized_expression "(local_e4 != (undefined1 *)0x0)" ( (binary_expression "local_e4 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }" { (expression_statement "uVar10 = safe_strerror(-local_d8);" (assignment_expression "uVar10 = safe_strerror(-local_d8)" identifier = (call_expression "safe_strerror(-local_d8)" identifier (argument_list "(-local_d8)" ( (unary_expression "-local_d8" - identifier) )))) ;) (expression_statement "pr2serr("open error: %s: %s\n",puVar11,uVar10);" (call_expression "pr2serr("open error: %s: %s\n",puVar11,uVar10)" identifier (argument_list "("open error: %s: %s\n",puVar11,uVar10)" ( (string_literal ""open error: %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "iVar12 = sg_convert_errno(-local_d8);" (assignment_expression "iVar12 = sg_convert_errno(-local_d8)" identifier = (call_expression "sg_convert_errno(-local_d8)" identifier (argument_list "(-local_d8)" ( (unary_expression "-local_d8" - identifier) )))) ;) (goto_statement "goto LAB_0001160a;" goto statement_identifier ;) })) (expression_statement "pbVar13 = local_ba;" (assignment_expression "pbVar13 = local_ba" identifier = identifier) ;) (for_statement "for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }" for ( (assignment_expression "iVar12 = 6" identifier = number_literal) ; (binary_expression "iVar12 != 0" identifier != number_literal) ; (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ) (compound_statement "{\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }" { (expression_statement "*pbVar13 = 0;" (assignment_expression "*pbVar13 = 0" (pointer_expression "*pbVar13" * identifier) = number_literal) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_c4[0] = 0x94;" (assignment_expression "local_c4[0] = 0x94" (subscript_expression "local_c4[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_c4[1] = (undefined1)local_e0;" (assignment_expression "local_c4[1] = (undefined1)local_e0" (subscript_expression "local_c4[1]" identifier [ number_literal ]) = (cast_expression "(undefined1)local_e0" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;" (assignment_expression "local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18" identifier = (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18" (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8" (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8" (binary_expression "local_fc >> 0x18" identifier >> number_literal) | (binary_expression "(local_fc & 0xff0000) >> 8" (parenthesized_expression "(local_fc & 0xff0000)" ( (binary_expression "local_fc & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_fc & 0xff00) << 8" (parenthesized_expression "(local_fc & 0xff00)" ( (binary_expression "local_fc & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_fc << 0x18" identifier << number_literal))) ;) (expression_statement "local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;" (assignment_expression "local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18" identifier = (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18" (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8" (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8" (binary_expression "local_f8 >> 0x18" identifier >> number_literal) | (binary_expression "(local_f8 & 0xff0000) >> 8" (parenthesized_expression "(local_f8 & 0xff0000)" ( (binary_expression "local_f8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_f8 & 0xff00) << 8" (parenthesized_expression "(local_f8 & 0xff00)" ( (binary_expression "local_f8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_f8 << 0x18" identifier << number_literal))) ;) (expression_statement "local_b8 = local_f4 << 8 | local_f4 >> 8;" (assignment_expression "local_b8 = local_f4 << 8 | local_f4 >> 8" identifier = (binary_expression "local_f4 << 8 | local_f4 >> 8" (binary_expression "local_f4 << 8" identifier << number_literal) | (binary_expression "local_f4 >> 8" identifier >> number_literal))) ;) (if_statement "if (bVar2) {\n      local_b6 = 1;\n    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n      local_b6 = 1;\n    }" { (expression_statement "local_b6 = 1;" (assignment_expression "local_b6 = 1" identifier = number_literal) ;) })) (expression_statement "local_ec = local_74;" (assignment_expression "local_ec = local_74" identifier = identifier) ;) (expression_statement "uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);" (assignment_expression "uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec)" identifier = (call_expression "sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec)" identifier (argument_list "(0x94,local_e0,0xffffffff,0x40,local_ec)" ( number_literal , identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }" if (parenthesized_expression "(local_e4 != (undefined1 *)0x0)" ( (binary_expression "local_e4 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "pbVar13 = local_c4;" (assignment_expression "pbVar13 = local_c4" identifier = identifier) ;) (expression_statement "pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);" (call_expression "pr2serr("    %s cdb: ",local_ec,uVar10,uVar10)" identifier (argument_list "("    %s cdb: ",local_ec,uVar10,uVar10)" ( (string_literal ""    %s cdb: "" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "pcVar8 = "%02x ";" (assignment_expression "pcVar8 = "%02x "" identifier = (string_literal ""%02x "" " string_content ")) ;) (do_statement "do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);" do (compound_statement "{\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      }" { (expression_statement "uVar7 = (uint)pbVar13[iVar12];" (assignment_expression "uVar7 = (uint)pbVar13[iVar12]" identifier = (cast_expression "(uint)pbVar13[iVar12]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar13[iVar12]" identifier [ identifier ]))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "pcVar16 = pcVar8;" (assignment_expression "pcVar16 = pcVar8" identifier = identifier) ;) (expression_statement "pcVar18 = pcVar8;" (assignment_expression "pcVar18 = pcVar8" identifier = identifier) ;) (expression_statement "pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);" (assignment_expression "pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8)" identifier = (cast_expression "(char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "pr2serr("%02x ",uVar7,pcVar8,pcVar8)" identifier (argument_list "("%02x ",uVar7,pcVar8,pcVar8)" ( (string_literal ""%02x "" " string_content ") , identifier , identifier , identifier ))))) ;) }) while (parenthesized_expression "(iVar12 != 0x10)" ( (binary_expression "iVar12 != 0x10" identifier != number_literal) )) ;) (expression_statement "pr2serr("\n",uVar7,pcVar16,pcVar18);" (call_expression "pr2serr("\n",uVar7,pcVar16,pcVar18)" identifier (argument_list "("\n",uVar7,pcVar16,pcVar18)" ( (string_literal ""\n"" " escape_sequence ") , identifier , identifier , identifier ))) ;) })) (expression_statement "puVar11 = (undefined1 *)construct_scsi_pt_obj();" (assignment_expression "puVar11 = (undefined1 *)construct_scsi_pt_obj()" identifier = (cast_expression "(undefined1 *)construct_scsi_pt_obj()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "construct_scsi_pt_obj()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001193b;" goto statement_identifier ;)) (expression_statement "set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);" (call_expression "set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13)" identifier (argument_list "(puVar11,local_c4,0x10,pbVar13)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "set_scsi_pt_sense(puVar11,local_b4,0x40);" (call_expression "set_scsi_pt_sense(puVar11,local_b4,0x40)" identifier (argument_list "(puVar11,local_b4,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);" (assignment_expression "uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4)" identifier = (call_expression "do_scsi_pt(puVar11,local_d8,0x3c,local_e4)" identifier (argument_list "(puVar11,local_d8,0x3c,local_e4)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);" (assignment_expression "iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8)" identifier = (call_expression "sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8)" identifier (argument_list "(puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8)" ( identifier , (string_literal ""reset write pointer"" " string_content ") , identifier , number_literal , identifier , number_literal , identifier , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" if (parenthesized_expression "(iVar12 == -1)" ( (binary_expression "iVar12 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }" { (expression_statement "uVar10 = get_scsi_pt_os_err(puVar11);" (assignment_expression "uVar10 = get_scsi_pt_os_err(puVar11)" identifier = (call_expression "get_scsi_pt_os_err(puVar11)" identifier (argument_list "(puVar11)" ( identifier )))) ;) (expression_statement "iVar12 = sg_convert_errno(uVar10);" (assignment_expression "iVar12 = sg_convert_errno(uVar10)" identifier = (call_expression "sg_convert_errno(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) }) (else_clause "else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" else (if_statement "if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" if (parenthesized_expression "((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2))" ( (binary_expression "(iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)" (parenthesized_expression "(iVar12 != -2)" ( (binary_expression "iVar12 != -2" identifier != number_literal) )) || (parenthesized_expression "(iVar12 = local_c8, local_c8 - 0x14U < 2)" ( (comma_expression "iVar12 = local_c8, local_c8 - 0x14U < 2" (assignment_expression "iVar12 = local_c8" identifier = identifier) , (binary_expression "local_c8 - 0x14U < 2" (binary_expression "local_c8 - 0x14U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" { (expression_statement "destruct_scsi_pt_obj(puVar11);" (call_expression "destruct_scsi_pt_obj(puVar11)" identifier (argument_list "(puVar11)" ( identifier ))) ;) (goto_statement "goto LAB_000115ef;" goto statement_identifier ;) })))) (expression_statement "destruct_scsi_pt_obj(puVar11);" (call_expression "destruct_scsi_pt_obj(puVar11)" identifier (argument_list "(puVar11)" ( identifier ))) ;) (expression_statement "local_d4 = iVar12;" (assignment_expression "local_d4 = iVar12" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }" { (if_statement "if (iVar12 != 9) goto LAB_0001181c;" if (parenthesized_expression "(iVar12 != 9)" ( (binary_expression "iVar12 != 9" identifier != number_literal) )) (goto_statement "goto LAB_0001181c;" goto statement_identifier ;)) (expression_statement "puVar17 = extraout_ECX;" (assignment_expression "puVar17 = extraout_ECX" identifier = identifier) ;) (expression_statement "puVar19 = extraout_ECX;" (assignment_expression "puVar19 = extraout_ECX" identifier = identifier) ;) (expression_statement "pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);" (call_expression "pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX)" identifier (argument_list "("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX)" ( (string_literal ""%s command not supported\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00011856;" goto statement_identifier ;) })) (labeled_statement "LAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);" statement_identifier : (expression_statement "iVar12 = sg_cmds_close_device(local_d8);" (assignment_expression "iVar12 = sg_cmds_close_device(local_d8)" identifier = (call_expression "sg_cmds_close_device(local_d8)" identifier (argument_list "(local_d8)" ( identifier )))) ;)) (if_statement "if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }" if (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) )) (compound_statement "{\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001160a;" goto statement_identifier ;) })) (expression_statement "puVar11 = (undefined1 *)-iVar12;" (assignment_expression "puVar11 = (undefined1 *)-iVar12" identifier = (cast_expression "(undefined1 *)-iVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-iVar12" - identifier))) ;) (expression_statement "uVar10 = safe_strerror(puVar11);" (assignment_expression "uVar10 = safe_strerror(puVar11)" identifier = (call_expression "safe_strerror(puVar11)" identifier (argument_list "(puVar11)" ( identifier )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar10);" (call_expression "pr2serr("close error: %s\n",uVar10)" identifier (argument_list "("close error: %s\n",uVar10)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "iVar12 = sg_convert_errno(puVar11);" (assignment_expression "iVar12 = sg_convert_errno(puVar11)" identifier = (call_expression "sg_convert_errno(puVar11)" identifier (argument_list "(puVar11)" ( identifier )))) ;) (goto_statement "goto LAB_0001160a;" goto statement_identifier ;) })) (expression_statement "pcVar8 = "missing device name!\n";" (assignment_expression "pcVar8 = "missing device name!\n"" identifier = (string_literal ""missing device name!\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000113b9:\n  pr2serr(pcVar8);" statement_identifier : (expression_statement "pr2serr(pcVar8);" (call_expression "pr2serr(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;)) (labeled_statement "LAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );" statement_identifier : (expression_statement "pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );" (call_expression "pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         )" identifier (argument_list "(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         )" ( (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;)) (expression_statement "pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );" (call_expression "pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         )" identifier (argument_list "(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         )" ( (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint main(int argc,char **argv)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char **ppcVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *extraout_ECX;\n  int iVar11;\n  undefined4 extraout_EDX;\n  byte *pbVar12;\n  int in_GS_OFFSET;\n  byte bVar13;\n  longlong lVar14;\n  char *pcVar15;\n  char *pcVar16;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  char *local_ec;\n  char *local_e8;\n  char *local_e4;\n  int local_e0;\n  char **local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  char local_74 [80];\n  int local_24;\n  int *local_18;\n  \n  ppcVar5 = argv;\n  iVar11 = argc;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar13 = 0;\n  local_18 = &argc;\n  local_d4 = argc;\n  local_d8 = argv;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (char *)((uint)local_e8 & 0xffffff00);\n  lVar14 = 0;\n  local_e0 = 0;\n  local_e4 = (char *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (char *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar14 >> 0x20);\n    local_f8 = (uint)lVar14;\n    local_c8 = 0;\n    iVar7 = getopt_long(iVar11,ppcVar5,"acC:fhoRSvVz:",long_options,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar11 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar10 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar8 = sg_get_num(*(undefined4 *)puVar4);\n      if (0xffff < uVar8) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar11 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar8;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (char *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (char *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar14 = sg_get_llnum(*(undefined4 *)puVar4);\n      if (lVar14 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar11 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }\n        return iVar11;\n      }\n    }\n  }\n  pcVar10 = (char *)0x0;\n  iVar7 = *(int *)PTR_optind_00013fe4;\n  if (iVar7 < iVar11) {\n    pcVar10 = ppcVar5[iVar7];\n    iVar7 = iVar7 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar7;\n    if (iVar7 < iVar11) {\n      uVar9 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);\n        iVar7 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar7;\n        uVar9 = extraout_EDX;\n      } while (iVar7 < iVar11);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar7 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7);\n      iVar11 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar11 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (pcVar10 != (char *)0x0) {\n    local_e8 = sa_name_arr[local_e0];\n    local_d8 = (char **)sg_cmds_open_device(pcVar10,0,local_e4,local_e8);\n    local_d4 = -1;\n    if ((int)local_d8 < 0) {\n      if (local_e4 != (char *)0x0) {\n        uVar9 = safe_strerror(-(int)local_d8);\n        pr2serr("open error: %s: %s\n",pcVar10,uVar9);\n      }\n      iVar11 = sg_convert_errno(-(int)local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar12 = local_ba;\n    for (iVar11 = 6; iVar11 != 0; iVar11 = iVar11 + -1) {\n      *pbVar12 = 0;\n      pbVar12 = pbVar12 + (uint)bVar13 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar9 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (char *)0x0) {\n      iVar11 = 0;\n      pbVar12 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar9,uVar9);\n      pcVar10 = "%02x ";\n      do {\n        uVar8 = (uint)pbVar12[iVar11];\n        iVar11 = iVar11 + 1;\n        pcVar15 = pcVar10;\n        pcVar16 = pcVar10;\n        pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);\n      } while (iVar11 != 0x10);\n      pr2serr("\n",uVar8,pcVar15,pcVar16);\n    }\n    pcVar10 = (char *)construct_scsi_pt_obj();\n    if (pcVar10 == (char *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(pcVar10,local_c4,0x10,pbVar12);\n    set_scsi_pt_sense(pcVar10,local_b4,0x40);\n    uVar9 = do_scsi_pt(pcVar10,local_d8,0x3c,local_e4);\n    iVar11 = sg_cmds_process_resp\n                       (pcVar10,"reset write pointer",uVar9,0,local_b4,1,local_e4,&local_c8);\n    if (iVar11 == -1) {\n      uVar9 = get_scsi_pt_os_err(pcVar10);\n      iVar11 = sg_convert_errno(uVar9);\n    }\n    else if ((iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(pcVar10);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(pcVar10);\n    local_d4 = iVar11;\n    if (iVar11 != 0) {\n      if (iVar11 != 9) goto LAB_0001181c;\n      pcVar15 = extraout_ECX;\n      pcVar16 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar11 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar11) {\n      iVar11 = 0;\n      goto LAB_0001160a;\n    }\n    pcVar10 = (char *)-iVar11;\n    uVar9 = safe_strerror(pcVar10);\n    pr2serr("close error: %s\n",uVar9);\n    iVar11 = sg_convert_errno(pcVar10);\n    goto LAB_0001160a;\n  }\n  pcVar10 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar10);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar11 = 1;\n  goto LAB_00011340;\n}\n\n" comment (function_definition "int main(int argc,char **argv)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char **ppcVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *extraout_ECX;\n  int iVar11;\n  undefined4 extraout_EDX;\n  byte *pbVar12;\n  int in_GS_OFFSET;\n  byte bVar13;\n  longlong lVar14;\n  char *pcVar15;\n  char *pcVar16;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  char *local_ec;\n  char *local_e8;\n  char *local_e4;\n  int local_e0;\n  char **local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  char local_74 [80];\n  int local_24;\n  int *local_18;\n  \n  ppcVar5 = argv;\n  iVar11 = argc;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar13 = 0;\n  local_18 = &argc;\n  local_d4 = argc;\n  local_d8 = argv;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (char *)((uint)local_e8 & 0xffffff00);\n  lVar14 = 0;\n  local_e0 = 0;\n  local_e4 = (char *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (char *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar14 >> 0x20);\n    local_f8 = (uint)lVar14;\n    local_c8 = 0;\n    iVar7 = getopt_long(iVar11,ppcVar5,"acC:fhoRSvVz:",long_options,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar11 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar10 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar8 = sg_get_num(*(undefined4 *)puVar4);\n      if (0xffff < uVar8) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar11 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar8;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (char *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (char *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar14 = sg_get_llnum(*(undefined4 *)puVar4);\n      if (lVar14 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar11 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }\n        return iVar11;\n      }\n    }\n  }\n  pcVar10 = (char *)0x0;\n  iVar7 = *(int *)PTR_optind_00013fe4;\n  if (iVar7 < iVar11) {\n    pcVar10 = ppcVar5[iVar7];\n    iVar7 = iVar7 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar7;\n    if (iVar7 < iVar11) {\n      uVar9 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);\n        iVar7 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar7;\n        uVar9 = extraout_EDX;\n      } while (iVar7 < iVar11);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar7 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7);\n      iVar11 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar11 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (pcVar10 != (char *)0x0) {\n    local_e8 = sa_name_arr[local_e0];\n    local_d8 = (char **)sg_cmds_open_device(pcVar10,0,local_e4,local_e8);\n    local_d4 = -1;\n    if ((int)local_d8 < 0) {\n      if (local_e4 != (char *)0x0) {\n        uVar9 = safe_strerror(-(int)local_d8);\n        pr2serr("open error: %s: %s\n",pcVar10,uVar9);\n      }\n      iVar11 = sg_convert_errno(-(int)local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar12 = local_ba;\n    for (iVar11 = 6; iVar11 != 0; iVar11 = iVar11 + -1) {\n      *pbVar12 = 0;\n      pbVar12 = pbVar12 + (uint)bVar13 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar9 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (char *)0x0) {\n      iVar11 = 0;\n      pbVar12 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar9,uVar9);\n      pcVar10 = "%02x ";\n      do {\n        uVar8 = (uint)pbVar12[iVar11];\n        iVar11 = iVar11 + 1;\n        pcVar15 = pcVar10;\n        pcVar16 = pcVar10;\n        pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);\n      } while (iVar11 != 0x10);\n      pr2serr("\n",uVar8,pcVar15,pcVar16);\n    }\n    pcVar10 = (char *)construct_scsi_pt_obj();\n    if (pcVar10 == (char *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(pcVar10,local_c4,0x10,pbVar12);\n    set_scsi_pt_sense(pcVar10,local_b4,0x40);\n    uVar9 = do_scsi_pt(pcVar10,local_d8,0x3c,local_e4);\n    iVar11 = sg_cmds_process_resp\n                       (pcVar10,"reset write pointer",uVar9,0,local_b4,1,local_e4,&local_c8);\n    if (iVar11 == -1) {\n      uVar9 = get_scsi_pt_os_err(pcVar10);\n      iVar11 = sg_convert_errno(uVar9);\n    }\n    else if ((iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(pcVar10);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(pcVar10);\n    local_d4 = iVar11;\n    if (iVar11 != 0) {\n      if (iVar11 != 9) goto LAB_0001181c;\n      pcVar15 = extraout_ECX;\n      pcVar16 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar11 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar11) {\n      iVar11 = 0;\n      goto LAB_0001160a;\n    }\n    pcVar10 = (char *)-iVar11;\n    uVar9 = safe_strerror(pcVar10);\n    pr2serr("close error: %s\n",uVar9);\n    iVar11 = sg_convert_errno(pcVar10);\n    goto LAB_0001160a;\n  }\n  pcVar10 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar10);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar11 = 1;\n  goto LAB_00011340;\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  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char **ppcVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *extraout_ECX;\n  int iVar11;\n  undefined4 extraout_EDX;\n  byte *pbVar12;\n  int in_GS_OFFSET;\n  byte bVar13;\n  longlong lVar14;\n  char *pcVar15;\n  char *pcVar16;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  char *local_ec;\n  char *local_e8;\n  char *local_e4;\n  int local_e0;\n  char **local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  char local_74 [80];\n  int local_24;\n  int *local_18;\n  \n  ppcVar5 = argv;\n  iVar11 = argc;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar13 = 0;\n  local_18 = &argc;\n  local_d4 = argc;\n  local_d8 = argv;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (char *)((uint)local_e8 & 0xffffff00);\n  lVar14 = 0;\n  local_e0 = 0;\n  local_e4 = (char *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (char *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar14 >> 0x20);\n    local_f8 = (uint)lVar14;\n    local_c8 = 0;\n    iVar7 = getopt_long(iVar11,ppcVar5,"acC:fhoRSvVz:",long_options,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar11 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar10 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar8 = sg_get_num(*(undefined4 *)puVar4);\n      if (0xffff < uVar8) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar11 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar8;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (char *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (char *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar14 = sg_get_llnum(*(undefined4 *)puVar4);\n      if (lVar14 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar11 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }\n        return iVar11;\n      }\n    }\n  }\n  pcVar10 = (char *)0x0;\n  iVar7 = *(int *)PTR_optind_00013fe4;\n  if (iVar7 < iVar11) {\n    pcVar10 = ppcVar5[iVar7];\n    iVar7 = iVar7 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar7;\n    if (iVar7 < iVar11) {\n      uVar9 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);\n        iVar7 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar7;\n        uVar9 = extraout_EDX;\n      } while (iVar7 < iVar11);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar7 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7);\n      iVar11 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar11 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (pcVar10 != (char *)0x0) {\n    local_e8 = sa_name_arr[local_e0];\n    local_d8 = (char **)sg_cmds_open_device(pcVar10,0,local_e4,local_e8);\n    local_d4 = -1;\n    if ((int)local_d8 < 0) {\n      if (local_e4 != (char *)0x0) {\n        uVar9 = safe_strerror(-(int)local_d8);\n        pr2serr("open error: %s: %s\n",pcVar10,uVar9);\n      }\n      iVar11 = sg_convert_errno(-(int)local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar12 = local_ba;\n    for (iVar11 = 6; iVar11 != 0; iVar11 = iVar11 + -1) {\n      *pbVar12 = 0;\n      pbVar12 = pbVar12 + (uint)bVar13 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar9 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (char *)0x0) {\n      iVar11 = 0;\n      pbVar12 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar9,uVar9);\n      pcVar10 = "%02x ";\n      do {\n        uVar8 = (uint)pbVar12[iVar11];\n        iVar11 = iVar11 + 1;\n        pcVar15 = pcVar10;\n        pcVar16 = pcVar10;\n        pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);\n      } while (iVar11 != 0x10);\n      pr2serr("\n",uVar8,pcVar15,pcVar16);\n    }\n    pcVar10 = (char *)construct_scsi_pt_obj();\n    if (pcVar10 == (char *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(pcVar10,local_c4,0x10,pbVar12);\n    set_scsi_pt_sense(pcVar10,local_b4,0x40);\n    uVar9 = do_scsi_pt(pcVar10,local_d8,0x3c,local_e4);\n    iVar11 = sg_cmds_process_resp\n                       (pcVar10,"reset write pointer",uVar9,0,local_b4,1,local_e4,&local_c8);\n    if (iVar11 == -1) {\n      uVar9 = get_scsi_pt_os_err(pcVar10);\n      iVar11 = sg_convert_errno(uVar9);\n    }\n    else if ((iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(pcVar10);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(pcVar10);\n    local_d4 = iVar11;\n    if (iVar11 != 0) {\n      if (iVar11 != 9) goto LAB_0001181c;\n      pcVar15 = extraout_ECX;\n      pcVar16 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar11 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar11) {\n      iVar11 = 0;\n      goto LAB_0001160a;\n    }\n    pcVar10 = (char *)-iVar11;\n    uVar9 = safe_strerror(pcVar10);\n    pr2serr("close error: %s\n",uVar9);\n    iVar11 = sg_convert_errno(pcVar10);\n    goto LAB_0001160a;\n  }\n  pcVar10 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar10);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar11 = 1;\n  goto LAB_00011340;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char **ppcVar5;" primitive_type (pointer_declarator "**ppcVar5" * (pointer_declarator "*ppcVar5" * identifier)) ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "char *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "longlong lVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint local_fc;" type_identifier identifier ;) (declaration "uint local_f8;" type_identifier identifier ;) (declaration "ushort local_f4;" type_identifier identifier ;) (declaration "byte local_f0;" type_identifier identifier ;) (declaration "byte local_ef;" type_identifier identifier ;) (declaration "byte local_ee;" type_identifier identifier ;) (declaration "char *local_ec;" primitive_type (pointer_declarator "*local_ec" * identifier) ;) (declaration "char *local_e8;" primitive_type (pointer_declarator "*local_e8" * identifier) ;) (declaration "char *local_e4;" primitive_type (pointer_declarator "*local_e4" * identifier) ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "char **local_d8;" primitive_type (pointer_declarator "**local_d8" * (pointer_declarator "*local_d8" * identifier)) ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte local_c4 [2];" type_identifier (array_declarator "local_c4 [2]" identifier [ number_literal ]) ;) (declaration "uint local_c2;" type_identifier identifier ;) (declaration "uint local_be;" type_identifier identifier ;) (declaration "byte local_ba [2];" type_identifier (array_declarator "local_ba [2]" identifier [ number_literal ]) ;) (declaration "ushort local_b8;" type_identifier identifier ;) (declaration "undefined1 local_b6;" type_identifier identifier ;) (declaration "undefined1 local_b4 [64];" type_identifier (array_declarator "local_b4 [64]" identifier [ number_literal ]) ;) (declaration "char local_74 [80];" primitive_type (array_declarator "local_74 [80]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int *local_18;" primitive_type (pointer_declarator "*local_18" * identifier) ;) (expression_statement "ppcVar5 = argv;" (assignment_expression "ppcVar5 = argv" identifier = identifier) ;) (expression_statement "iVar11 = argc;" (assignment_expression "iVar11 = argc" identifier = identifier) ;) (expression_statement "puVar4 = PTR_optarg_00013ff8;" (assignment_expression "puVar4 = PTR_optarg_00013ff8" identifier = identifier) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "local_18 = &argc;" (assignment_expression "local_18 = &argc" identifier = (pointer_expression "&argc" & identifier)) ;) (expression_statement "local_d4 = argc;" (assignment_expression "local_d4 = argc" identifier = identifier) ;) (expression_statement "local_d8 = argv;" (assignment_expression "local_d8 = argv" identifier = identifier) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_e8 = (char *)((uint)local_e8 & 0xffffff00);" (assignment_expression "local_e8 = (char *)((uint)local_e8 & 0xffffff00)" identifier = (cast_expression "(char *)((uint)local_e8 & 0xffffff00)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_e8 & 0xffffff00)" ( (binary_expression "(uint)local_e8 & 0xffffff00" (cast_expression "(uint)local_e8" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "lVar14 = 0;" (assignment_expression "lVar14 = 0" identifier = number_literal) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_e4 = (char *)0x0;" (assignment_expression "local_e4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "local_ef = 0;" (assignment_expression "local_ef = 0" identifier = number_literal) ;) (expression_statement "local_ec = (char *)((uint)local_ec & 0xffffff00);" (assignment_expression "local_ec = (char *)((uint)local_ec & 0xffffff00)" identifier = (cast_expression "(char *)((uint)local_ec & 0xffffff00)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_ec & 0xffffff00)" ( (binary_expression "(uint)local_ec & 0xffffff00" (cast_expression "(uint)local_ec" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_ee = 0;" (assignment_expression "local_ee = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_f4 = 0;" (assignment_expression "local_f4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    local_fc = (uint)((ulonglong)lVar14 >> 0x20);\n    local_f8 = (uint)lVar14;\n    local_c8 = 0;\n    iVar7 = getopt_long(iVar11,ppcVar5,"acC:fhoRSvVz:",long_options,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar11 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar10 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar8 = sg_get_num(*(undefined4 *)puVar4);\n      if (0xffff < uVar8) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar11 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar8;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (char *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (char *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar14 = sg_get_llnum(*(undefined4 *)puVar4);\n      if (lVar14 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar11 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }\n        return iVar11;\n      }\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    local_fc = (uint)((ulonglong)lVar14 >> 0x20);\n    local_f8 = (uint)lVar14;\n    local_c8 = 0;\n    iVar7 = getopt_long(iVar11,ppcVar5,"acC:fhoRSvVz:",long_options,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar7 == -1) break;\n    switch(iVar7) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar11 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar10 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar8 = sg_get_num(*(undefined4 *)puVar4);\n      if (0xffff < uVar8) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar11 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar8;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (char *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (char *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar14 = sg_get_llnum(*(undefined4 *)puVar4);\n      if (lVar14 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar11 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }\n        return iVar11;\n      }\n    }\n  }" { (expression_statement "local_fc = (uint)((ulonglong)lVar14 >> 0x20);" (assignment_expression "local_fc = (uint)((ulonglong)lVar14 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar14 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar14 >> 0x20)" ( (binary_expression "(ulonglong)lVar14 >> 0x20" (cast_expression "(ulonglong)lVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_f8 = (uint)lVar14;" (assignment_expression "local_f8 = (uint)lVar14" identifier = (cast_expression "(uint)lVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = getopt_long(iVar11,ppcVar5,"acC:fhoRSvVz:",long_options,&local_c8);" (assignment_expression "iVar7 = getopt_long(iVar11,ppcVar5,"acC:fhoRSvVz:",long_options,&local_c8)" identifier = (call_expression "getopt_long(iVar11,ppcVar5,"acC:fhoRSvVz:",long_options,&local_c8)" identifier (argument_list "(iVar11,ppcVar5,"acC:fhoRSvVz:",long_options,&local_c8)" ( identifier , identifier , (string_literal ""acC:fhoRSvVz:"" " string_content ") , identifier , (pointer_expression "&local_c8" & identifier) )))) ;) (expression_statement "puVar3 = PTR_optind_00013fe4;" (assignment_expression "puVar3 = PTR_optind_00013fe4" 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      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar11 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar10 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar8 = sg_get_num(*(undefined4 *)puVar4);\n      if (0xffff < uVar8) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar11 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar8;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (char *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (char *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar14 = sg_get_llnum(*(undefined4 *)puVar4);\n      if (lVar14 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar11 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }\n        return iVar11;\n      }\n    }" switch (parenthesized_expression "(iVar7)" ( identifier )) (compound_statement "{\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar11 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar10 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar8 = sg_get_num(*(undefined4 *)puVar4);\n      if (0xffff < uVar8) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar11 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar8;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (char *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (char *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar14 = sg_get_llnum(*(undefined4 *)puVar4);\n      if (lVar14 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar11 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }\n        return iVar11;\n      }\n    }" { (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar11 = 0;\n      goto LAB_00011340;" case number_literal : (expression_statement "pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );" (call_expression "pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             )" identifier (argument_list "(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             )" ( (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );" (call_expression "pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             )" identifier (argument_list "(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             )" ( (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;)) (case_statement "default:\n      pcVar10 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;" default : (expression_statement "pcVar10 = "unrecognised option code 0x%x ??\n";" (assignment_expression "pcVar10 = "unrecognised option code 0x%x ??\n"" identifier = (string_literal ""unrecognised option code 0x%x ??\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000113b9;" goto statement_identifier ;)) (case_statement "case 0x43:\n      uVar8 = sg_get_num(*(undefined4 *)puVar4);\n      if (0xffff < uVar8) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar11 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar8;\n      break;" case number_literal : (expression_statement "uVar8 = sg_get_num(*(undefined4 *)puVar4);" (assignment_expression "uVar8 = sg_get_num(*(undefined4 *)puVar4)" identifier = (call_expression "sg_get_num(*(undefined4 *)puVar4)" identifier (argument_list "(*(undefined4 *)puVar4)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (0xffff < uVar8) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar11 = 1;\n        goto LAB_00011340;\n      }" if (parenthesized_expression "(0xffff < uVar8)" ( (binary_expression "0xffff < uVar8" number_literal < identifier) )) (compound_statement "{\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar11 = 1;\n        goto LAB_00011340;\n      }" { (expression_statement "pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");" (call_expression "pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n")" identifier (argument_list "("--count= expects an argument between 0 and 0xffff inclusive\n")" ( (string_literal ""--count= expects an argument between 0 and 0xffff inclusive\n"" " string_content escape_sequence ") ))) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })) (expression_statement "local_f4 = (ushort)uVar8;" (assignment_expression "local_f4 = (ushort)uVar8" identifier = (cast_expression "(ushort)uVar8" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x52:" case number_literal :) (case_statement "case 0x61:\n      bVar2 = true;\n      break;" case number_literal : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;" case number_literal : (expression_statement "local_e0 = 0x10;" (assignment_expression "local_e0 = 0x10" identifier = number_literal) ;) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x56:\n      local_e8 = (char *)CONCAT31(local_e8._1_3_,1);\n      break;" case number_literal : (expression_statement "local_e8 = (char *)CONCAT31(local_e8._1_3_,1);" (assignment_expression "local_e8 = (char *)CONCAT31(local_e8._1_3_,1)" identifier = (cast_expression "(char *)CONCAT31(local_e8._1_3_,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_e8._1_3_,1)" identifier (argument_list "(local_e8._1_3_,1)" ( (field_expression "local_e8._1_3_" identifier . field_identifier) , number_literal ))))) ;) (break_statement "break;" break ;)) (case_statement "case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;" case number_literal : (expression_statement "local_e0 = 1;" (assignment_expression "local_e0 = 1" identifier = number_literal) ;) (expression_statement "local_ee = 1;" (assignment_expression "local_ee = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x66:\n      local_e0 = 2;\n      local_ec = (char *)CONCAT31(local_ec._1_3_,1);\n      break;" case number_literal : (expression_statement "local_e0 = 2;" (assignment_expression "local_e0 = 2" identifier = number_literal) ;) (expression_statement "local_ec = (char *)CONCAT31(local_ec._1_3_,1);" (assignment_expression "local_ec = (char *)CONCAT31(local_ec._1_3_,1)" identifier = (cast_expression "(char *)CONCAT31(local_ec._1_3_,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_ec._1_3_,1)" identifier (argument_list "(local_ec._1_3_,1)" ( (field_expression "local_ec._1_3_" identifier . field_identifier) , number_literal ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;" case number_literal : (expression_statement "local_e0 = 3;" (assignment_expression "local_e0 = 3" identifier = number_literal) ;) (expression_statement "local_ef = 1;" (assignment_expression "local_ef = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;" case number_literal : (expression_statement "local_e4 = local_e4 + 1;" (assignment_expression "local_e4 = local_e4 + 1" identifier = (binary_expression "local_e4 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x7a:\n      lVar14 = sg_get_llnum(*(undefined4 *)puVar4);\n      if (lVar14 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar11 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }\n        return iVar11;\n      }" case number_literal : (expression_statement "lVar14 = sg_get_llnum(*(undefined4 *)puVar4);" (assignment_expression "lVar14 = sg_get_llnum(*(undefined4 *)puVar4)" identifier = (call_expression "sg_get_llnum(*(undefined4 *)puVar4)" identifier (argument_list "(*(undefined4 *)puVar4)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (lVar14 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar11 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }\n        return iVar11;\n      }" if (parenthesized_expression "(lVar14 == -1)" ( (binary_expression "lVar14 == -1" identifier == number_literal) )) (compound_statement "{\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar11 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }\n        return iVar11;\n      }" { (expression_statement "pr2serr("bad argument to \'--zone=ID\'\n");" (call_expression "pr2serr("bad argument to \'--zone=ID\'\n")" identifier (argument_list "("bad argument to \'--zone=ID\'\n")" ( (string_literal ""bad argument to \'--zone=ID\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }" statement_identifier : (while_statement "while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }" while (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n          pcVar10 = (char *)__stack_chk_fail_local();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);\n          iVar11 = local_d4;\nLAB_0001181c:\n          pcVar16 = local_e4;\n          sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);\n          pcVar15 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          pcVar10 = local_ec;\nLAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar11;\n          if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }\nLAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar11 < 0) {\n            iVar11 = 99;\n          }\n        }" { (expression_statement "pcVar10 = (char *)__stack_chk_fail_local();" (assignment_expression "pcVar10 = (char *)__stack_chk_fail_local()" identifier = (cast_expression "(char *)__stack_chk_fail_local()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);" statement_identifier : (expression_statement "pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10);" (call_expression "pr2serr("%s: out of memory\n",local_ec,pcVar10,pcVar10)" identifier (argument_list "("%s: out of memory\n",local_ec,pcVar10,pcVar10)" ( (string_literal ""%s: out of memory\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;)) (expression_statement "iVar11 = local_d4;" (assignment_expression "iVar11 = local_d4" identifier = identifier) ;) (labeled_statement "LAB_0001181c:\n          pcVar16 = local_e4;" statement_identifier : (expression_statement "pcVar16 = local_e4;" (assignment_expression "pcVar16 = local_e4" identifier = identifier) ;)) (expression_statement "sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4);" (call_expression "sg_get_category_sense_str(iVar11,0x50,local_ec,local_e4)" identifier (argument_list "(iVar11,0x50,local_ec,local_e4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "pcVar15 = local_ec;" (assignment_expression "pcVar15 = local_ec" identifier = identifier) ;) (expression_statement "pr2serr("%s command: %s\n",local_e8,local_ec);" (call_expression "pr2serr("%s command: %s\n",local_e8,local_ec)" identifier (argument_list "("%s command: %s\n",local_e8,local_ec)" ( (string_literal ""%s command: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "pcVar10 = local_ec;" (assignment_expression "pcVar10 = local_ec" identifier = identifier) ;) (labeled_statement "LAB_00011856:\n          iVar7 = sg_cmds_close_device(local_d8);" statement_identifier : (expression_statement "iVar7 = sg_cmds_close_device(local_d8);" (assignment_expression "iVar7 = sg_cmds_close_device(local_d8)" identifier = (call_expression "sg_cmds_close_device(local_d8)" identifier (argument_list "(local_d8)" ( identifier )))) ;)) (expression_statement "local_d4 = iVar11;" (assignment_expression "local_d4 = iVar11" identifier = identifier) ;) (if_statement "if (iVar7 < 0) {\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n            uVar9 = safe_strerror(-iVar7);\n            pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);\n          }" { (expression_statement "uVar9 = safe_strerror(-iVar7);" (assignment_expression "uVar9 = safe_strerror(-iVar7)" identifier = (call_expression "safe_strerror(-iVar7)" identifier (argument_list "(-iVar7)" ( (unary_expression "-iVar7" - identifier) )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16);" (call_expression "pr2serr("close error: %s\n",uVar9,pcVar15,pcVar16)" identifier (argument_list "("close error: %s\n",uVar9,pcVar15,pcVar16)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_0001160a:\n          if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }" statement_identifier : (if_statement "if ((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }" if (parenthesized_expression "((local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0'))" ( (binary_expression "(local_e4 == (char *)0x0) &&\n             (cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')" (parenthesized_expression "(local_e4 == (char *)0x0)" ( (binary_expression "local_e4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0')" ( (comma_expression "cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10), local_d4 = iVar11\n             , cVar6 == '\0'" (assignment_expression "cVar6 = sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10)" identifier = (call_expression "sg_if_can2stderr("sg_zone failed: ",iVar11,pcVar10,pcVar10)" identifier (argument_list "("sg_zone failed: ",iVar11,pcVar10,pcVar10)" ( (string_literal ""sg_zone failed: "" " string_content ") , identifier , identifier , identifier )))) , (comma_expression "local_d4 = iVar11\n             , cVar6 == '\0'" (assignment_expression "local_d4 = iVar11" identifier = 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 (iVar11 < 0) {\n            iVar11 = 99;\n          }" if (parenthesized_expression "(iVar11 < 0)" ( (binary_expression "iVar11 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar11 = 99;\n          }" { (expression_statement "iVar11 = 99;" (assignment_expression "iVar11 = 99" identifier = number_literal) ;) })) }))) (return_statement "return iVar11;" return identifier ;) }))) })) })) (expression_statement "pcVar10 = (char *)0x0;" (assignment_expression "pcVar10 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = *(int *)PTR_optind_00013fe4;" (assignment_expression "iVar7 = *(int *)PTR_optind_00013fe4" identifier = (pointer_expression "*(int *)PTR_optind_00013fe4" * (cast_expression "(int *)PTR_optind_00013fe4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar7 < iVar11) {\n    pcVar10 = ppcVar5[iVar7];\n    iVar7 = iVar7 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar7;\n    if (iVar7 < iVar11) {\n      uVar9 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);\n        iVar7 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar7;\n        uVar9 = extraout_EDX;\n      } while (iVar7 < iVar11);\n      goto LAB_000113c8;\n    }\n  }" if (parenthesized_expression "(iVar7 < iVar11)" ( (binary_expression "iVar7 < iVar11" identifier < identifier) )) (compound_statement "{\n    pcVar10 = ppcVar5[iVar7];\n    iVar7 = iVar7 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar7;\n    if (iVar7 < iVar11) {\n      uVar9 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);\n        iVar7 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar7;\n        uVar9 = extraout_EDX;\n      } while (iVar7 < iVar11);\n      goto LAB_000113c8;\n    }\n  }" { (expression_statement "pcVar10 = ppcVar5[iVar7];" (assignment_expression "pcVar10 = ppcVar5[iVar7]" identifier = (subscript_expression "ppcVar5[iVar7]" identifier [ identifier ])) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)PTR_optind_00013fe4 = iVar7;" (assignment_expression "*(int *)PTR_optind_00013fe4 = iVar7" (pointer_expression "*(int *)PTR_optind_00013fe4" * (cast_expression "(int *)PTR_optind_00013fe4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar7 < iVar11) {\n      uVar9 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);\n        iVar7 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar7;\n        uVar9 = extraout_EDX;\n      } while (iVar7 < iVar11);\n      goto LAB_000113c8;\n    }" if (parenthesized_expression "(iVar7 < iVar11)" ( (binary_expression "iVar7 < iVar11" identifier < identifier) )) (compound_statement "{\n      uVar9 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);\n        iVar7 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar7;\n        uVar9 = extraout_EDX;\n      } while (iVar7 < iVar11);\n      goto LAB_000113c8;\n    }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) (do_statement "do {\n        pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);\n        iVar7 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar7;\n        uVar9 = extraout_EDX;\n      } while (iVar7 < iVar11);" do (compound_statement "{\n        pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);\n        iVar7 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar7;\n        uVar9 = extraout_EDX;\n      }" { (expression_statement "pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9);" (call_expression "pr2serr("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9)" identifier (argument_list "("Unexpected extra argument: %s\n",ppcVar5[iVar7],uVar9,uVar9)" ( (string_literal ""Unexpected extra argument: %s\n"" " string_content escape_sequence ") , (subscript_expression "ppcVar5[iVar7]" identifier [ identifier ]) , identifier , identifier ))) ;) (expression_statement "iVar7 = *(int *)puVar3 + 1;" (assignment_expression "iVar7 = *(int *)puVar3 + 1" identifier = (binary_expression "*(int *)puVar3 + 1" (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "*(int *)puVar3 = iVar7;" (assignment_expression "*(int *)puVar3 = iVar7" (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar9 = extraout_EDX;" (assignment_expression "uVar9 = extraout_EDX" identifier = identifier) ;) }) while (parenthesized_expression "(iVar7 < iVar11)" ( (binary_expression "iVar7 < iVar11" identifier < identifier) )) ;) (goto_statement "goto LAB_000113c8;" goto statement_identifier ;) })) })) (if_statement "if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar7 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7);\n      iVar11 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if ((char)local_e8 != '\0') {\n      iVar7 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7);\n      iVar11 = 0;\n      goto LAB_00011340;\n    }\n  }" { (if_statement "if ((char)local_e8 != '\0') {\n      iVar7 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7);\n      iVar11 = 0;\n      goto LAB_00011340;\n    }" if (parenthesized_expression "((char)local_e8 != '\0')" ( (binary_expression "(char)local_e8 != '\0'" (cast_expression "(char)local_e8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar7 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7);\n      iVar11 = 0;\n      goto LAB_00011340;\n    }" { (expression_statement "iVar7 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (assignment_expression "iVar7 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" identifier = (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 ") )))) ;) (labeled_statement "LAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7);" statement_identifier : (expression_statement "pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7);" (call_expression "pr2serr("version: %s\n","1.12 20180628",iVar7,iVar7)" identifier (argument_list "("version: %s\n","1.12 20180628",iVar7,iVar7)" ( (string_literal ""version: %s\n"" " string_content escape_sequence ") , (string_literal ""1.12 20180628"" " string_content ") , identifier , identifier ))) ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })) }) (else_clause "else if ((char)local_e8 != '\0') goto LAB_0001163b;" else (if_statement "if ((char)local_e8 != '\0') goto LAB_0001163b;" if (parenthesized_expression "((char)local_e8 != '\0')" ( (binary_expression "(char)local_e8 != '\0'" (cast_expression "(char)local_e8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001163b;" goto statement_identifier ;)))) (if_statement "if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar11 = 0x1f;\n    goto LAB_00011340;\n  }" if (parenthesized_expression "((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1)" ( (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff)" (cast_expression "(uint)local_ef" ( (type_descriptor "uint" type_identifier) ) identifier) + (parenthesized_expression "((uint)local_ec & 0xff)" ( (binary_expression "(uint)local_ec & 0xff" (cast_expression "(uint)local_ec" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) + (cast_expression "(uint)local_ee" ( (type_descriptor "uint" type_identifier) ) identifier)) + (cast_expression "(uint)local_f0" ( (type_descriptor "uint" type_identifier) ) identifier)) != number_literal) )) (compound_statement "{\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar11 = 0x1f;\n    goto LAB_00011340;\n  }" { (expression_statement "pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");" (call_expression "pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n")" identifier (argument_list "("one from the --close, --finish, --open and --sequentialize options must be given\n")" ( (string_literal ""one from the --close, --finish, --open and --sequentialize options must be given\n"" " string_content escape_sequence ") ))) ;) (expression_statement "pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           )" identifier (argument_list "(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           )" ( (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );" (call_expression "pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           )" identifier (argument_list "(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           )" ( (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar11 = 0x1f;" (assignment_expression "iVar11 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })) (if_statement "if (pcVar10 != (char *)0x0) {\n    local_e8 = sa_name_arr[local_e0];\n    local_d8 = (char **)sg_cmds_open_device(pcVar10,0,local_e4,local_e8);\n    local_d4 = -1;\n    if ((int)local_d8 < 0) {\n      if (local_e4 != (char *)0x0) {\n        uVar9 = safe_strerror(-(int)local_d8);\n        pr2serr("open error: %s: %s\n",pcVar10,uVar9);\n      }\n      iVar11 = sg_convert_errno(-(int)local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar12 = local_ba;\n    for (iVar11 = 6; iVar11 != 0; iVar11 = iVar11 + -1) {\n      *pbVar12 = 0;\n      pbVar12 = pbVar12 + (uint)bVar13 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar9 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (char *)0x0) {\n      iVar11 = 0;\n      pbVar12 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar9,uVar9);\n      pcVar10 = "%02x ";\n      do {\n        uVar8 = (uint)pbVar12[iVar11];\n        iVar11 = iVar11 + 1;\n        pcVar15 = pcVar10;\n        pcVar16 = pcVar10;\n        pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);\n      } while (iVar11 != 0x10);\n      pr2serr("\n",uVar8,pcVar15,pcVar16);\n    }\n    pcVar10 = (char *)construct_scsi_pt_obj();\n    if (pcVar10 == (char *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(pcVar10,local_c4,0x10,pbVar12);\n    set_scsi_pt_sense(pcVar10,local_b4,0x40);\n    uVar9 = do_scsi_pt(pcVar10,local_d8,0x3c,local_e4);\n    iVar11 = sg_cmds_process_resp\n                       (pcVar10,"reset write pointer",uVar9,0,local_b4,1,local_e4,&local_c8);\n    if (iVar11 == -1) {\n      uVar9 = get_scsi_pt_os_err(pcVar10);\n      iVar11 = sg_convert_errno(uVar9);\n    }\n    else if ((iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(pcVar10);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(pcVar10);\n    local_d4 = iVar11;\n    if (iVar11 != 0) {\n      if (iVar11 != 9) goto LAB_0001181c;\n      pcVar15 = extraout_ECX;\n      pcVar16 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar11 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar11) {\n      iVar11 = 0;\n      goto LAB_0001160a;\n    }\n    pcVar10 = (char *)-iVar11;\n    uVar9 = safe_strerror(pcVar10);\n    pr2serr("close error: %s\n",uVar9);\n    iVar11 = sg_convert_errno(pcVar10);\n    goto LAB_0001160a;\n  }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_e8 = sa_name_arr[local_e0];\n    local_d8 = (char **)sg_cmds_open_device(pcVar10,0,local_e4,local_e8);\n    local_d4 = -1;\n    if ((int)local_d8 < 0) {\n      if (local_e4 != (char *)0x0) {\n        uVar9 = safe_strerror(-(int)local_d8);\n        pr2serr("open error: %s: %s\n",pcVar10,uVar9);\n      }\n      iVar11 = sg_convert_errno(-(int)local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar12 = local_ba;\n    for (iVar11 = 6; iVar11 != 0; iVar11 = iVar11 + -1) {\n      *pbVar12 = 0;\n      pbVar12 = pbVar12 + (uint)bVar13 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar9 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (char *)0x0) {\n      iVar11 = 0;\n      pbVar12 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar9,uVar9);\n      pcVar10 = "%02x ";\n      do {\n        uVar8 = (uint)pbVar12[iVar11];\n        iVar11 = iVar11 + 1;\n        pcVar15 = pcVar10;\n        pcVar16 = pcVar10;\n        pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);\n      } while (iVar11 != 0x10);\n      pr2serr("\n",uVar8,pcVar15,pcVar16);\n    }\n    pcVar10 = (char *)construct_scsi_pt_obj();\n    if (pcVar10 == (char *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(pcVar10,local_c4,0x10,pbVar12);\n    set_scsi_pt_sense(pcVar10,local_b4,0x40);\n    uVar9 = do_scsi_pt(pcVar10,local_d8,0x3c,local_e4);\n    iVar11 = sg_cmds_process_resp\n                       (pcVar10,"reset write pointer",uVar9,0,local_b4,1,local_e4,&local_c8);\n    if (iVar11 == -1) {\n      uVar9 = get_scsi_pt_os_err(pcVar10);\n      iVar11 = sg_convert_errno(uVar9);\n    }\n    else if ((iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(pcVar10);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(pcVar10);\n    local_d4 = iVar11;\n    if (iVar11 != 0) {\n      if (iVar11 != 9) goto LAB_0001181c;\n      pcVar15 = extraout_ECX;\n      pcVar16 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar11 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar11) {\n      iVar11 = 0;\n      goto LAB_0001160a;\n    }\n    pcVar10 = (char *)-iVar11;\n    uVar9 = safe_strerror(pcVar10);\n    pr2serr("close error: %s\n",uVar9);\n    iVar11 = sg_convert_errno(pcVar10);\n    goto LAB_0001160a;\n  }" { (expression_statement "local_e8 = sa_name_arr[local_e0];" (assignment_expression "local_e8 = sa_name_arr[local_e0]" identifier = (subscript_expression "sa_name_arr[local_e0]" identifier [ identifier ])) ;) (expression_statement "local_d8 = (char **)sg_cmds_open_device(pcVar10,0,local_e4,local_e8);" (assignment_expression "local_d8 = (char **)sg_cmds_open_device(pcVar10,0,local_e4,local_e8)" identifier = (cast_expression "(char **)sg_cmds_open_device(pcVar10,0,local_e4,local_e8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "sg_cmds_open_device(pcVar10,0,local_e4,local_e8)" identifier (argument_list "(pcVar10,0,local_e4,local_e8)" ( identifier , number_literal , identifier , identifier ))))) ;) (expression_statement "local_d4 = -1;" (assignment_expression "local_d4 = -1" identifier = number_literal) ;) (if_statement "if ((int)local_d8 < 0) {\n      if (local_e4 != (char *)0x0) {\n        uVar9 = safe_strerror(-(int)local_d8);\n        pr2serr("open error: %s: %s\n",pcVar10,uVar9);\n      }\n      iVar11 = sg_convert_errno(-(int)local_d8);\n      goto LAB_0001160a;\n    }" if (parenthesized_expression "((int)local_d8 < 0)" ( (binary_expression "(int)local_d8 < 0" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (local_e4 != (char *)0x0) {\n        uVar9 = safe_strerror(-(int)local_d8);\n        pr2serr("open error: %s: %s\n",pcVar10,uVar9);\n      }\n      iVar11 = sg_convert_errno(-(int)local_d8);\n      goto LAB_0001160a;\n    }" { (if_statement "if (local_e4 != (char *)0x0) {\n        uVar9 = safe_strerror(-(int)local_d8);\n        pr2serr("open error: %s: %s\n",pcVar10,uVar9);\n      }" if (parenthesized_expression "(local_e4 != (char *)0x0)" ( (binary_expression "local_e4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = safe_strerror(-(int)local_d8);\n        pr2serr("open error: %s: %s\n",pcVar10,uVar9);\n      }" { (expression_statement "uVar9 = safe_strerror(-(int)local_d8);" (assignment_expression "uVar9 = safe_strerror(-(int)local_d8)" identifier = (call_expression "safe_strerror(-(int)local_d8)" identifier (argument_list "(-(int)local_d8)" ( (unary_expression "-(int)local_d8" - (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pr2serr("open error: %s: %s\n",pcVar10,uVar9);" (call_expression "pr2serr("open error: %s: %s\n",pcVar10,uVar9)" identifier (argument_list "("open error: %s: %s\n",pcVar10,uVar9)" ( (string_literal ""open error: %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "iVar11 = sg_convert_errno(-(int)local_d8);" (assignment_expression "iVar11 = sg_convert_errno(-(int)local_d8)" identifier = (call_expression "sg_convert_errno(-(int)local_d8)" identifier (argument_list "(-(int)local_d8)" ( (unary_expression "-(int)local_d8" - (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (goto_statement "goto LAB_0001160a;" goto statement_identifier ;) })) (expression_statement "pbVar12 = local_ba;" (assignment_expression "pbVar12 = local_ba" identifier = identifier) ;) (for_statement "for (iVar11 = 6; iVar11 != 0; iVar11 = iVar11 + -1) {\n      *pbVar12 = 0;\n      pbVar12 = pbVar12 + (uint)bVar13 * -2 + 1;\n    }" for ( (assignment_expression "iVar11 = 6" identifier = number_literal) ; (binary_expression "iVar11 != 0" identifier != number_literal) ; (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ) (compound_statement "{\n      *pbVar12 = 0;\n      pbVar12 = pbVar12 + (uint)bVar13 * -2 + 1;\n    }" { (expression_statement "*pbVar12 = 0;" (assignment_expression "*pbVar12 = 0" (pointer_expression "*pbVar12" * identifier) = number_literal) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_c4[0] = 0x94;" (assignment_expression "local_c4[0] = 0x94" (subscript_expression "local_c4[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_c4[1] = (undefined1)local_e0;" (assignment_expression "local_c4[1] = (undefined1)local_e0" (subscript_expression "local_c4[1]" identifier [ number_literal ]) = (cast_expression "(undefined1)local_e0" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;" (assignment_expression "local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18" identifier = (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18" (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8" (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8" (binary_expression "local_fc >> 0x18" identifier >> number_literal) | (binary_expression "(local_fc & 0xff0000) >> 8" (parenthesized_expression "(local_fc & 0xff0000)" ( (binary_expression "local_fc & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_fc & 0xff00) << 8" (parenthesized_expression "(local_fc & 0xff00)" ( (binary_expression "local_fc & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_fc << 0x18" identifier << number_literal))) ;) (expression_statement "local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;" (assignment_expression "local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18" identifier = (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18" (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8" (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8" (binary_expression "local_f8 >> 0x18" identifier >> number_literal) | (binary_expression "(local_f8 & 0xff0000) >> 8" (parenthesized_expression "(local_f8 & 0xff0000)" ( (binary_expression "local_f8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_f8 & 0xff00) << 8" (parenthesized_expression "(local_f8 & 0xff00)" ( (binary_expression "local_f8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_f8 << 0x18" identifier << number_literal))) ;) (expression_statement "local_b8 = local_f4 << 8 | local_f4 >> 8;" (assignment_expression "local_b8 = local_f4 << 8 | local_f4 >> 8" identifier = (binary_expression "local_f4 << 8 | local_f4 >> 8" (binary_expression "local_f4 << 8" identifier << number_literal) | (binary_expression "local_f4 >> 8" identifier >> number_literal))) ;) (if_statement "if (bVar2) {\n      local_b6 = 1;\n    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n      local_b6 = 1;\n    }" { (expression_statement "local_b6 = 1;" (assignment_expression "local_b6 = 1" identifier = number_literal) ;) })) (expression_statement "local_ec = local_74;" (assignment_expression "local_ec = local_74" identifier = identifier) ;) (expression_statement "uVar9 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);" (assignment_expression "uVar9 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec)" identifier = (call_expression "sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec)" identifier (argument_list "(0x94,local_e0,0xffffffff,0x40,local_ec)" ( number_literal , identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (local_e4 != (char *)0x0) {\n      iVar11 = 0;\n      pbVar12 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar9,uVar9);\n      pcVar10 = "%02x ";\n      do {\n        uVar8 = (uint)pbVar12[iVar11];\n        iVar11 = iVar11 + 1;\n        pcVar15 = pcVar10;\n        pcVar16 = pcVar10;\n        pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);\n      } while (iVar11 != 0x10);\n      pr2serr("\n",uVar8,pcVar15,pcVar16);\n    }" if (parenthesized_expression "(local_e4 != (char *)0x0)" ( (binary_expression "local_e4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar11 = 0;\n      pbVar12 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar9,uVar9);\n      pcVar10 = "%02x ";\n      do {\n        uVar8 = (uint)pbVar12[iVar11];\n        iVar11 = iVar11 + 1;\n        pcVar15 = pcVar10;\n        pcVar16 = pcVar10;\n        pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);\n      } while (iVar11 != 0x10);\n      pr2serr("\n",uVar8,pcVar15,pcVar16);\n    }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "pbVar12 = local_c4;" (assignment_expression "pbVar12 = local_c4" identifier = identifier) ;) (expression_statement "pr2serr("    %s cdb: ",local_ec,uVar9,uVar9);" (call_expression "pr2serr("    %s cdb: ",local_ec,uVar9,uVar9)" identifier (argument_list "("    %s cdb: ",local_ec,uVar9,uVar9)" ( (string_literal ""    %s cdb: "" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "pcVar10 = "%02x ";" (assignment_expression "pcVar10 = "%02x "" identifier = (string_literal ""%02x "" " string_content ")) ;) (do_statement "do {\n        uVar8 = (uint)pbVar12[iVar11];\n        iVar11 = iVar11 + 1;\n        pcVar15 = pcVar10;\n        pcVar16 = pcVar10;\n        pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);\n      } while (iVar11 != 0x10);" do (compound_statement "{\n        uVar8 = (uint)pbVar12[iVar11];\n        iVar11 = iVar11 + 1;\n        pcVar15 = pcVar10;\n        pcVar16 = pcVar10;\n        pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);\n      }" { (expression_statement "uVar8 = (uint)pbVar12[iVar11];" (assignment_expression "uVar8 = (uint)pbVar12[iVar11]" identifier = (cast_expression "(uint)pbVar12[iVar11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar12[iVar11]" identifier [ identifier ]))) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar15 = pcVar10;" (assignment_expression "pcVar15 = pcVar10" identifier = identifier) ;) (expression_statement "pcVar16 = pcVar10;" (assignment_expression "pcVar16 = pcVar10" identifier = identifier) ;) (expression_statement "pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10);" (assignment_expression "pcVar10 = (char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10)" identifier = (cast_expression "(char *)pr2serr("%02x ",uVar8,pcVar10,pcVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "pr2serr("%02x ",uVar8,pcVar10,pcVar10)" identifier (argument_list "("%02x ",uVar8,pcVar10,pcVar10)" ( (string_literal ""%02x "" " string_content ") , identifier , identifier , identifier ))))) ;) }) while (parenthesized_expression "(iVar11 != 0x10)" ( (binary_expression "iVar11 != 0x10" identifier != number_literal) )) ;) (expression_statement "pr2serr("\n",uVar8,pcVar15,pcVar16);" (call_expression "pr2serr("\n",uVar8,pcVar15,pcVar16)" identifier (argument_list "("\n",uVar8,pcVar15,pcVar16)" ( (string_literal ""\n"" " escape_sequence ") , identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar10 = (char *)construct_scsi_pt_obj();" (assignment_expression "pcVar10 = (char *)construct_scsi_pt_obj()" identifier = (cast_expression "(char *)construct_scsi_pt_obj()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "construct_scsi_pt_obj()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pcVar10 == (char *)0x0) goto LAB_0001193b;" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001193b;" goto statement_identifier ;)) (expression_statement "set_scsi_pt_cdb(pcVar10,local_c4,0x10,pbVar12);" (call_expression "set_scsi_pt_cdb(pcVar10,local_c4,0x10,pbVar12)" identifier (argument_list "(pcVar10,local_c4,0x10,pbVar12)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "set_scsi_pt_sense(pcVar10,local_b4,0x40);" (call_expression "set_scsi_pt_sense(pcVar10,local_b4,0x40)" identifier (argument_list "(pcVar10,local_b4,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar9 = do_scsi_pt(pcVar10,local_d8,0x3c,local_e4);" (assignment_expression "uVar9 = do_scsi_pt(pcVar10,local_d8,0x3c,local_e4)" identifier = (call_expression "do_scsi_pt(pcVar10,local_d8,0x3c,local_e4)" identifier (argument_list "(pcVar10,local_d8,0x3c,local_e4)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "iVar11 = sg_cmds_process_resp\n                       (pcVar10,"reset write pointer",uVar9,0,local_b4,1,local_e4,&local_c8);" (assignment_expression "iVar11 = sg_cmds_process_resp\n                       (pcVar10,"reset write pointer",uVar9,0,local_b4,1,local_e4,&local_c8)" identifier = (call_expression "sg_cmds_process_resp\n                       (pcVar10,"reset write pointer",uVar9,0,local_b4,1,local_e4,&local_c8)" identifier (argument_list "(pcVar10,"reset write pointer",uVar9,0,local_b4,1,local_e4,&local_c8)" ( identifier , (string_literal ""reset write pointer"" " string_content ") , identifier , number_literal , identifier , number_literal , identifier , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar11 == -1) {\n      uVar9 = get_scsi_pt_os_err(pcVar10);\n      iVar11 = sg_convert_errno(uVar9);\n    }\n    else if ((iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(pcVar10);\n      goto LAB_000115ef;\n    }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar9 = get_scsi_pt_os_err(pcVar10);\n      iVar11 = sg_convert_errno(uVar9);\n    }" { (expression_statement "uVar9 = get_scsi_pt_os_err(pcVar10);" (assignment_expression "uVar9 = get_scsi_pt_os_err(pcVar10)" identifier = (call_expression "get_scsi_pt_os_err(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) (expression_statement "iVar11 = sg_convert_errno(uVar9);" (assignment_expression "iVar11 = sg_convert_errno(uVar9)" identifier = (call_expression "sg_convert_errno(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) }) (else_clause "else if ((iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(pcVar10);\n      goto LAB_000115ef;\n    }" else (if_statement "if ((iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(pcVar10);\n      goto LAB_000115ef;\n    }" if (parenthesized_expression "((iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2))" ( (binary_expression "(iVar11 != -2) || (iVar11 = local_c8, local_c8 - 0x14U < 2)" (parenthesized_expression "(iVar11 != -2)" ( (binary_expression "iVar11 != -2" identifier != number_literal) )) || (parenthesized_expression "(iVar11 = local_c8, local_c8 - 0x14U < 2)" ( (comma_expression "iVar11 = local_c8, local_c8 - 0x14U < 2" (assignment_expression "iVar11 = local_c8" identifier = identifier) , (binary_expression "local_c8 - 0x14U < 2" (binary_expression "local_c8 - 0x14U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n      destruct_scsi_pt_obj(pcVar10);\n      goto LAB_000115ef;\n    }" { (expression_statement "destruct_scsi_pt_obj(pcVar10);" (call_expression "destruct_scsi_pt_obj(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) (goto_statement "goto LAB_000115ef;" goto statement_identifier ;) })))) (expression_statement "destruct_scsi_pt_obj(pcVar10);" (call_expression "destruct_scsi_pt_obj(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) (expression_statement "local_d4 = iVar11;" (assignment_expression "local_d4 = iVar11" identifier = identifier) ;) (if_statement "if (iVar11 != 0) {\n      if (iVar11 != 9) goto LAB_0001181c;\n      pcVar15 = extraout_ECX;\n      pcVar16 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar11 != 9) goto LAB_0001181c;\n      pcVar15 = extraout_ECX;\n      pcVar16 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }" { (if_statement "if (iVar11 != 9) goto LAB_0001181c;" if (parenthesized_expression "(iVar11 != 9)" ( (binary_expression "iVar11 != 9" identifier != number_literal) )) (goto_statement "goto LAB_0001181c;" goto statement_identifier ;)) (expression_statement "pcVar15 = extraout_ECX;" (assignment_expression "pcVar15 = extraout_ECX" identifier = identifier) ;) (expression_statement "pcVar16 = extraout_ECX;" (assignment_expression "pcVar16 = extraout_ECX" identifier = identifier) ;) (expression_statement "pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);" (call_expression "pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX)" identifier (argument_list "("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX)" ( (string_literal ""%s command not supported\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00011856;" goto statement_identifier ;) })) (labeled_statement "LAB_000115ef:\n    iVar11 = sg_cmds_close_device(local_d8);" statement_identifier : (expression_statement "iVar11 = sg_cmds_close_device(local_d8);" (assignment_expression "iVar11 = sg_cmds_close_device(local_d8)" identifier = (call_expression "sg_cmds_close_device(local_d8)" identifier (argument_list "(local_d8)" ( identifier )))) ;)) (if_statement "if (-1 < iVar11) {\n      iVar11 = 0;\n      goto LAB_0001160a;\n    }" if (parenthesized_expression "(-1 < iVar11)" ( (binary_expression "-1 < iVar11" number_literal < identifier) )) (compound_statement "{\n      iVar11 = 0;\n      goto LAB_0001160a;\n    }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001160a;" goto statement_identifier ;) })) (expression_statement "pcVar10 = (char *)-iVar11;" (assignment_expression "pcVar10 = (char *)-iVar11" identifier = (cast_expression "(char *)-iVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (unary_expression "-iVar11" - identifier))) ;) (expression_statement "uVar9 = safe_strerror(pcVar10);" (assignment_expression "uVar9 = safe_strerror(pcVar10)" identifier = (call_expression "safe_strerror(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar9);" (call_expression "pr2serr("close error: %s\n",uVar9)" identifier (argument_list "("close error: %s\n",uVar9)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "iVar11 = sg_convert_errno(pcVar10);" (assignment_expression "iVar11 = sg_convert_errno(pcVar10)" identifier = (call_expression "sg_convert_errno(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) (goto_statement "goto LAB_0001160a;" goto statement_identifier ;) })) (expression_statement "pcVar10 = "missing device name!\n";" (assignment_expression "pcVar10 = "missing device name!\n"" identifier = (string_literal ""missing device name!\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000113b9:\n  pr2serr(pcVar10);" statement_identifier : (expression_statement "pr2serr(pcVar10);" (call_expression "pr2serr(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;)) (labeled_statement "LAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );" statement_identifier : (expression_statement "pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );" (call_expression "pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         )" identifier (argument_list "(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         )" ( (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;)) (expression_statement "pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );" (call_expression "pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         )" identifier (argument_list "(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         )" ( (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })))
(translation_unit "int FUN_00011190(int param_1,int param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char cVar5;\n  int iVar6;\n  uint uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined1 *extraout_ECX;\n  int iVar12;\n  undefined4 extraout_EDX;\n  byte *pbVar13;\n  int in_GS_OFFSET;\n  byte bVar14;\n  longlong lVar15;\n  char *pcVar16;\n  undefined1 *puVar17;\n  char *pcVar18;\n  undefined1 *puVar19;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  undefined1 *local_ec;\n  undefined *local_e8;\n  undefined1 *local_e4;\n  int local_e0;\n  int local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  undefined1 local_74 [80];\n  int local_24;\n  undefined4 *local_18;\n  \n  iVar9 = param_2;\n  iVar12 = param_1;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar14 = 0;\n  local_18 = &param_1;\n  local_d4 = param_1;\n  local_d8 = param_2;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);\n  lVar15 = 0;\n  local_e0 = 0;\n  local_e4 = (undefined1 *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }\n  puVar11 = (undefined1 *)0x0;\n  iVar6 = *(int *)PTR_optind_00013fe4;\n  if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }\n  pcVar8 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar8);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar12 = 1;\n  goto LAB_00011340;\n}\n\n" (function_definition "int FUN_00011190(int param_1,int param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char cVar5;\n  int iVar6;\n  uint uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined1 *extraout_ECX;\n  int iVar12;\n  undefined4 extraout_EDX;\n  byte *pbVar13;\n  int in_GS_OFFSET;\n  byte bVar14;\n  longlong lVar15;\n  char *pcVar16;\n  undefined1 *puVar17;\n  char *pcVar18;\n  undefined1 *puVar19;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  undefined1 *local_ec;\n  undefined *local_e8;\n  undefined1 *local_e4;\n  int local_e0;\n  int local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  undefined1 local_74 [80];\n  int local_24;\n  undefined4 *local_18;\n  \n  iVar9 = param_2;\n  iVar12 = param_1;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar14 = 0;\n  local_18 = &param_1;\n  local_d4 = param_1;\n  local_d8 = param_2;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);\n  lVar15 = 0;\n  local_e0 = 0;\n  local_e4 = (undefined1 *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }\n  puVar11 = (undefined1 *)0x0;\n  iVar6 = *(int *)PTR_optind_00013fe4;\n  if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }\n  pcVar8 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar8);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar12 = 1;\n  goto LAB_00011340;\n}" primitive_type (function_declarator "FUN_00011190(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char cVar5;\n  int iVar6;\n  uint uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined1 *extraout_ECX;\n  int iVar12;\n  undefined4 extraout_EDX;\n  byte *pbVar13;\n  int in_GS_OFFSET;\n  byte bVar14;\n  longlong lVar15;\n  char *pcVar16;\n  undefined1 *puVar17;\n  char *pcVar18;\n  undefined1 *puVar19;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  undefined1 *local_ec;\n  undefined *local_e8;\n  undefined1 *local_e4;\n  int local_e0;\n  int local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  undefined1 local_74 [80];\n  int local_24;\n  undefined4 *local_18;\n  \n  iVar9 = param_2;\n  iVar12 = param_1;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar14 = 0;\n  local_18 = &param_1;\n  local_d4 = param_1;\n  local_d8 = param_2;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);\n  lVar15 = 0;\n  local_e0 = 0;\n  local_e4 = (undefined1 *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }\n  puVar11 = (undefined1 *)0x0;\n  iVar6 = *(int *)PTR_optind_00013fe4;\n  if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }\n  pcVar8 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar8);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar12 = 1;\n  goto LAB_00011340;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "longlong lVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint local_fc;" type_identifier identifier ;) (declaration "uint local_f8;" type_identifier identifier ;) (declaration "ushort local_f4;" type_identifier identifier ;) (declaration "byte local_f0;" type_identifier identifier ;) (declaration "byte local_ef;" type_identifier identifier ;) (declaration "byte local_ee;" type_identifier identifier ;) (declaration "undefined1 *local_ec;" type_identifier (pointer_declarator "*local_ec" * identifier) ;) (declaration "undefined *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "undefined1 *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte local_c4 [2];" type_identifier (array_declarator "local_c4 [2]" identifier [ number_literal ]) ;) (declaration "uint local_c2;" type_identifier identifier ;) (declaration "uint local_be;" type_identifier identifier ;) (declaration "byte local_ba [2];" type_identifier (array_declarator "local_ba [2]" identifier [ number_literal ]) ;) (declaration "ushort local_b8;" type_identifier identifier ;) (declaration "undefined1 local_b6;" type_identifier identifier ;) (declaration "undefined1 local_b4 [64];" type_identifier (array_declarator "local_b4 [64]" identifier [ number_literal ]) ;) (declaration "undefined1 local_74 [80];" type_identifier (array_declarator "local_74 [80]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 *local_18;" type_identifier (pointer_declarator "*local_18" * identifier) ;) (expression_statement "iVar9 = param_2;" (assignment_expression "iVar9 = param_2" identifier = identifier) ;) (expression_statement "iVar12 = param_1;" (assignment_expression "iVar12 = param_1" identifier = identifier) ;) (expression_statement "puVar4 = PTR_optarg_00013ff8;" (assignment_expression "puVar4 = PTR_optarg_00013ff8" identifier = identifier) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "local_18 = &param_1;" (assignment_expression "local_18 = &param_1" identifier = (pointer_expression "&param_1" & identifier)) ;) (expression_statement "local_d4 = param_1;" (assignment_expression "local_d4 = param_1" identifier = identifier) ;) (expression_statement "local_d8 = param_2;" (assignment_expression "local_d8 = param_2" identifier = identifier) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);" (assignment_expression "local_e8 = (undefined *)((uint)local_e8 & 0xffffff00)" identifier = (cast_expression "(undefined *)((uint)local_e8 & 0xffffff00)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_e8 & 0xffffff00)" ( (binary_expression "(uint)local_e8 & 0xffffff00" (cast_expression "(uint)local_e8" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_e4 = (undefined1 *)0x0;" (assignment_expression "local_e4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "local_ef = 0;" (assignment_expression "local_ef = 0" identifier = number_literal) ;) (expression_statement "local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);" (assignment_expression "local_ec = (undefined1 *)((uint)local_ec & 0xffffff00)" identifier = (cast_expression "(undefined1 *)((uint)local_ec & 0xffffff00)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_ec & 0xffffff00)" ( (binary_expression "(uint)local_ec & 0xffffff00" (cast_expression "(uint)local_ec" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_ee = 0;" (assignment_expression "local_ee = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_f4 = 0;" (assignment_expression "local_f4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }" { (expression_statement "local_fc = (uint)((ulonglong)lVar15 >> 0x20);" (assignment_expression "local_fc = (uint)((ulonglong)lVar15 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar15 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar15 >> 0x20)" ( (binary_expression "(ulonglong)lVar15 >> 0x20" (cast_expression "(ulonglong)lVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_f8 = (uint)lVar15;" (assignment_expression "local_f8 = (uint)lVar15" identifier = (cast_expression "(uint)lVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);" (assignment_expression "iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8)" identifier = (call_expression "getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8)" identifier (argument_list "(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8)" ( identifier , identifier , (string_literal ""acC:fhoRSvVz:"" " string_content ") , (pointer_expression "&PTR_s_all_00014020" & identifier) , (pointer_expression "&local_c8" & identifier) )))) ;) (expression_statement "puVar3 = PTR_optind_00013fe4;" (assignment_expression "puVar3 = PTR_optind_00013fe4" identifier = identifier) ;) (if_statement "if (iVar6 == -1) break;" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (switch_statement "switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }" switch (parenthesized_expression "(iVar6)" ( identifier )) (compound_statement "{\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }" { (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;" case number_literal : (expression_statement "pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );" (call_expression "pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             )" identifier (argument_list "(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             )" ( (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );" (call_expression "pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             )" identifier (argument_list "(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             )" ( (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;)) (case_statement "default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;" default : (expression_statement "pcVar8 = "unrecognised option code 0x%x ??\n";" (assignment_expression "pcVar8 = "unrecognised option code 0x%x ??\n"" identifier = (string_literal ""unrecognised option code 0x%x ??\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000113b9;" goto statement_identifier ;)) (case_statement "case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;" case number_literal : (expression_statement "uVar7 = func_0x00011150(*(undefined4 *)puVar4);" (assignment_expression "uVar7 = func_0x00011150(*(undefined4 *)puVar4)" identifier = (call_expression "func_0x00011150(*(undefined4 *)puVar4)" identifier (argument_list "(*(undefined4 *)puVar4)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }" if (parenthesized_expression "(0xffff < uVar7)" ( (binary_expression "0xffff < uVar7" number_literal < identifier) )) (compound_statement "{\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }" { (expression_statement "pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");" (call_expression "pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n")" identifier (argument_list "("--count= expects an argument between 0 and 0xffff inclusive\n")" ( (string_literal ""--count= expects an argument between 0 and 0xffff inclusive\n"" " string_content escape_sequence ") ))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })) (expression_statement "local_f4 = (ushort)uVar7;" (assignment_expression "local_f4 = (ushort)uVar7" identifier = (cast_expression "(ushort)uVar7" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x52:" case number_literal :) (case_statement "case 0x61:\n      bVar2 = true;\n      break;" case number_literal : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;" case number_literal : (expression_statement "local_e0 = 0x10;" (assignment_expression "local_e0 = 0x10" identifier = number_literal) ;) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;" case number_literal : (expression_statement "local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);" (assignment_expression "local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1)" identifier = (cast_expression "(undefined *)CONCAT31(local_e8._1_3_,1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_e8._1_3_,1)" identifier (argument_list "(local_e8._1_3_,1)" ( (field_expression "local_e8._1_3_" identifier . field_identifier) , number_literal ))))) ;) (break_statement "break;" break ;)) (case_statement "case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;" case number_literal : (expression_statement "local_e0 = 1;" (assignment_expression "local_e0 = 1" identifier = number_literal) ;) (expression_statement "local_ee = 1;" (assignment_expression "local_ee = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;" case number_literal : (expression_statement "local_e0 = 2;" (assignment_expression "local_e0 = 2" identifier = number_literal) ;) (expression_statement "local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);" (assignment_expression "local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1)" identifier = (cast_expression "(undefined1 *)CONCAT31(local_ec._1_3_,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_ec._1_3_,1)" identifier (argument_list "(local_ec._1_3_,1)" ( (field_expression "local_ec._1_3_" identifier . field_identifier) , number_literal ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;" case number_literal : (expression_statement "local_e0 = 3;" (assignment_expression "local_e0 = 3" identifier = number_literal) ;) (expression_statement "local_ef = 1;" (assignment_expression "local_ef = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;" case number_literal : (expression_statement "local_e4 = local_e4 + 1;" (assignment_expression "local_e4 = local_e4 + 1" identifier = (binary_expression "local_e4 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }" case number_literal : (expression_statement "lVar15 = func_0x000110e0(*(undefined4 *)puVar4);" (assignment_expression "lVar15 = func_0x000110e0(*(undefined4 *)puVar4)" identifier = (call_expression "func_0x000110e0(*(undefined4 *)puVar4)" identifier (argument_list "(*(undefined4 *)puVar4)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }" if (parenthesized_expression "(lVar15 == -1)" ( (binary_expression "lVar15 == -1" identifier == number_literal) )) (compound_statement "{\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }" { (expression_statement "pr2serr("bad argument to \'--zone=ID\'\n");" (call_expression "pr2serr("bad argument to \'--zone=ID\'\n")" identifier (argument_list "("bad argument to \'--zone=ID\'\n")" ( (string_literal ""bad argument to \'--zone=ID\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }" statement_identifier : (while_statement "while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }" while (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }" { (expression_statement "puVar11 = (undefined1 *)FUN_00011b50();" (assignment_expression "puVar11 = (undefined1 *)FUN_00011b50()" identifier = (cast_expression "(undefined1 *)FUN_00011b50()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00011b50()" identifier (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);" statement_identifier : (expression_statement "pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);" (call_expression "pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11)" identifier (argument_list "("%s: out of memory\n",local_ec,puVar11,puVar11)" ( (string_literal ""%s: out of memory\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;)) (expression_statement "iVar12 = local_d4;" (assignment_expression "iVar12 = local_d4" identifier = identifier) ;) (labeled_statement "LAB_0001181c:\n          puVar19 = local_e4;" statement_identifier : (expression_statement "puVar19 = local_e4;" (assignment_expression "puVar19 = local_e4" identifier = identifier) ;)) (expression_statement "sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);" (call_expression "sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4)" identifier (argument_list "(iVar12,0x50,local_ec,local_e4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "puVar17 = local_ec;" (assignment_expression "puVar17 = local_ec" identifier = identifier) ;) (expression_statement "pr2serr("%s command: %s\n",local_e8,local_ec);" (call_expression "pr2serr("%s command: %s\n",local_e8,local_ec)" identifier (argument_list "("%s command: %s\n",local_e8,local_ec)" ( (string_literal ""%s command: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "puVar11 = local_ec;" (assignment_expression "puVar11 = local_ec" identifier = identifier) ;) (labeled_statement "LAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);" statement_identifier : (expression_statement "iVar9 = sg_cmds_close_device(local_d8);" (assignment_expression "iVar9 = sg_cmds_close_device(local_d8)" identifier = (call_expression "sg_cmds_close_device(local_d8)" identifier (argument_list "(local_d8)" ( identifier )))) ;)) (expression_statement "local_d4 = iVar12;" (assignment_expression "local_d4 = iVar12" identifier = identifier) ;) (if_statement "if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }" { (expression_statement "uVar10 = safe_strerror(-iVar9);" (assignment_expression "uVar10 = safe_strerror(-iVar9)" identifier = (call_expression "safe_strerror(-iVar9)" identifier (argument_list "(-iVar9)" ( (unary_expression "-iVar9" - identifier) )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar10,puVar17,puVar19);" (call_expression "pr2serr("close error: %s\n",uVar10,puVar17,puVar19)" identifier (argument_list "("close error: %s\n",uVar10,puVar17,puVar19)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }" statement_identifier : (if_statement "if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }" if (parenthesized_expression "((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0'))" ( (binary_expression "(local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')" (parenthesized_expression "(local_e4 == (undefined1 *)0x0)" ( (binary_expression "local_e4 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')" ( (comma_expression "cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0'" (assignment_expression "cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11)" identifier = (call_expression "sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11)" identifier (argument_list "("sg_zone failed: ",iVar12,puVar11,puVar11)" ( (string_literal ""sg_zone failed: "" " string_content ") , identifier , identifier , identifier )))) , (comma_expression "local_d4 = iVar12\n             , cVar5 == '\0'" (assignment_expression "local_d4 = iVar12" identifier = identifier) , (binary_expression "cVar5 == '\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 (iVar12 < 0) {\n            iVar12 = 99;\n          }" if (parenthesized_expression "(iVar12 < 0)" ( (binary_expression "iVar12 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar12 = 99;\n          }" { (expression_statement "iVar12 = 99;" (assignment_expression "iVar12 = 99" identifier = number_literal) ;) })) }))) (return_statement "return iVar12;" return identifier ;) }))) })) })) (expression_statement "puVar11 = (undefined1 *)0x0;" (assignment_expression "puVar11 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = *(int *)PTR_optind_00013fe4;" (assignment_expression "iVar6 = *(int *)PTR_optind_00013fe4" identifier = (pointer_expression "*(int *)PTR_optind_00013fe4" * (cast_expression "(int *)PTR_optind_00013fe4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }" if (parenthesized_expression "(iVar6 < iVar12)" ( (binary_expression "iVar6 < iVar12" identifier < identifier) )) (compound_statement "{\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }" { (expression_statement "puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);" (assignment_expression "puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4)" identifier = (pointer_expression "*(undefined1 **)(iVar9 + iVar6 * 4)" * (cast_expression "(undefined1 **)(iVar9 + iVar6 * 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + iVar6 * 4)" ( (binary_expression "iVar9 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)PTR_optind_00013fe4 = iVar6;" (assignment_expression "*(int *)PTR_optind_00013fe4 = iVar6" (pointer_expression "*(int *)PTR_optind_00013fe4" * (cast_expression "(int *)PTR_optind_00013fe4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }" if (parenthesized_expression "(iVar6 < iVar12)" ( (binary_expression "iVar6 < iVar12" identifier < identifier) )) (compound_statement "{\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }" { (expression_statement "uVar10 = 0xffffffff;" (assignment_expression "uVar10 = 0xffffffff" identifier = number_literal) ;) (do_statement "do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);" do (compound_statement "{\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      }" { (expression_statement "pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);" (call_expression "pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10)" identifier (argument_list "("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10)" ( (string_literal ""Unexpected extra argument: %s\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(iVar9 + iVar6 * 4)" * (cast_expression "(undefined4 *)(iVar9 + iVar6 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar6 * 4)" ( (binary_expression "iVar9 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) , identifier , identifier ))) ;) (expression_statement "iVar6 = *(int *)puVar3 + 1;" (assignment_expression "iVar6 = *(int *)puVar3 + 1" identifier = (binary_expression "*(int *)puVar3 + 1" (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "*(int *)puVar3 = iVar6;" (assignment_expression "*(int *)puVar3 = iVar6" (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar10 = extraout_EDX;" (assignment_expression "uVar10 = extraout_EDX" identifier = identifier) ;) }) while (parenthesized_expression "(iVar6 < iVar12)" ( (binary_expression "iVar6 < iVar12" identifier < identifier) )) ;) (goto_statement "goto LAB_000113c8;" goto statement_identifier ;) })) })) (if_statement "if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }" { (if_statement "if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }" if (parenthesized_expression "((char)local_e8 != '\0')" ( (binary_expression "(char)local_e8 != '\0'" (cast_expression "(char)local_e8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }" { (expression_statement "iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (assignment_expression "iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" identifier = (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 ") )))) ;) (labeled_statement "LAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);" statement_identifier : (expression_statement "pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);" (call_expression "pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6)" identifier (argument_list "("version: %s\n","1.12 20180628",iVar6,iVar6)" ( (string_literal ""version: %s\n"" " string_content escape_sequence ") , (string_literal ""1.12 20180628"" " string_content ") , identifier , identifier ))) ;)) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })) }) (else_clause "else if ((char)local_e8 != '\0') goto LAB_0001163b;" else (if_statement "if ((char)local_e8 != '\0') goto LAB_0001163b;" if (parenthesized_expression "((char)local_e8 != '\0')" ( (binary_expression "(char)local_e8 != '\0'" (cast_expression "(char)local_e8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001163b;" goto statement_identifier ;)))) (if_statement "if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }" if (parenthesized_expression "((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1)" ( (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff)" (cast_expression "(uint)local_ef" ( (type_descriptor "uint" type_identifier) ) identifier) + (parenthesized_expression "((uint)local_ec & 0xff)" ( (binary_expression "(uint)local_ec & 0xff" (cast_expression "(uint)local_ec" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) + (cast_expression "(uint)local_ee" ( (type_descriptor "uint" type_identifier) ) identifier)) + (cast_expression "(uint)local_f0" ( (type_descriptor "uint" type_identifier) ) identifier)) != number_literal) )) (compound_statement "{\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }" { (expression_statement "pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");" (call_expression "pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n")" identifier (argument_list "("one from the --close, --finish, --open and --sequentialize options must be given\n")" ( (string_literal ""one from the --close, --finish, --open and --sequentialize options must be given\n"" " string_content escape_sequence ") ))) ;) (expression_statement "pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           )" identifier (argument_list "(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           )" ( (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );" (call_expression "pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           )" identifier (argument_list "(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           )" ( (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar12 = 0x1f;" (assignment_expression "iVar12 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }" if (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }" { (expression_statement "local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];" (assignment_expression "local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0]" identifier = (subscript_expression "(&PTR_s_no_SA_0_00013e60)[local_e0]" (parenthesized_expression "(&PTR_s_no_SA_0_00013e60)" ( (pointer_expression "&PTR_s_no_SA_0_00013e60" & identifier) )) [ identifier ])) ;) (expression_statement "local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);" (assignment_expression "local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8)" identifier = (call_expression "sg_cmds_open_device(puVar11,0,local_e4,local_e8)" identifier (argument_list "(puVar11,0,local_e4,local_e8)" ( identifier , number_literal , identifier , identifier )))) ;) (expression_statement "local_d4 = -1;" (assignment_expression "local_d4 = -1" identifier = number_literal) ;) (if_statement "if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }" if (parenthesized_expression "(local_d8 < 0)" ( (binary_expression "local_d8 < 0" identifier < number_literal) )) (compound_statement "{\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }" { (if_statement "if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }" if (parenthesized_expression "(local_e4 != (undefined1 *)0x0)" ( (binary_expression "local_e4 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }" { (expression_statement "uVar10 = safe_strerror(-local_d8);" (assignment_expression "uVar10 = safe_strerror(-local_d8)" identifier = (call_expression "safe_strerror(-local_d8)" identifier (argument_list "(-local_d8)" ( (unary_expression "-local_d8" - identifier) )))) ;) (expression_statement "pr2serr("open error: %s: %s\n",puVar11,uVar10);" (call_expression "pr2serr("open error: %s: %s\n",puVar11,uVar10)" identifier (argument_list "("open error: %s: %s\n",puVar11,uVar10)" ( (string_literal ""open error: %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "iVar12 = sg_convert_errno(-local_d8);" (assignment_expression "iVar12 = sg_convert_errno(-local_d8)" identifier = (call_expression "sg_convert_errno(-local_d8)" identifier (argument_list "(-local_d8)" ( (unary_expression "-local_d8" - identifier) )))) ;) (goto_statement "goto LAB_0001160a;" goto statement_identifier ;) })) (expression_statement "pbVar13 = local_ba;" (assignment_expression "pbVar13 = local_ba" identifier = identifier) ;) (for_statement "for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }" for ( (assignment_expression "iVar12 = 6" identifier = number_literal) ; (binary_expression "iVar12 != 0" identifier != number_literal) ; (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ) (compound_statement "{\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }" { (expression_statement "*pbVar13 = 0;" (assignment_expression "*pbVar13 = 0" (pointer_expression "*pbVar13" * identifier) = number_literal) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_c4[0] = 0x94;" (assignment_expression "local_c4[0] = 0x94" (subscript_expression "local_c4[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_c4[1] = (undefined1)local_e0;" (assignment_expression "local_c4[1] = (undefined1)local_e0" (subscript_expression "local_c4[1]" identifier [ number_literal ]) = (cast_expression "(undefined1)local_e0" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;" (assignment_expression "local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18" identifier = (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18" (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8" (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8" (binary_expression "local_fc >> 0x18" identifier >> number_literal) | (binary_expression "(local_fc & 0xff0000) >> 8" (parenthesized_expression "(local_fc & 0xff0000)" ( (binary_expression "local_fc & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_fc & 0xff00) << 8" (parenthesized_expression "(local_fc & 0xff00)" ( (binary_expression "local_fc & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_fc << 0x18" identifier << number_literal))) ;) (expression_statement "local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;" (assignment_expression "local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18" identifier = (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18" (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8" (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8" (binary_expression "local_f8 >> 0x18" identifier >> number_literal) | (binary_expression "(local_f8 & 0xff0000) >> 8" (parenthesized_expression "(local_f8 & 0xff0000)" ( (binary_expression "local_f8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_f8 & 0xff00) << 8" (parenthesized_expression "(local_f8 & 0xff00)" ( (binary_expression "local_f8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_f8 << 0x18" identifier << number_literal))) ;) (expression_statement "local_b8 = local_f4 << 8 | local_f4 >> 8;" (assignment_expression "local_b8 = local_f4 << 8 | local_f4 >> 8" identifier = (binary_expression "local_f4 << 8 | local_f4 >> 8" (binary_expression "local_f4 << 8" identifier << number_literal) | (binary_expression "local_f4 >> 8" identifier >> number_literal))) ;) (if_statement "if (bVar2) {\n      local_b6 = 1;\n    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n      local_b6 = 1;\n    }" { (expression_statement "local_b6 = 1;" (assignment_expression "local_b6 = 1" identifier = number_literal) ;) })) (expression_statement "local_ec = local_74;" (assignment_expression "local_ec = local_74" identifier = identifier) ;) (expression_statement "uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);" (assignment_expression "uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec)" identifier = (call_expression "sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec)" identifier (argument_list "(0x94,local_e0,0xffffffff,0x40,local_ec)" ( number_literal , identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }" if (parenthesized_expression "(local_e4 != (undefined1 *)0x0)" ( (binary_expression "local_e4 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "pbVar13 = local_c4;" (assignment_expression "pbVar13 = local_c4" identifier = identifier) ;) (expression_statement "pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);" (call_expression "pr2serr("    %s cdb: ",local_ec,uVar10,uVar10)" identifier (argument_list "("    %s cdb: ",local_ec,uVar10,uVar10)" ( (string_literal ""    %s cdb: "" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "pcVar8 = "%02x ";" (assignment_expression "pcVar8 = "%02x "" identifier = (string_literal ""%02x "" " string_content ")) ;) (do_statement "do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);" do (compound_statement "{\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      }" { (expression_statement "uVar7 = (uint)pbVar13[iVar12];" (assignment_expression "uVar7 = (uint)pbVar13[iVar12]" identifier = (cast_expression "(uint)pbVar13[iVar12]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar13[iVar12]" identifier [ identifier ]))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "pcVar16 = pcVar8;" (assignment_expression "pcVar16 = pcVar8" identifier = identifier) ;) (expression_statement "pcVar18 = pcVar8;" (assignment_expression "pcVar18 = pcVar8" identifier = identifier) ;) (expression_statement "pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);" (assignment_expression "pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8)" identifier = (cast_expression "(char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "pr2serr("%02x ",uVar7,pcVar8,pcVar8)" identifier (argument_list "("%02x ",uVar7,pcVar8,pcVar8)" ( (string_literal ""%02x "" " string_content ") , identifier , identifier , identifier ))))) ;) }) while (parenthesized_expression "(iVar12 != 0x10)" ( (binary_expression "iVar12 != 0x10" identifier != number_literal) )) ;) (expression_statement "pr2serr("\n",uVar7,pcVar16,pcVar18);" (call_expression "pr2serr("\n",uVar7,pcVar16,pcVar18)" identifier (argument_list "("\n",uVar7,pcVar16,pcVar18)" ( (string_literal ""\n"" " escape_sequence ") , identifier , identifier , identifier ))) ;) })) (expression_statement "puVar11 = (undefined1 *)construct_scsi_pt_obj();" (assignment_expression "puVar11 = (undefined1 *)construct_scsi_pt_obj()" identifier = (cast_expression "(undefined1 *)construct_scsi_pt_obj()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "construct_scsi_pt_obj()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001193b;" goto statement_identifier ;)) (expression_statement "set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);" (call_expression "set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13)" identifier (argument_list "(puVar11,local_c4,0x10,pbVar13)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "set_scsi_pt_sense(puVar11,local_b4,0x40);" (call_expression "set_scsi_pt_sense(puVar11,local_b4,0x40)" identifier (argument_list "(puVar11,local_b4,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);" (assignment_expression "uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4)" identifier = (call_expression "do_scsi_pt(puVar11,local_d8,0x3c,local_e4)" identifier (argument_list "(puVar11,local_d8,0x3c,local_e4)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);" (assignment_expression "iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8)" identifier = (call_expression "sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8)" identifier (argument_list "(puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8)" ( identifier , (string_literal ""reset write pointer"" " string_content ") , identifier , number_literal , identifier , number_literal , identifier , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" if (parenthesized_expression "(iVar12 == -1)" ( (binary_expression "iVar12 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }" { (expression_statement "uVar10 = get_scsi_pt_os_err(puVar11);" (assignment_expression "uVar10 = get_scsi_pt_os_err(puVar11)" identifier = (call_expression "get_scsi_pt_os_err(puVar11)" identifier (argument_list "(puVar11)" ( identifier )))) ;) (expression_statement "iVar12 = sg_convert_errno(uVar10);" (assignment_expression "iVar12 = sg_convert_errno(uVar10)" identifier = (call_expression "sg_convert_errno(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) }) (else_clause "else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" else (if_statement "if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" if (parenthesized_expression "((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2))" ( (binary_expression "(iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)" (parenthesized_expression "(iVar12 != -2)" ( (binary_expression "iVar12 != -2" identifier != number_literal) )) || (parenthesized_expression "(iVar12 = local_c8, local_c8 - 0x14U < 2)" ( (comma_expression "iVar12 = local_c8, local_c8 - 0x14U < 2" (assignment_expression "iVar12 = local_c8" identifier = identifier) , (binary_expression "local_c8 - 0x14U < 2" (binary_expression "local_c8 - 0x14U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" { (expression_statement "destruct_scsi_pt_obj(puVar11);" (call_expression "destruct_scsi_pt_obj(puVar11)" identifier (argument_list "(puVar11)" ( identifier ))) ;) (goto_statement "goto LAB_000115ef;" goto statement_identifier ;) })))) (expression_statement "destruct_scsi_pt_obj(puVar11);" (call_expression "destruct_scsi_pt_obj(puVar11)" identifier (argument_list "(puVar11)" ( identifier ))) ;) (expression_statement "local_d4 = iVar12;" (assignment_expression "local_d4 = iVar12" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }" { (if_statement "if (iVar12 != 9) goto LAB_0001181c;" if (parenthesized_expression "(iVar12 != 9)" ( (binary_expression "iVar12 != 9" identifier != number_literal) )) (goto_statement "goto LAB_0001181c;" goto statement_identifier ;)) (expression_statement "puVar17 = extraout_ECX;" (assignment_expression "puVar17 = extraout_ECX" identifier = identifier) ;) (expression_statement "puVar19 = extraout_ECX;" (assignment_expression "puVar19 = extraout_ECX" identifier = identifier) ;) (expression_statement "pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);" (call_expression "pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX)" identifier (argument_list "("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX)" ( (string_literal ""%s command not supported\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00011856;" goto statement_identifier ;) })) (labeled_statement "LAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);" statement_identifier : (expression_statement "iVar12 = sg_cmds_close_device(local_d8);" (assignment_expression "iVar12 = sg_cmds_close_device(local_d8)" identifier = (call_expression "sg_cmds_close_device(local_d8)" identifier (argument_list "(local_d8)" ( identifier )))) ;)) (if_statement "if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }" if (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) )) (compound_statement "{\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001160a;" goto statement_identifier ;) })) (expression_statement "puVar11 = (undefined1 *)-iVar12;" (assignment_expression "puVar11 = (undefined1 *)-iVar12" identifier = (cast_expression "(undefined1 *)-iVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-iVar12" - identifier))) ;) (expression_statement "uVar10 = safe_strerror(puVar11);" (assignment_expression "uVar10 = safe_strerror(puVar11)" identifier = (call_expression "safe_strerror(puVar11)" identifier (argument_list "(puVar11)" ( identifier )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar10);" (call_expression "pr2serr("close error: %s\n",uVar10)" identifier (argument_list "("close error: %s\n",uVar10)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "iVar12 = sg_convert_errno(puVar11);" (assignment_expression "iVar12 = sg_convert_errno(puVar11)" identifier = (call_expression "sg_convert_errno(puVar11)" identifier (argument_list "(puVar11)" ( identifier )))) ;) (goto_statement "goto LAB_0001160a;" goto statement_identifier ;) })) (expression_statement "pcVar8 = "missing device name!\n";" (assignment_expression "pcVar8 = "missing device name!\n"" identifier = (string_literal ""missing device name!\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000113b9:\n  pr2serr(pcVar8);" statement_identifier : (expression_statement "pr2serr(pcVar8);" (call_expression "pr2serr(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;)) (labeled_statement "LAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );" statement_identifier : (expression_statement "pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );" (call_expression "pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         )" identifier (argument_list "(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         )" ( (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;)) (expression_statement "pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );" (call_expression "pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         )" identifier (argument_list "(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         )" ( (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00011340;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (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 ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence 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 ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) ;) (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)) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = BOOL) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (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) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 , 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 ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , IDENT )))) , (comma_expression (assignment_expression IDENT = 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 IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (return_statement return IDENT ;) }))) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 IDENT * LIT)) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content 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_literal " string_content ") , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence 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)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (unary_expression - IDENT) )))) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 (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 (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , IDENT ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence ") , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , LIT , IDENT , LIT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT - LIT) < LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (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 (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 string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence 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 ;) })))
(function_definition "int FUN_00011190(int param_1,int param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char cVar5;\n  int iVar6;\n  uint uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined1 *extraout_ECX;\n  int iVar12;\n  undefined4 extraout_EDX;\n  byte *pbVar13;\n  int in_GS_OFFSET;\n  byte bVar14;\n  longlong lVar15;\n  char *pcVar16;\n  undefined1 *puVar17;\n  char *pcVar18;\n  undefined1 *puVar19;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  undefined1 *local_ec;\n  undefined *local_e8;\n  undefined1 *local_e4;\n  int local_e0;\n  int local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  undefined1 local_74 [80];\n  int local_24;\n  undefined4 *local_18;\n  \n  iVar9 = param_2;\n  iVar12 = param_1;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar14 = 0;\n  local_18 = &param_1;\n  local_d4 = param_1;\n  local_d8 = param_2;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);\n  lVar15 = 0;\n  local_e0 = 0;\n  local_e4 = (undefined1 *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }\n  puVar11 = (undefined1 *)0x0;\n  iVar6 = *(int *)PTR_optind_00013fe4;\n  if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }\n  pcVar8 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar8);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar12 = 1;\n  goto LAB_00011340;\n}" (primitive_type "int") (function_declarator "FUN_00011190(int param_1,int param_2)" (identifier "FUN_00011190") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char cVar5;\n  int iVar6;\n  uint uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined1 *extraout_ECX;\n  int iVar12;\n  undefined4 extraout_EDX;\n  byte *pbVar13;\n  int in_GS_OFFSET;\n  byte bVar14;\n  longlong lVar15;\n  char *pcVar16;\n  undefined1 *puVar17;\n  char *pcVar18;\n  undefined1 *puVar19;\n  uint local_fc;\n  uint local_f8;\n  ushort local_f4;\n  byte local_f0;\n  byte local_ef;\n  byte local_ee;\n  undefined1 *local_ec;\n  undefined *local_e8;\n  undefined1 *local_e4;\n  int local_e0;\n  int local_d8;\n  int local_d4;\n  int local_c8;\n  byte local_c4 [2];\n  uint local_c2;\n  uint local_be;\n  byte local_ba [2];\n  ushort local_b8;\n  undefined1 local_b6;\n  undefined1 local_b4 [64];\n  undefined1 local_74 [80];\n  int local_24;\n  undefined4 *local_18;\n  \n  iVar9 = param_2;\n  iVar12 = param_1;\n  puVar4 = PTR_optarg_00013ff8;\n  bVar14 = 0;\n  local_18 = &param_1;\n  local_d4 = param_1;\n  local_d8 = param_2;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);\n  lVar15 = 0;\n  local_e0 = 0;\n  local_e4 = (undefined1 *)0x0;\n  bVar1 = false;\n  local_f0 = 0;\n  local_ef = 0;\n  local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);\n  local_ee = 0;\n  bVar2 = false;\n  local_f4 = 0;\n  while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }\n  puVar11 = (undefined1 *)0x0;\n  iVar6 = *(int *)PTR_optind_00013fe4;\n  if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }\n  if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;\n  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }\n  if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }\n  pcVar8 = "missing device name!\n";\nLAB_000113b9:\n  pr2serr(pcVar8);\nLAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );\n  pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );\n  iVar12 = 1;\n  goto LAB_00011340;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined1 *extraout_ECX;" (type_identifier "undefined1") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "longlong lVar15;" (type_identifier "longlong") (identifier "lVar15") (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "char *pcVar18;" (primitive_type "char") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "undefined1 *puVar19;" (type_identifier "undefined1") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "uint local_fc;" (type_identifier "uint") (identifier "local_fc") (; ";")) (declaration "uint local_f8;" (type_identifier "uint") (identifier "local_f8") (; ";")) (declaration "ushort local_f4;" (type_identifier "ushort") (identifier "local_f4") (; ";")) (declaration "byte local_f0;" (type_identifier "byte") (identifier "local_f0") (; ";")) (declaration "byte local_ef;" (type_identifier "byte") (identifier "local_ef") (; ";")) (declaration "byte local_ee;" (type_identifier "byte") (identifier "local_ee") (; ";")) (declaration "undefined1 *local_ec;" (type_identifier "undefined1") (pointer_declarator "*local_ec" (* "*") (identifier "local_ec")) (; ";")) (declaration "undefined *local_e8;" (type_identifier "undefined") (pointer_declarator "*local_e8" (* "*") (identifier "local_e8")) (; ";")) (declaration "undefined1 *local_e4;" (type_identifier "undefined1") (pointer_declarator "*local_e4" (* "*") (identifier "local_e4")) (; ";")) (declaration "int local_e0;" (primitive_type "int") (identifier "local_e0") (; ";")) (declaration "int local_d8;" (primitive_type "int") (identifier "local_d8") (; ";")) (declaration "int local_d4;" (primitive_type "int") (identifier "local_d4") (; ";")) (declaration "int local_c8;" (primitive_type "int") (identifier "local_c8") (; ";")) (declaration "byte local_c4 [2];" (type_identifier "byte") (array_declarator "local_c4 [2]" (identifier "local_c4") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "uint local_c2;" (type_identifier "uint") (identifier "local_c2") (; ";")) (declaration "uint local_be;" (type_identifier "uint") (identifier "local_be") (; ";")) (declaration "byte local_ba [2];" (type_identifier "byte") (array_declarator "local_ba [2]" (identifier "local_ba") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "ushort local_b8;" (type_identifier "ushort") (identifier "local_b8") (; ";")) (declaration "undefined1 local_b6;" (type_identifier "undefined1") (identifier "local_b6") (; ";")) (declaration "undefined1 local_b4 [64];" (type_identifier "undefined1") (array_declarator "local_b4 [64]" (identifier "local_b4") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "undefined1 local_74 [80];" (type_identifier "undefined1") (array_declarator "local_74 [80]" (identifier "local_74") ([ "[") (number_literal "80") (] "]")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "undefined4 *local_18;" (type_identifier "undefined4") (pointer_declarator "*local_18" (* "*") (identifier "local_18")) (; ";")) (expression_statement "iVar9 = param_2;" (assignment_expression "iVar9 = param_2" (identifier "iVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar12 = param_1;" (assignment_expression "iVar12 = param_1" (identifier "iVar12") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar4 = PTR_optarg_00013ff8;" (assignment_expression "puVar4 = PTR_optarg_00013ff8" (identifier "puVar4") (= "=") (identifier "PTR_optarg_00013ff8")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_18 = &param_1;" (assignment_expression "local_18 = &param_1" (identifier "local_18") (= "=") (pointer_expression "&param_1" (& "&") (identifier "param_1"))) (; ";")) (expression_statement "local_d4 = param_1;" (assignment_expression "local_d4 = param_1" (identifier "local_d4") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_d8 = param_2;" (assignment_expression "local_d8 = param_2" (identifier "local_d8") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);" (assignment_expression "local_e8 = (undefined *)((uint)local_e8 & 0xffffff00)" (identifier "local_e8") (= "=") (cast_expression "(undefined *)((uint)local_e8 & 0xffffff00)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)local_e8 & 0xffffff00)" (( "(") (binary_expression "(uint)local_e8 & 0xffffff00" (cast_expression "(uint)local_e8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e8")) (& "&") (number_literal "0xffffff00")) () ")")))) (; ";")) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" (identifier "lVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" (identifier "local_e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_e4 = (undefined1 *)0x0;" (assignment_expression "local_e4 = (undefined1 *)0x0" (identifier "local_e4") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" (identifier "local_f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ef = 0;" (assignment_expression "local_ef = 0" (identifier "local_ef") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);" (assignment_expression "local_ec = (undefined1 *)((uint)local_ec & 0xffffff00)" (identifier "local_ec") (= "=") (cast_expression "(undefined1 *)((uint)local_ec & 0xffffff00)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)local_ec & 0xffffff00)" (( "(") (binary_expression "(uint)local_ec & 0xffffff00" (cast_expression "(uint)local_ec" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_ec")) (& "&") (number_literal "0xffffff00")) () ")")))) (; ";")) (expression_statement "local_ee = 0;" (assignment_expression "local_ee = 0" (identifier "local_ee") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "local_f4 = 0;" (assignment_expression "local_f4 = 0" (identifier "local_f4") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    local_fc = (uint)((ulonglong)lVar15 >> 0x20);\n    local_f8 = (uint)lVar15;\n    local_c8 = 0;\n    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);\n    puVar3 = PTR_optind_00013fe4;\n    if (iVar6 == -1) break;\n    switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }\n  }" ({ "{") (expression_statement "local_fc = (uint)((ulonglong)lVar15 >> 0x20);" (assignment_expression "local_fc = (uint)((ulonglong)lVar15 >> 0x20)" (identifier "local_fc") (= "=") (call_expression "(uint)((ulonglong)lVar15 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar15 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar15 >> 0x20" (cast_expression "(ulonglong)lVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar15")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_f8 = (uint)lVar15;" (assignment_expression "local_f8 = (uint)lVar15" (identifier "local_f8") (= "=") (cast_expression "(uint)lVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar15"))) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);" (assignment_expression "iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8)" (identifier "iVar6") (= "=") (call_expression "getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8)" (identifier "getopt_long") (argument_list "(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8)" (( "(") (identifier "iVar12") (, ",") (identifier "iVar9") (, ",") (string_literal ""acC:fhoRSvVz:"" (" """) (string_content "acC:fhoRSvVz:") (" """)) (, ",") (pointer_expression "&PTR_s_all_00014020" (& "&") (identifier "PTR_s_all_00014020")) (, ",") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) () ")")))) (; ";")) (expression_statement "puVar3 = PTR_optind_00013fe4;" (assignment_expression "puVar3 = PTR_optind_00013fe4" (identifier "puVar3") (= "=") (identifier "PTR_optind_00013fe4")) (; ";")) (if_statement "if (iVar6 == -1) break;" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (switch_statement "switch(iVar6) {\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }" (switch "switch") (parenthesized_expression "(iVar6)" (( "(") (identifier "iVar6") () ")")) (compound_statement "{\n    case 0x3f:\n    case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;\n    default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;\n    case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;\n    case 0x52:\n    case 0x61:\n      bVar2 = true;\n      break;\n    case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;\n    case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;\n    case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;\n    case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;\n    case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;\n    case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;\n    case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }\n    }" ({ "{") (case_statement "case 0x3f:" (case "case") (number_literal "0x3f") (: ":")) (case_statement "case 0x68:\n      pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );\n      pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );\n      iVar12 = 0;\n      goto LAB_00011340;" (case "case") (number_literal "0x68") (: ":") (expression_statement "pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             );" (call_expression "pr2serr(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             )" (identifier "pr2serr") (argument_list "(\n             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n             )" (( "(") (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" (" """) (string_content "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]") (escape_sequence "\n") (string_content "                [--open] [--sequentialize] [--verbose] [--version]") (escape_sequence "\n") (string_content "                [--zone=ID] DEVICE") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             );" (call_expression "pr2serr(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             )" (identifier "pr2serr") (argument_list "(\n             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n             )" (( "(") (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"" (" """) (string_content "  where:") (escape_sequence "\n") (string_content "    --all|-a           sets the ALL flag in the cdb") (escape_sequence "\n") (string_content "    --close|-c         issue CLOSE ZONE command") (escape_sequence "\n") (string_content "    --count=ZC|-C ZC    set zone count field (def: 0)") (escape_sequence "\n") (string_content "    --finish|-f        issue FINISH ZONE command") (escape_sequence "\n") (string_content "    --help|-h          print out usage message") (escape_sequence "\n") (string_content "    --open|-o          issue OPEN ZONE command") (escape_sequence "\n") (string_content "    --sequentialize|-S    issue SEQUENTIALIZE ZONE command") (escape_sequence "\n") (string_content "    --verbose|-v       increase verbosity") (escape_sequence "\n") (string_content "    --version|-V       print version string and exit") (escape_sequence "\n") (string_content "    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)") (escape_sequence "\n") (escape_sequence "\n") (string_content "Performs a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE") (escape_sequence "\n") (string_content "ZONE command. ID is decimal by default, for hex use a leading ") (escape_sequence "\'") (string_content "0x") (escape_sequence "\'") (escape_sequence "\n") (string_content "or a trailing ") (escape_sequence "\'") (string_content "h") (escape_sequence "\'") (string_content ". Either --close, --finish, --open or") (escape_sequence "\n") (string_content "--sequentialize option needs to be given.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00011340;" (goto "goto") (statement_identifier "LAB_00011340") (; ";"))) (case_statement "default:\n      pcVar8 = "unrecognised option code 0x%x ??\n";\n      goto LAB_000113b9;" (default "default") (: ":") (expression_statement "pcVar8 = "unrecognised option code 0x%x ??\n";" (assignment_expression "pcVar8 = "unrecognised option code 0x%x ??\n"" (identifier "pcVar8") (= "=") (string_literal ""unrecognised option code 0x%x ??\n"" (" """) (string_content "unrecognised option code 0x%x ??") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_000113b9;" (goto "goto") (statement_identifier "LAB_000113b9") (; ";"))) (case_statement "case 0x43:\n      uVar7 = func_0x00011150(*(undefined4 *)puVar4);\n      if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }\n      local_f4 = (ushort)uVar7;\n      break;" (case "case") (number_literal "0x43") (: ":") (expression_statement "uVar7 = func_0x00011150(*(undefined4 *)puVar4);" (assignment_expression "uVar7 = func_0x00011150(*(undefined4 *)puVar4)" (identifier "uVar7") (= "=") (call_expression "func_0x00011150(*(undefined4 *)puVar4)" (identifier "func_0x00011150") (argument_list "(*(undefined4 *)puVar4)" (( "(") (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")))) (; ";")) (if_statement "if (0xffff < uVar7) {\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }" (if "if") (parenthesized_expression "(0xffff < uVar7)" (( "(") (binary_expression "0xffff < uVar7" (number_literal "0xffff") (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");\n        iVar12 = 1;\n        goto LAB_00011340;\n      }" ({ "{") (expression_statement "pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");" (call_expression "pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n")" (identifier "pr2serr") (argument_list "("--count= expects an argument between 0 and 0xffff inclusive\n")" (( "(") (string_literal ""--count= expects an argument between 0 and 0xffff inclusive\n"" (" """) (string_content "--count= expects an argument between 0 and 0xffff inclusive") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00011340;" (goto "goto") (statement_identifier "LAB_00011340") (; ";")) (} "}"))) (expression_statement "local_f4 = (ushort)uVar7;" (assignment_expression "local_f4 = (ushort)uVar7" (identifier "local_f4") (= "=") (cast_expression "(ushort)uVar7" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar7"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x52:" (case "case") (number_literal "0x52") (: ":")) (case_statement "case 0x61:\n      bVar2 = true;\n      break;" (case "case") (number_literal "0x61") (: ":") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x53:\n      local_e0 = 0x10;\n      local_f0 = 1;\n      break;" (case "case") (number_literal "0x53") (: ":") (expression_statement "local_e0 = 0x10;" (assignment_expression "local_e0 = 0x10" (identifier "local_e0") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" (identifier "local_f0") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x56:\n      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);\n      break;" (case "case") (number_literal "0x56") (: ":") (expression_statement "local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);" (assignment_expression "local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1)" (identifier "local_e8") (= "=") (cast_expression "(undefined *)CONCAT31(local_e8._1_3_,1)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_e8._1_3_,1)" (identifier "CONCAT31") (argument_list "(local_e8._1_3_,1)" (( "(") (field_expression "local_e8._1_3_" (identifier "local_e8") (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "1") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 99:\n      local_e0 = 1;\n      local_ee = 1;\n      break;" (case "case") (number_literal "99") (: ":") (expression_statement "local_e0 = 1;" (assignment_expression "local_e0 = 1" (identifier "local_e0") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_ee = 1;" (assignment_expression "local_ee = 1" (identifier "local_ee") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x66:\n      local_e0 = 2;\n      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);\n      break;" (case "case") (number_literal "0x66") (: ":") (expression_statement "local_e0 = 2;" (assignment_expression "local_e0 = 2" (identifier "local_e0") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);" (assignment_expression "local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1)" (identifier "local_ec") (= "=") (cast_expression "(undefined1 *)CONCAT31(local_ec._1_3_,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_ec._1_3_,1)" (identifier "CONCAT31") (argument_list "(local_ec._1_3_,1)" (( "(") (field_expression "local_ec._1_3_" (identifier "local_ec") (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "1") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x6f:\n      local_e0 = 3;\n      local_ef = 1;\n      break;" (case "case") (number_literal "0x6f") (: ":") (expression_statement "local_e0 = 3;" (assignment_expression "local_e0 = 3" (identifier "local_e0") (= "=") (number_literal "3")) (; ";")) (expression_statement "local_ef = 1;" (assignment_expression "local_ef = 1" (identifier "local_ef") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x76:\n      local_e4 = local_e4 + 1;\n      bVar1 = true;\n      break;" (case "case") (number_literal "0x76") (: ":") (expression_statement "local_e4 = local_e4 + 1;" (assignment_expression "local_e4 = local_e4 + 1" (identifier "local_e4") (= "=") (binary_expression "local_e4 + 1" (identifier "local_e4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x7a:\n      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);\n      if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }" (case "case") (number_literal "0x7a") (: ":") (expression_statement "lVar15 = func_0x000110e0(*(undefined4 *)puVar4);" (assignment_expression "lVar15 = func_0x000110e0(*(undefined4 *)puVar4)" (identifier "lVar15") (= "=") (call_expression "func_0x000110e0(*(undefined4 *)puVar4)" (identifier "func_0x000110e0") (argument_list "(*(undefined4 *)puVar4)" (( "(") (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")))) (; ";")) (if_statement "if (lVar15 == -1) {\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }" (if "if") (parenthesized_expression "(lVar15 == -1)" (( "(") (binary_expression "lVar15 == -1" (identifier "lVar15") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        pr2serr("bad argument to \'--zone=ID\'\n");\n        iVar12 = 1;\nLAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }\n        return iVar12;\n      }" ({ "{") (expression_statement "pr2serr("bad argument to \'--zone=ID\'\n");" (call_expression "pr2serr("bad argument to \'--zone=ID\'\n")" (identifier "pr2serr") (argument_list "("bad argument to \'--zone=ID\'\n")" (( "(") (string_literal ""bad argument to \'--zone=ID\'\n"" (" """) (string_content "bad argument to ") (escape_sequence "\'") (string_content "--zone=ID") (escape_sequence "\'") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00011340:\n        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }" (statement_identifier "LAB_00011340") (: ":") (while_statement "while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }" (while "while") (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n          puVar11 = (undefined1 *)FUN_00011b50();\nLAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);\n          iVar12 = local_d4;\nLAB_0001181c:\n          puVar19 = local_e4;\n          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);\n          puVar17 = local_ec;\n          pr2serr("%s command: %s\n",local_e8,local_ec);\n          puVar11 = local_ec;\nLAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);\n          local_d4 = iVar12;\n          if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }\nLAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }\n          if (iVar12 < 0) {\n            iVar12 = 99;\n          }\n        }" ({ "{") (expression_statement "puVar11 = (undefined1 *)FUN_00011b50();" (assignment_expression "puVar11 = (undefined1 *)FUN_00011b50()" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)FUN_00011b50()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00011b50()" (identifier "FUN_00011b50") (argument_list "()" (( "(") () ")"))))) (; ";")) (labeled_statement "LAB_0001193b:\n          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);" (statement_identifier "LAB_0001193b") (: ":") (expression_statement "pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);" (call_expression "pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11)" (identifier "pr2serr") (argument_list "("%s: out of memory\n",local_ec,puVar11,puVar11)" (( "(") (string_literal ""%s: out of memory\n"" (" """) (string_content "%s: out of memory") (escape_sequence "\n") (" """)) (, ",") (identifier "local_ec") (, ",") (identifier "puVar11") (, ",") (identifier "puVar11") () ")"))) (; ";"))) (expression_statement "iVar12 = local_d4;" (assignment_expression "iVar12 = local_d4" (identifier "iVar12") (= "=") (identifier "local_d4")) (; ";")) (labeled_statement "LAB_0001181c:\n          puVar19 = local_e4;" (statement_identifier "LAB_0001181c") (: ":") (expression_statement "puVar19 = local_e4;" (assignment_expression "puVar19 = local_e4" (identifier "puVar19") (= "=") (identifier "local_e4")) (; ";"))) (expression_statement "sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);" (call_expression "sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4)" (identifier "sg_get_category_sense_str") (argument_list "(iVar12,0x50,local_ec,local_e4)" (( "(") (identifier "iVar12") (, ",") (number_literal "0x50") (, ",") (identifier "local_ec") (, ",") (identifier "local_e4") () ")"))) (; ";")) (expression_statement "puVar17 = local_ec;" (assignment_expression "puVar17 = local_ec" (identifier "puVar17") (= "=") (identifier "local_ec")) (; ";")) (expression_statement "pr2serr("%s command: %s\n",local_e8,local_ec);" (call_expression "pr2serr("%s command: %s\n",local_e8,local_ec)" (identifier "pr2serr") (argument_list "("%s command: %s\n",local_e8,local_ec)" (( "(") (string_literal ""%s command: %s\n"" (" """) (string_content "%s command: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "local_e8") (, ",") (identifier "local_ec") () ")"))) (; ";")) (expression_statement "puVar11 = local_ec;" (assignment_expression "puVar11 = local_ec" (identifier "puVar11") (= "=") (identifier "local_ec")) (; ";")) (labeled_statement "LAB_00011856:\n          iVar9 = sg_cmds_close_device(local_d8);" (statement_identifier "LAB_00011856") (: ":") (expression_statement "iVar9 = sg_cmds_close_device(local_d8);" (assignment_expression "iVar9 = sg_cmds_close_device(local_d8)" (identifier "iVar9") (= "=") (call_expression "sg_cmds_close_device(local_d8)" (identifier "sg_cmds_close_device") (argument_list "(local_d8)" (( "(") (identifier "local_d8") () ")")))) (; ";"))) (expression_statement "local_d4 = iVar12;" (assignment_expression "local_d4 = iVar12" (identifier "local_d4") (= "=") (identifier "iVar12")) (; ";")) (if_statement "if (iVar9 < 0) {\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }" (if "if") (parenthesized_expression "(iVar9 < 0)" (( "(") (binary_expression "iVar9 < 0" (identifier "iVar9") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar10 = safe_strerror(-iVar9);\n            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);\n          }" ({ "{") (expression_statement "uVar10 = safe_strerror(-iVar9);" (assignment_expression "uVar10 = safe_strerror(-iVar9)" (identifier "uVar10") (= "=") (call_expression "safe_strerror(-iVar9)" (identifier "safe_strerror") (argument_list "(-iVar9)" (( "(") (unary_expression "-iVar9" (- "-") (identifier "iVar9")) () ")")))) (; ";")) (expression_statement "pr2serr("close error: %s\n",uVar10,puVar17,puVar19);" (call_expression "pr2serr("close error: %s\n",uVar10,puVar17,puVar19)" (identifier "pr2serr") (argument_list "("close error: %s\n",uVar10,puVar17,puVar19)" (( "(") (string_literal ""close error: %s\n"" (" """) (string_content "close error: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar10") (, ",") (identifier "puVar17") (, ",") (identifier "puVar19") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001160a:\n          if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }" (statement_identifier "LAB_0001160a") (: ":") (if_statement "if ((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')) {\n            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n          }" (if "if") (parenthesized_expression "((local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0'))" (( "(") (binary_expression "(local_e4 == (undefined1 *)0x0) &&\n             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')" (parenthesized_expression "(local_e4 == (undefined1 *)0x0)" (( "(") (binary_expression "local_e4 == (undefined1 *)0x0" (identifier "local_e4") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0')" (( "(") (comma_expression "cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12\n             , cVar5 == '\0'" (assignment_expression "cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11)" (identifier "cVar5") (= "=") (call_expression "sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11)" (identifier "sg_if_can2stderr") (argument_list "("sg_zone failed: ",iVar12,puVar11,puVar11)" (( "(") (string_literal ""sg_zone failed: "" (" """) (string_content "sg_zone failed: ") (" """)) (, ",") (identifier "iVar12") (, ",") (identifier "puVar11") (, ",") (identifier "puVar11") () ")")))) (, ",") (comma_expression "local_d4 = iVar12\n             , cVar5 == '\0'" (assignment_expression "local_d4 = iVar12" (identifier "local_d4") (= "=") (identifier "iVar12")) (, ",") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (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 (iVar12 < 0) {\n            iVar12 = 99;\n          }" (if "if") (parenthesized_expression "(iVar12 < 0)" (( "(") (binary_expression "iVar12 < 0" (identifier "iVar12") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            iVar12 = 99;\n          }" ({ "{") (expression_statement "iVar12 = 99;" (assignment_expression "iVar12 = 99" (identifier "iVar12") (= "=") (number_literal "99")) (; ";")) (} "}"))) (} "}")))) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "puVar11 = (undefined1 *)0x0;" (assignment_expression "puVar11 = (undefined1 *)0x0" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar6 = *(int *)PTR_optind_00013fe4;" (assignment_expression "iVar6 = *(int *)PTR_optind_00013fe4" (identifier "iVar6") (= "=") (pointer_expression "*(int *)PTR_optind_00013fe4" (* "*") (cast_expression "(int *)PTR_optind_00013fe4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optind_00013fe4")))) (; ";")) (if_statement "if (iVar6 < iVar12) {\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }" (if "if") (parenthesized_expression "(iVar6 < iVar12)" (( "(") (binary_expression "iVar6 < iVar12" (identifier "iVar6") (< "<") (identifier "iVar12")) () ")")) (compound_statement "{\n    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);\n    iVar6 = iVar6 + 1;\n    *(int *)PTR_optind_00013fe4 = iVar6;\n    if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }\n  }" ({ "{") (expression_statement "puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);" (assignment_expression "puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined1 **)(iVar9 + iVar6 * 4)" (* "*") (cast_expression "(undefined1 **)(iVar9 + iVar6 * 4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + iVar6 * 4)" (( "(") (binary_expression "iVar9 + iVar6 * 4" (identifier "iVar9") (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)PTR_optind_00013fe4 = iVar6;" (assignment_expression "*(int *)PTR_optind_00013fe4 = iVar6" (pointer_expression "*(int *)PTR_optind_00013fe4" (* "*") (cast_expression "(int *)PTR_optind_00013fe4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optind_00013fe4"))) (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (iVar6 < iVar12) {\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }" (if "if") (parenthesized_expression "(iVar6 < iVar12)" (( "(") (binary_expression "iVar6 < iVar12" (identifier "iVar6") (< "<") (identifier "iVar12")) () ")")) (compound_statement "{\n      uVar10 = 0xffffffff;\n      do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);\n      goto LAB_000113c8;\n    }" ({ "{") (expression_statement "uVar10 = 0xffffffff;" (assignment_expression "uVar10 = 0xffffffff" (identifier "uVar10") (= "=") (number_literal "0xffffffff")) (; ";")) (do_statement "do {\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      } while (iVar6 < iVar12);" (do "do") (compound_statement "{\n        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);\n        iVar6 = *(int *)puVar3 + 1;\n        *(int *)puVar3 = iVar6;\n        uVar10 = extraout_EDX;\n      }" ({ "{") (expression_statement "pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);" (call_expression "pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10)" (identifier "pr2serr") (argument_list "("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10)" (( "(") (string_literal ""Unexpected extra argument: %s\n"" (" """) (string_content "Unexpected extra argument: %s") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*(undefined4 *)(iVar9 + iVar6 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar9 + iVar6 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + iVar6 * 4)" (( "(") (binary_expression "iVar9 + iVar6 * 4" (identifier "iVar9") (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")")))) (, ",") (identifier "uVar10") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "iVar6 = *(int *)puVar3 + 1;" (assignment_expression "iVar6 = *(int *)puVar3 + 1" (identifier "iVar6") (= "=") (binary_expression "*(int *)puVar3 + 1" (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)puVar3 = iVar6;" (assignment_expression "*(int *)puVar3 = iVar6" (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "uVar10 = extraout_EDX;" (assignment_expression "uVar10 = extraout_EDX" (identifier "uVar10") (= "=") (identifier "extraout_EDX")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 < iVar12)" (( "(") (binary_expression "iVar6 < iVar12" (identifier "iVar6") (< "<") (identifier "iVar12")) () ")")) (; ";")) (goto_statement "goto LAB_000113c8;" (goto "goto") (statement_identifier "LAB_000113c8") (; ";")) (} "}"))) (} "}"))) (if_statement "if (bVar1) {\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }\n  else if ((char)local_e8 != '\0') goto LAB_0001163b;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n    if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }\n  }" ({ "{") (if_statement "if ((char)local_e8 != '\0') {\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }" (if "if") (parenthesized_expression "((char)local_e8 != '\0')" (( "(") (binary_expression "(char)local_e8 != '\0'" (cast_expression "(char)local_e8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_e8")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\nLAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);\n      iVar12 = 0;\n      goto LAB_00011340;\n    }" ({ "{") (expression_statement "iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (assignment_expression "iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" (identifier "iVar6") (= "=") (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") (" """)) () ")")))) (; ";")) (labeled_statement "LAB_0001163b:\n      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);" (statement_identifier "LAB_0001163b") (: ":") (expression_statement "pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);" (call_expression "pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6)" (identifier "pr2serr") (argument_list "("version: %s\n","1.12 20180628",iVar6,iVar6)" (( "(") (string_literal ""version: %s\n"" (" """) (string_content "version: %s") (escape_sequence "\n") (" """)) (, ",") (string_literal ""1.12 20180628"" (" """) (string_content "1.12 20180628") (" """)) (, ",") (identifier "iVar6") (, ",") (identifier "iVar6") () ")"))) (; ";"))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00011340;" (goto "goto") (statement_identifier "LAB_00011340") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((char)local_e8 != '\0') goto LAB_0001163b;" (else "else") (if_statement "if ((char)local_e8 != '\0') goto LAB_0001163b;" (if "if") (parenthesized_expression "((char)local_e8 != '\0')" (( "(") (binary_expression "(char)local_e8 != '\0'" (cast_expression "(char)local_e8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_e8")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001163b;" (goto "goto") (statement_identifier "LAB_0001163b") (; ";"))))) (if_statement "if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }" (if "if") (parenthesized_expression "((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1)" (( "(") (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee" (binary_expression "(uint)local_ef + ((uint)local_ec & 0xff)" (cast_expression "(uint)local_ef" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_ef")) (+ "+") (parenthesized_expression "((uint)local_ec & 0xff)" (( "(") (binary_expression "(uint)local_ec & 0xff" (cast_expression "(uint)local_ec" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_ec")) (& "&") (number_literal "0xff")) () ")"))) (+ "+") (cast_expression "(uint)local_ee" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_ee"))) (+ "+") (cast_expression "(uint)local_f0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_f0"))) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");\n    pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );\n    pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );\n    iVar12 = 0x1f;\n    goto LAB_00011340;\n  }" ({ "{") (expression_statement "pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");" (call_expression "pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n")" (identifier "pr2serr") (argument_list "("one from the --close, --finish, --open and --sequentialize options must be given\n")" (( "(") (string_literal ""one from the --close, --finish, --open and --sequentialize options must be given\n"" (" """) (string_content "one from the --close, --finish, --open and --sequentialize options must be given") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           )" (identifier "pr2serr") (argument_list "(\n           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n           )" (( "(") (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" (" """) (string_content "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]") (escape_sequence "\n") (string_content "                [--open] [--sequentialize] [--verbose] [--version]") (escape_sequence "\n") (string_content "                [--zone=ID] DEVICE") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           );" (call_expression "pr2serr(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           )" (identifier "pr2serr") (argument_list "(\n           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n           )" (( "(") (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"" (" """) (string_content "  where:") (escape_sequence "\n") (string_content "    --all|-a           sets the ALL flag in the cdb") (escape_sequence "\n") (string_content "    --close|-c         issue CLOSE ZONE command") (escape_sequence "\n") (string_content "    --count=ZC|-C ZC    set zone count field (def: 0)") (escape_sequence "\n") (string_content "    --finish|-f        issue FINISH ZONE command") (escape_sequence "\n") (string_content "    --help|-h          print out usage message") (escape_sequence "\n") (string_content "    --open|-o          issue OPEN ZONE command") (escape_sequence "\n") (string_content "    --sequentialize|-S    issue SEQUENTIALIZE ZONE command") (escape_sequence "\n") (string_content "    --verbose|-v       increase verbosity") (escape_sequence "\n") (string_content "    --version|-V       print version string and exit") (escape_sequence "\n") (string_content "    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)") (escape_sequence "\n") (escape_sequence "\n") (string_content "Performs a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE") (escape_sequence "\n") (string_content "ZONE command. ID is decimal by default, for hex use a leading ") (escape_sequence "\'") (string_content "0x") (escape_sequence "\'") (escape_sequence "\n") (string_content "or a trailing ") (escape_sequence "\'") (string_content "h") (escape_sequence "\'") (string_content ". Either --close, --finish, --open or") (escape_sequence "\n") (string_content "--sequentialize option needs to be given.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "iVar12 = 0x1f;" (assignment_expression "iVar12 = 0x1f" (identifier "iVar12") (= "=") (number_literal "0x1f")) (; ";")) (goto_statement "goto LAB_00011340;" (goto "goto") (statement_identifier "LAB_00011340") (; ";")) (} "}"))) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }" (if "if") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];\n    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);\n    local_d4 = -1;\n    if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }\n    pbVar13 = local_ba;\n    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }\n    local_c4[0] = 0x94;\n    local_c4[1] = (undefined1)local_e0;\n    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;\n    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;\n    local_b8 = local_f4 << 8 | local_f4 >> 8;\n    if (bVar2) {\n      local_b6 = 1;\n    }\n    local_ec = local_74;\n    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);\n    if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }\n    puVar11 = (undefined1 *)construct_scsi_pt_obj();\n    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;\n    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);\n    set_scsi_pt_sense(puVar11,local_b4,0x40);\n    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);\n    iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);\n    if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }\n    destruct_scsi_pt_obj(puVar11);\n    local_d4 = iVar12;\n    if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }\nLAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);\n    if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }\n    puVar11 = (undefined1 *)-iVar12;\n    uVar10 = safe_strerror(puVar11);\n    pr2serr("close error: %s\n",uVar10);\n    iVar12 = sg_convert_errno(puVar11);\n    goto LAB_0001160a;\n  }" ({ "{") (expression_statement "local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];" (assignment_expression "local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0]" (identifier "local_e8") (= "=") (subscript_expression "(&PTR_s_no_SA_0_00013e60)[local_e0]" (parenthesized_expression "(&PTR_s_no_SA_0_00013e60)" (( "(") (pointer_expression "&PTR_s_no_SA_0_00013e60" (& "&") (identifier "PTR_s_no_SA_0_00013e60")) () ")")) ([ "[") (identifier "local_e0") (] "]"))) (; ";")) (expression_statement "local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);" (assignment_expression "local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8)" (identifier "local_d8") (= "=") (call_expression "sg_cmds_open_device(puVar11,0,local_e4,local_e8)" (identifier "sg_cmds_open_device") (argument_list "(puVar11,0,local_e4,local_e8)" (( "(") (identifier "puVar11") (, ",") (number_literal "0") (, ",") (identifier "local_e4") (, ",") (identifier "local_e8") () ")")))) (; ";")) (expression_statement "local_d4 = -1;" (assignment_expression "local_d4 = -1" (identifier "local_d4") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (local_d8 < 0) {\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }" (if "if") (parenthesized_expression "(local_d8 < 0)" (( "(") (binary_expression "local_d8 < 0" (identifier "local_d8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }\n      iVar12 = sg_convert_errno(-local_d8);\n      goto LAB_0001160a;\n    }" ({ "{") (if_statement "if (local_e4 != (undefined1 *)0x0) {\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }" (if "if") (parenthesized_expression "(local_e4 != (undefined1 *)0x0)" (( "(") (binary_expression "local_e4 != (undefined1 *)0x0" (identifier "local_e4") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar10 = safe_strerror(-local_d8);\n        pr2serr("open error: %s: %s\n",puVar11,uVar10);\n      }" ({ "{") (expression_statement "uVar10 = safe_strerror(-local_d8);" (assignment_expression "uVar10 = safe_strerror(-local_d8)" (identifier "uVar10") (= "=") (call_expression "safe_strerror(-local_d8)" (identifier "safe_strerror") (argument_list "(-local_d8)" (( "(") (unary_expression "-local_d8" (- "-") (identifier "local_d8")) () ")")))) (; ";")) (expression_statement "pr2serr("open error: %s: %s\n",puVar11,uVar10);" (call_expression "pr2serr("open error: %s: %s\n",puVar11,uVar10)" (identifier "pr2serr") (argument_list "("open error: %s: %s\n",puVar11,uVar10)" (( "(") (string_literal ""open error: %s: %s\n"" (" """) (string_content "open error: %s: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "puVar11") (, ",") (identifier "uVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar12 = sg_convert_errno(-local_d8);" (assignment_expression "iVar12 = sg_convert_errno(-local_d8)" (identifier "iVar12") (= "=") (call_expression "sg_convert_errno(-local_d8)" (identifier "sg_convert_errno") (argument_list "(-local_d8)" (( "(") (unary_expression "-local_d8" (- "-") (identifier "local_d8")) () ")")))) (; ";")) (goto_statement "goto LAB_0001160a;" (goto "goto") (statement_identifier "LAB_0001160a") (; ";")) (} "}"))) (expression_statement "pbVar13 = local_ba;" (assignment_expression "pbVar13 = local_ba" (identifier "pbVar13") (= "=") (identifier "local_ba")) (; ";")) (for_statement "for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }" (for "for") (( "(") (assignment_expression "iVar12 = 6" (identifier "iVar12") (= "=") (number_literal "6")) (; ";") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      *pbVar13 = 0;\n      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;\n    }" ({ "{") (expression_statement "*pbVar13 = 0;" (assignment_expression "*pbVar13 = 0" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar14 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_c4[0] = 0x94;" (assignment_expression "local_c4[0] = 0x94" (subscript_expression "local_c4[0]" (identifier "local_c4") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x94")) (; ";")) (expression_statement "local_c4[1] = (undefined1)local_e0;" (assignment_expression "local_c4[1] = (undefined1)local_e0" (subscript_expression "local_c4[1]" (identifier "local_c4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(undefined1)local_e0" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_e0"))) (; ";")) (expression_statement "local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18;" (assignment_expression "local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18" (identifier "local_c2") (= "=") (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |\n               local_fc << 0x18" (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8" (binary_expression "local_fc >> 0x18 | (local_fc & 0xff0000) >> 8" (binary_expression "local_fc >> 0x18" (identifier "local_fc") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(local_fc & 0xff0000) >> 8" (parenthesized_expression "(local_fc & 0xff0000)" (( "(") (binary_expression "local_fc & 0xff0000" (identifier "local_fc") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(local_fc & 0xff00) << 8" (parenthesized_expression "(local_fc & 0xff00)" (( "(") (binary_expression "local_fc & 0xff00" (identifier "local_fc") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "local_fc << 0x18" (identifier "local_fc") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18;" (assignment_expression "local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18" (identifier "local_be") (= "=") (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |\n               local_f8 << 0x18" (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8" (binary_expression "local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8" (binary_expression "local_f8 >> 0x18" (identifier "local_f8") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(local_f8 & 0xff0000) >> 8" (parenthesized_expression "(local_f8 & 0xff0000)" (( "(") (binary_expression "local_f8 & 0xff0000" (identifier "local_f8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(local_f8 & 0xff00) << 8" (parenthesized_expression "(local_f8 & 0xff00)" (( "(") (binary_expression "local_f8 & 0xff00" (identifier "local_f8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "local_f8 << 0x18" (identifier "local_f8") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_b8 = local_f4 << 8 | local_f4 >> 8;" (assignment_expression "local_b8 = local_f4 << 8 | local_f4 >> 8" (identifier "local_b8") (= "=") (binary_expression "local_f4 << 8 | local_f4 >> 8" (binary_expression "local_f4 << 8" (identifier "local_f4") (<< "<<") (number_literal "8")) (| "|") (binary_expression "local_f4 >> 8" (identifier "local_f4") (>> ">>") (number_literal "8")))) (; ";")) (if_statement "if (bVar2) {\n      local_b6 = 1;\n    }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n      local_b6 = 1;\n    }" ({ "{") (expression_statement "local_b6 = 1;" (assignment_expression "local_b6 = 1" (identifier "local_b6") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "local_ec = local_74;" (assignment_expression "local_ec = local_74" (identifier "local_ec") (= "=") (identifier "local_74")) (; ";")) (expression_statement "uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);" (assignment_expression "uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec)" (identifier "uVar10") (= "=") (call_expression "sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec)" (identifier "sg_get_opcode_sa_name") (argument_list "(0x94,local_e0,0xffffffff,0x40,local_ec)" (( "(") (number_literal "0x94") (, ",") (identifier "local_e0") (, ",") (number_literal "0xffffffff") (, ",") (number_literal "0x40") (, ",") (identifier "local_ec") () ")")))) (; ";")) (if_statement "if (local_e4 != (undefined1 *)0x0) {\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }" (if "if") (parenthesized_expression "(local_e4 != (undefined1 *)0x0)" (( "(") (binary_expression "local_e4 != (undefined1 *)0x0" (identifier "local_e4") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar12 = 0;\n      pbVar13 = local_c4;\n      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);\n      pcVar8 = "%02x ";\n      do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);\n      pr2serr("\n",uVar7,pcVar16,pcVar18);\n    }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar13 = local_c4;" (assignment_expression "pbVar13 = local_c4" (identifier "pbVar13") (= "=") (identifier "local_c4")) (; ";")) (expression_statement "pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);" (call_expression "pr2serr("    %s cdb: ",local_ec,uVar10,uVar10)" (identifier "pr2serr") (argument_list "("    %s cdb: ",local_ec,uVar10,uVar10)" (( "(") (string_literal ""    %s cdb: "" (" """) (string_content "    %s cdb: ") (" """)) (, ",") (identifier "local_ec") (, ",") (identifier "uVar10") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "pcVar8 = "%02x ";" (assignment_expression "pcVar8 = "%02x "" (identifier "pcVar8") (= "=") (string_literal ""%02x "" (" """) (string_content "%02x ") (" """))) (; ";")) (do_statement "do {\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      } while (iVar12 != 0x10);" (do "do") (compound_statement "{\n        uVar7 = (uint)pbVar13[iVar12];\n        iVar12 = iVar12 + 1;\n        pcVar16 = pcVar8;\n        pcVar18 = pcVar8;\n        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);\n      }" ({ "{") (expression_statement "uVar7 = (uint)pbVar13[iVar12];" (assignment_expression "uVar7 = (uint)pbVar13[iVar12]" (identifier "uVar7") (= "=") (cast_expression "(uint)pbVar13[iVar12]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar13[iVar12]" (identifier "pbVar13") ([ "[") (identifier "iVar12") (] "]")))) (; ";")) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar16 = pcVar8;" (assignment_expression "pcVar16 = pcVar8" (identifier "pcVar16") (= "=") (identifier "pcVar8")) (; ";")) (expression_statement "pcVar18 = pcVar8;" (assignment_expression "pcVar18 = pcVar8" (identifier "pcVar18") (= "=") (identifier "pcVar8")) (; ";")) (expression_statement "pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);" (assignment_expression "pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8)" (identifier "pcVar8") (= "=") (cast_expression "(char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "pr2serr("%02x ",uVar7,pcVar8,pcVar8)" (identifier "pr2serr") (argument_list "("%02x ",uVar7,pcVar8,pcVar8)" (( "(") (string_literal ""%02x "" (" """) (string_content "%02x ") (" """)) (, ",") (identifier "uVar7") (, ",") (identifier "pcVar8") (, ",") (identifier "pcVar8") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != 0x10)" (( "(") (binary_expression "iVar12 != 0x10" (identifier "iVar12") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (expression_statement "pr2serr("\n",uVar7,pcVar16,pcVar18);" (call_expression "pr2serr("\n",uVar7,pcVar16,pcVar18)" (identifier "pr2serr") (argument_list "("\n",uVar7,pcVar16,pcVar18)" (( "(") (string_literal ""\n"" (" """) (escape_sequence "\n") (" """)) (, ",") (identifier "uVar7") (, ",") (identifier "pcVar16") (, ",") (identifier "pcVar18") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar11 = (undefined1 *)construct_scsi_pt_obj();" (assignment_expression "puVar11 = (undefined1 *)construct_scsi_pt_obj()" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)construct_scsi_pt_obj()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "construct_scsi_pt_obj()" (identifier "construct_scsi_pt_obj") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;" (if "if") (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined1 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001193b;" (goto "goto") (statement_identifier "LAB_0001193b") (; ";"))) (expression_statement "set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);" (call_expression "set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13)" (identifier "set_scsi_pt_cdb") (argument_list "(puVar11,local_c4,0x10,pbVar13)" (( "(") (identifier "puVar11") (, ",") (identifier "local_c4") (, ",") (number_literal "0x10") (, ",") (identifier "pbVar13") () ")"))) (; ";")) (expression_statement "set_scsi_pt_sense(puVar11,local_b4,0x40);" (call_expression "set_scsi_pt_sense(puVar11,local_b4,0x40)" (identifier "set_scsi_pt_sense") (argument_list "(puVar11,local_b4,0x40)" (( "(") (identifier "puVar11") (, ",") (identifier "local_b4") (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);" (assignment_expression "uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4)" (identifier "uVar10") (= "=") (call_expression "do_scsi_pt(puVar11,local_d8,0x3c,local_e4)" (identifier "do_scsi_pt") (argument_list "(puVar11,local_d8,0x3c,local_e4)" (( "(") (identifier "puVar11") (, ",") (identifier "local_d8") (, ",") (number_literal "0x3c") (, ",") (identifier "local_e4") () ")")))) (; ";")) (expression_statement "iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);" (assignment_expression "iVar12 = sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8)" (identifier "iVar12") (= "=") (call_expression "sg_cmds_process_resp\n                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8)" (identifier "sg_cmds_process_resp") (argument_list "(puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8)" (( "(") (identifier "puVar11") (, ",") (string_literal ""reset write pointer"" (" """) (string_content "reset write pointer") (" """)) (, ",") (identifier "uVar10") (, ",") (number_literal "0") (, ",") (identifier "local_b4") (, ",") (number_literal "1") (, ",") (identifier "local_e4") (, ",") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) () ")")))) (; ";")) (if_statement "if (iVar12 == -1) {\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }\n    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" (if "if") (parenthesized_expression "(iVar12 == -1)" (( "(") (binary_expression "iVar12 == -1" (identifier "iVar12") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar10 = get_scsi_pt_os_err(puVar11);\n      iVar12 = sg_convert_errno(uVar10);\n    }" ({ "{") (expression_statement "uVar10 = get_scsi_pt_os_err(puVar11);" (assignment_expression "uVar10 = get_scsi_pt_os_err(puVar11)" (identifier "uVar10") (= "=") (call_expression "get_scsi_pt_os_err(puVar11)" (identifier "get_scsi_pt_os_err") (argument_list "(puVar11)" (( "(") (identifier "puVar11") () ")")))) (; ";")) (expression_statement "iVar12 = sg_convert_errno(uVar10);" (assignment_expression "iVar12 = sg_convert_errno(uVar10)" (identifier "iVar12") (= "=") (call_expression "sg_convert_errno(uVar10)" (identifier "sg_convert_errno") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")")))) (; ";")) (} "}")) (else_clause "else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" (else "else") (if_statement "if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" (if "if") (parenthesized_expression "((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2))" (( "(") (binary_expression "(iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)" (parenthesized_expression "(iVar12 != -2)" (( "(") (binary_expression "iVar12 != -2" (identifier "iVar12") (!= "!=") (number_literal "-2")) () ")")) (|| "||") (parenthesized_expression "(iVar12 = local_c8, local_c8 - 0x14U < 2)" (( "(") (comma_expression "iVar12 = local_c8, local_c8 - 0x14U < 2" (assignment_expression "iVar12 = local_c8" (identifier "iVar12") (= "=") (identifier "local_c8")) (, ",") (binary_expression "local_c8 - 0x14U < 2" (binary_expression "local_c8 - 0x14U" (identifier "local_c8") (- "-") (number_literal "0x14U")) (< "<") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\n      destruct_scsi_pt_obj(puVar11);\n      goto LAB_000115ef;\n    }" ({ "{") (expression_statement "destruct_scsi_pt_obj(puVar11);" (call_expression "destruct_scsi_pt_obj(puVar11)" (identifier "destruct_scsi_pt_obj") (argument_list "(puVar11)" (( "(") (identifier "puVar11") () ")"))) (; ";")) (goto_statement "goto LAB_000115ef;" (goto "goto") (statement_identifier "LAB_000115ef") (; ";")) (} "}"))))) (expression_statement "destruct_scsi_pt_obj(puVar11);" (call_expression "destruct_scsi_pt_obj(puVar11)" (identifier "destruct_scsi_pt_obj") (argument_list "(puVar11)" (( "(") (identifier "puVar11") () ")"))) (; ";")) (expression_statement "local_d4 = iVar12;" (assignment_expression "local_d4 = iVar12" (identifier "local_d4") (= "=") (identifier "iVar12")) (; ";")) (if_statement "if (iVar12 != 0) {\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar12 != 9) goto LAB_0001181c;\n      puVar17 = extraout_ECX;\n      puVar19 = extraout_ECX;\n      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);\n      goto LAB_00011856;\n    }" ({ "{") (if_statement "if (iVar12 != 9) goto LAB_0001181c;" (if "if") (parenthesized_expression "(iVar12 != 9)" (( "(") (binary_expression "iVar12 != 9" (identifier "iVar12") (!= "!=") (number_literal "9")) () ")")) (goto_statement "goto LAB_0001181c;" (goto "goto") (statement_identifier "LAB_0001181c") (; ";"))) (expression_statement "puVar17 = extraout_ECX;" (assignment_expression "puVar17 = extraout_ECX" (identifier "puVar17") (= "=") (identifier "extraout_ECX")) (; ";")) (expression_statement "puVar19 = extraout_ECX;" (assignment_expression "puVar19 = extraout_ECX" (identifier "puVar19") (= "=") (identifier "extraout_ECX")) (; ";")) (expression_statement "pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);" (call_expression "pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX)" (identifier "pr2serr") (argument_list "("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX)" (( "(") (string_literal ""%s command not supported\n"" (" """) (string_content "%s command not supported") (escape_sequence "\n") (" """)) (, ",") (identifier "local_e8") (, ",") (identifier "extraout_ECX") (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (goto_statement "goto LAB_00011856;" (goto "goto") (statement_identifier "LAB_00011856") (; ";")) (} "}"))) (labeled_statement "LAB_000115ef:\n    iVar12 = sg_cmds_close_device(local_d8);" (statement_identifier "LAB_000115ef") (: ":") (expression_statement "iVar12 = sg_cmds_close_device(local_d8);" (assignment_expression "iVar12 = sg_cmds_close_device(local_d8)" (identifier "iVar12") (= "=") (call_expression "sg_cmds_close_device(local_d8)" (identifier "sg_cmds_close_device") (argument_list "(local_d8)" (( "(") (identifier "local_d8") () ")")))) (; ";"))) (if_statement "if (-1 < iVar12) {\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }" (if "if") (parenthesized_expression "(-1 < iVar12)" (( "(") (binary_expression "-1 < iVar12" (number_literal "-1") (< "<") (identifier "iVar12")) () ")")) (compound_statement "{\n      iVar12 = 0;\n      goto LAB_0001160a;\n    }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001160a;" (goto "goto") (statement_identifier "LAB_0001160a") (; ";")) (} "}"))) (expression_statement "puVar11 = (undefined1 *)-iVar12;" (assignment_expression "puVar11 = (undefined1 *)-iVar12" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)-iVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-iVar12" (- "-") (identifier "iVar12")))) (; ";")) (expression_statement "uVar10 = safe_strerror(puVar11);" (assignment_expression "uVar10 = safe_strerror(puVar11)" (identifier "uVar10") (= "=") (call_expression "safe_strerror(puVar11)" (identifier "safe_strerror") (argument_list "(puVar11)" (( "(") (identifier "puVar11") () ")")))) (; ";")) (expression_statement "pr2serr("close error: %s\n",uVar10);" (call_expression "pr2serr("close error: %s\n",uVar10)" (identifier "pr2serr") (argument_list "("close error: %s\n",uVar10)" (( "(") (string_literal ""close error: %s\n"" (" """) (string_content "close error: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "iVar12 = sg_convert_errno(puVar11);" (assignment_expression "iVar12 = sg_convert_errno(puVar11)" (identifier "iVar12") (= "=") (call_expression "sg_convert_errno(puVar11)" (identifier "sg_convert_errno") (argument_list "(puVar11)" (( "(") (identifier "puVar11") () ")")))) (; ";")) (goto_statement "goto LAB_0001160a;" (goto "goto") (statement_identifier "LAB_0001160a") (; ";")) (} "}"))) (expression_statement "pcVar8 = "missing device name!\n";" (assignment_expression "pcVar8 = "missing device name!\n"" (identifier "pcVar8") (= "=") (string_literal ""missing device name!\n"" (" """) (string_content "missing device name!") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_000113b9:\n  pr2serr(pcVar8);" (statement_identifier "LAB_000113b9") (: ":") (expression_statement "pr2serr(pcVar8);" (call_expression "pr2serr(pcVar8)" (identifier "pr2serr") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";"))) (labeled_statement "LAB_000113c8:\n  pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );" (statement_identifier "LAB_000113c8") (: ":") (expression_statement "pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         );" (call_expression "pr2serr(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         )" (identifier "pr2serr") (argument_list "(\n         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"\n         )" (( "(") (string_literal ""Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"" (" """) (string_content "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]") (escape_sequence "\n") (string_content "                [--open] [--sequentialize] [--verbose] [--version]") (escape_sequence "\n") (string_content "                [--zone=ID] DEVICE") (escape_sequence "\n") (" """)) () ")"))) (; ";"))) (expression_statement "pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         );" (call_expression "pr2serr(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         )" (identifier "pr2serr") (argument_list "(\n         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"\n         )" (( "(") (string_literal ""  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"" (" """) (string_content "  where:") (escape_sequence "\n") (string_content "    --all|-a           sets the ALL flag in the cdb") (escape_sequence "\n") (string_content "    --close|-c         issue CLOSE ZONE command") (escape_sequence "\n") (string_content "    --count=ZC|-C ZC    set zone count field (def: 0)") (escape_sequence "\n") (string_content "    --finish|-f        issue FINISH ZONE command") (escape_sequence "\n") (string_content "    --help|-h          print out usage message") (escape_sequence "\n") (string_content "    --open|-o          issue OPEN ZONE command") (escape_sequence "\n") (string_content "    --sequentialize|-S    issue SEQUENTIALIZE ZONE command") (escape_sequence "\n") (string_content "    --verbose|-v       increase verbosity") (escape_sequence "\n") (string_content "    --version|-V       print version string and exit") (escape_sequence "\n") (string_content "    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)") (escape_sequence "\n") (escape_sequence "\n") (string_content "Performs a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE") (escape_sequence "\n") (string_content "ZONE command. ID is decimal by default, for hex use a leading ") (escape_sequence "\'") (string_content "0x") (escape_sequence "\'") (escape_sequence "\n") (string_content "or a trailing ") (escape_sequence "\'") (string_content "h") (escape_sequence "\'") (string_content ". Either --close, --finish, --open or") (escape_sequence "\n") (string_content "--sequentialize option needs to be given.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00011340;" (goto "goto") (statement_identifier "LAB_00011340") (; ";")) (} "}")))

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

int function_1(int argc,char **argv)

{
  bool bVar1;
  bool bVar2;
  type_1 *puVar3;
  type_1 *puVar4;
  char **ppcVar5;
  char var_17;
  int var_3;
  type_2 var_6;
  type_3 uVar9;
  char *var_19;
  char *extraout_ECX;
  int var_18;
  type_3 extraout_EDX;
  type_4 *var_22;
  int var_1;
  type_4 bVar13;
  type_5 var_10;
  char *pcVar15;
  char *pcVar16;
  type_2 var_23;
  type_2 var_24;
  type_6 var_25;
  type_4 local_f0;
  type_4 local_ef;
  type_4 local_ee;
  char *local_ec;
  char *local_e8;
  char *var_8;
  int local_e0;
  char **local_d8;
  int local_d4;
  int var_33;
  type_4 local_c4 [2];
  type_2 local_c2;
  type_2 local_be;
  type_4 local_ba [2];
  type_6 local_b8;
  type_7 local_b6;
  type_7 local_b4 [64];
  char local_74 [80];
  int var_11;
  int *local_18;
  
  ppcVar5 = argv;
  var_18 = argc;
  puVar4 = PTR_optarg_00013ff8;
  bVar13 = 0;
  local_18 = &argc;
  local_d4 = argc;
  local_d8 = argv;
  var_11 = *(int *)(var_1 + 0x14);
  local_e8 = (char *)((type_2)local_e8 & 0xffffff00);
  var_10 = 0;
  local_e0 = 0;
  var_8 = (char *)0x0;
  bVar1 = false;
  local_f0 = 0;
  local_ef = 0;
  local_ec = (char *)((type_2)local_ec & 0xffffff00);
  local_ee = 0;
  bVar2 = false;
  var_25 = 0;
  while( true ) {
    var_23 = (type_2)((type_8)var_10 >> 0x20);
    var_24 = (type_2)var_10;
    var_33 = 0;
    var_3 = var_2(var_18,ppcVar5,"acC:fhoRSvVz:",long_options,&var_33);
    puVar3 = PTR_optind_00013fe4;
    if (var_3 == -1) break;
    switch(var_3) {
    case 0x3f:
    case 0x68:
      var_4(
             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
             );
      var_4(
             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
             );
      var_18 = 0;
      goto LAB_00011340;
    default:
      var_19 = "unrecognised option code 0x%x ??\n";
      goto LAB_000113b9;
    case 0x43:
      var_6 = var_5(*(type_3 *)puVar4);
      if (0xffff < var_6) {
        var_4("--count= expects an argument between 0 and 0xffff inclusive\n");
        var_18 = 1;
        goto LAB_00011340;
      }
      var_25 = (type_6)var_6;
      break;
    case 0x52:
    case 0x61:
      bVar2 = true;
      break;
    case 0x53:
      local_e0 = 0x10;
      local_f0 = 1;
      break;
    case 0x56:
      local_e8 = (char *)var_7(local_e8._1_3_,1);
      break;
    case 99:
      local_e0 = 1;
      local_ee = 1;
      break;
    case 0x66:
      local_e0 = 2;
      local_ec = (char *)var_7(local_ec._1_3_,1);
      break;
    case 0x6f:
      local_e0 = 3;
      local_ef = 1;
      break;
    case 0x76:
      var_8 = var_8 + 1;
      bVar1 = true;
      break;
    case 0x7a:
      var_10 = var_9(*(type_3 *)puVar4);
      if (var_10 == -1) {
        var_4("bad argument to \'--zone=ID\'\n");
        var_18 = 1;
LAB_00011340:
        while (var_11 != *(int *)(var_1 + 0x14)) {
          var_19 = (char *)var_12();
LAB_0001193b:
          var_4("%s: out of memory\n",local_ec,var_19,var_19);
          var_18 = local_d4;
LAB_0001181c:
          pcVar16 = var_8;
          var_13(var_18,0x50,local_ec,var_8);
          pcVar15 = local_ec;
          var_4("%s command: %s\n",local_e8,local_ec);
          var_19 = local_ec;
LAB_00011856:
          var_3 = var_14(local_d8);
          local_d4 = var_18;
          if (var_3 < 0) {
            uVar9 = var_15(-var_3);
            var_4("close error: %s\n",uVar9,pcVar15,pcVar16);
          }
LAB_0001160a:
          if ((var_8 == (char *)0x0) &&
             (var_17 = var_16("sg_zone failed: ",var_18,var_19,var_19), local_d4 = var_18
             , var_17 == '\0')) {
            var_4("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
          }
          if (var_18 < 0) {
            var_18 = 99;
          }
        }
        return var_18;
      }
    }
  }
  var_19 = (char *)0x0;
  var_3 = *(int *)PTR_optind_00013fe4;
  if (var_3 < var_18) {
    var_19 = ppcVar5[var_3];
    var_3 = var_3 + 1;
    *(int *)PTR_optind_00013fe4 = var_3;
    if (var_3 < var_18) {
      uVar9 = 0xffffffff;
      do {
        var_4("Unexpected extra argument: %s\n",ppcVar5[var_3],uVar9,uVar9);
        var_3 = *(int *)puVar3 + 1;
        *(int *)puVar3 = var_3;
        uVar9 = extraout_EDX;
      } while (var_3 < var_18);
      goto LAB_000113c8;
    }
  }
  if (bVar1) {
    if ((char)local_e8 != '\0') {
      var_3 = var_4("Not in DEBUG mode, so \'-vV\' has no special action\n");
LAB_0001163b:
      var_4("version: %s\n","1.12 20180628",var_3,var_3);
      var_18 = 0;
      goto LAB_00011340;
    }
  }
  else if ((char)local_e8 != '\0') goto LAB_0001163b;
  if ((type_2)local_ef + ((type_2)local_ec & 0xff) + (type_2)local_ee + (type_2)local_f0 != 1) {
    var_4("one from the --close, --finish, --open and --sequentialize options must be given\n");
    var_4(
           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
           );
    var_4(
           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
           );
    var_18 = 0x1f;
    goto LAB_00011340;
  }
  if (var_19 != (char *)0x0) {
    local_e8 = sa_name_arr[local_e0];
    local_d8 = (char **)var_20(var_19,0,var_8,local_e8);
    local_d4 = -1;
    if ((int)local_d8 < 0) {
      if (var_8 != (char *)0x0) {
        uVar9 = var_15(-(int)local_d8);
        var_4("open error: %s: %s\n",var_19,uVar9);
      }
      var_18 = var_21(-(int)local_d8);
      goto LAB_0001160a;
    }
    var_22 = local_ba;
    for (var_18 = 6; var_18 != 0; var_18 = var_18 + -1) {
      *var_22 = 0;
      var_22 = var_22 + (type_2)bVar13 * -2 + 1;
    }
    local_c4[0] = 0x94;
    local_c4[1] = (type_7)local_e0;
    local_c2 = var_23 >> 0x18 | (var_23 & 0xff0000) >> 8 | (var_23 & 0xff00) << 8 |
               var_23 << 0x18;
    local_be = var_24 >> 0x18 | (var_24 & 0xff0000) >> 8 | (var_24 & 0xff00) << 8 |
               var_24 << 0x18;
    local_b8 = var_25 << 8 | var_25 >> 8;
    if (bVar2) {
      local_b6 = 1;
    }
    local_ec = local_74;
    uVar9 = var_26(0x94,local_e0,0xffffffff,0x40,local_ec);
    if (var_8 != (char *)0x0) {
      var_18 = 0;
      var_22 = local_c4;
      var_4("    %s cdb: ",local_ec,uVar9,uVar9);
      var_19 = "%02x ";
      do {
        var_6 = (type_2)var_22[var_18];
        var_18 = var_18 + 1;
        pcVar15 = var_19;
        pcVar16 = var_19;
        var_19 = (char *)var_4("%02x ",var_6,var_19,var_19);
      } while (var_18 != 0x10);
      var_4("\n",var_6,pcVar15,pcVar16);
    }
    var_19 = (char *)var_27();
    if (var_19 == (char *)0x0) goto LAB_0001193b;
    var_28(var_19,local_c4,0x10,var_22);
    var_29(var_19,local_b4,0x40);
    uVar9 = var_30(var_19,local_d8,0x3c,var_8);
    var_18 = var_31
                       (var_19,"reset write pointer",uVar9,0,local_b4,1,var_8,&var_33);
    if (var_18 == -1) {
      uVar9 = var_32(var_19);
      var_18 = var_21(uVar9);
    }
    else if ((var_18 != -2) || (var_18 = var_33, var_33 - 0x14U < 2)) {
      var_34(var_19);
      goto LAB_000115ef;
    }
    var_34(var_19);
    local_d4 = var_18;
    if (var_18 != 0) {
      if (var_18 != 9) goto LAB_0001181c;
      pcVar15 = extraout_ECX;
      pcVar16 = extraout_ECX;
      var_4("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);
      goto LAB_00011856;
    }
LAB_000115ef:
    var_18 = var_14(local_d8);
    if (-1 < var_18) {
      var_18 = 0;
      goto LAB_0001160a;
    }
    var_19 = (char *)-var_18;
    uVar9 = var_15(var_19);
    var_4("close error: %s\n",uVar9);
    var_18 = var_21(var_19);
    goto LAB_0001160a;
  }
  var_19 = "missing device name!\n";
LAB_000113b9:
  var_4(var_19);
LAB_000113c8:
  var_4(
         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
         );
  var_4(
         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
         );
  var_18 = 1;
  goto LAB_00011340;
}


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

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

int MASKED(int param_1,int param_2)

{
  bool bVar1;
  bool bVar2;
  undefined *puVar3;
  undefined *puVar4;
  char cVar5;
  int iVar6;
  uint uVar7;
  char *pcVar8;
  int iVar9;
  undefined4 uVar10;
  undefined1 *puVar11;
  undefined1 *extraout_ECX;
  int iVar12;
  undefined4 extraout_EDX;
  byte *pbVar13;
  int in_GS_OFFSET;
  byte bVar14;
  longlong lVar15;
  char *pcVar16;
  undefined1 *puVar17;
  char *pcVar18;
  undefined1 *puVar19;
  uint local_fc;
  uint local_f8;
  ushort local_f4;
  byte local_f0;
  byte local_ef;
  byte local_ee;
  undefined1 *local_ec;
  undefined *local_e8;
  undefined1 *local_e4;
  int local_e0;
  int local_d8;
  int local_d4;
  int local_c8;
  byte local_c4 [2];
  uint local_c2;
  uint local_be;
  byte local_ba [2];
  ushort local_b8;
  undefined1 local_b6;
  undefined1 local_b4 [64];
  undefined1 local_74 [80];
  int local_24;
  undefined4 *local_18;
  
  iVar9 = param_2;
  iVar12 = param_1;
  puVar4 = PTR_optarg_00013ff8;
  bVar14 = 0;
  local_18 = &param_1;
  local_d4 = param_1;
  local_d8 = param_2;
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  local_e8 = (undefined *)((uint)local_e8 & 0xffffff00);
  lVar15 = 0;
  local_e0 = 0;
  local_e4 = (undefined1 *)0x0;
  bVar1 = false;
  local_f0 = 0;
  local_ef = 0;
  local_ec = (undefined1 *)((uint)local_ec & 0xffffff00);
  local_ee = 0;
  bVar2 = false;
  local_f4 = 0;
  while( true ) {
    local_fc = (uint)((ulonglong)lVar15 >> 0x20);
    local_f8 = (uint)lVar15;
    local_c8 = 0;
    iVar6 = getopt_long(iVar12,iVar9,"acC:fhoRSvVz:",&PTR_s_all_00014020,&local_c8);
    puVar3 = PTR_optind_00013fe4;
    if (iVar6 == -1) break;
    switch(iVar6) {
    case 0x3f:
    case 0x68:
      pr2serr(
             "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
             );
      pr2serr(
             "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
             );
      iVar12 = 0;
      goto LAB_00011340;
    default:
      pcVar8 = "unrecognised option code 0x%x ??\n";
      goto LAB_000113b9;
    case 0x43:
      uVar7 = func_0x00011150(*(undefined4 *)puVar4);
      if (0xffff < uVar7) {
        pr2serr("--count= expects an argument between 0 and 0xffff inclusive\n");
        iVar12 = 1;
        goto LAB_00011340;
      }
      local_f4 = (ushort)uVar7;
      break;
    case 0x52:
    case 0x61:
      bVar2 = true;
      break;
    case 0x53:
      local_e0 = 0x10;
      local_f0 = 1;
      break;
    case 0x56:
      local_e8 = (undefined *)CONCAT31(local_e8._1_3_,1);
      break;
    case 99:
      local_e0 = 1;
      local_ee = 1;
      break;
    case 0x66:
      local_e0 = 2;
      local_ec = (undefined1 *)CONCAT31(local_ec._1_3_,1);
      break;
    case 0x6f:
      local_e0 = 3;
      local_ef = 1;
      break;
    case 0x76:
      local_e4 = local_e4 + 1;
      bVar1 = true;
      break;
    case 0x7a:
      lVar15 = func_0x000110e0(*(undefined4 *)puVar4);
      if (lVar15 == -1) {
        pr2serr("bad argument to \'--zone=ID\'\n");
        iVar12 = 1;
LAB_00011340:
        while (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {
          puVar11 = (undefined1 *)FUN_00011b50();
LAB_0001193b:
          pr2serr("%s: out of memory\n",local_ec,puVar11,puVar11);
          iVar12 = local_d4;
LAB_0001181c:
          puVar19 = local_e4;
          sg_get_category_sense_str(iVar12,0x50,local_ec,local_e4);
          puVar17 = local_ec;
          pr2serr("%s command: %s\n",local_e8,local_ec);
          puVar11 = local_ec;
LAB_00011856:
          iVar9 = sg_cmds_close_device(local_d8);
          local_d4 = iVar12;
          if (iVar9 < 0) {
            uVar10 = safe_strerror(-iVar9);
            pr2serr("close error: %s\n",uVar10,puVar17,puVar19);
          }
LAB_0001160a:
          if ((local_e4 == (undefined1 *)0x0) &&
             (cVar5 = sg_if_can2stderr("sg_zone failed: ",iVar12,puVar11,puVar11), local_d4 = iVar12
             , cVar5 == '\0')) {
            pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
          }
          if (iVar12 < 0) {
            iVar12 = 99;
          }
        }
        return iVar12;
      }
    }
  }
  puVar11 = (undefined1 *)0x0;
  iVar6 = *(int *)PTR_optind_00013fe4;
  if (iVar6 < iVar12) {
    puVar11 = *(undefined1 **)(iVar9 + iVar6 * 4);
    iVar6 = iVar6 + 1;
    *(int *)PTR_optind_00013fe4 = iVar6;
    if (iVar6 < iVar12) {
      uVar10 = 0xffffffff;
      do {
        pr2serr("Unexpected extra argument: %s\n",*(undefined4 *)(iVar9 + iVar6 * 4),uVar10,uVar10);
        iVar6 = *(int *)puVar3 + 1;
        *(int *)puVar3 = iVar6;
        uVar10 = extraout_EDX;
      } while (iVar6 < iVar12);
      goto LAB_000113c8;
    }
  }
  if (bVar1) {
    if ((char)local_e8 != '\0') {
      iVar6 = pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");
LAB_0001163b:
      pr2serr("version: %s\n","1.12 20180628",iVar6,iVar6);
      iVar12 = 0;
      goto LAB_00011340;
    }
  }
  else if ((char)local_e8 != '\0') goto LAB_0001163b;
  if ((uint)local_ef + ((uint)local_ec & 0xff) + (uint)local_ee + (uint)local_f0 != 1) {
    pr2serr("one from the --close, --finish, --open and --sequentialize options must be given\n");
    pr2serr(
           "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
           );
    pr2serr(
           "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
           );
    iVar12 = 0x1f;
    goto LAB_00011340;
  }
  if (puVar11 != (undefined1 *)0x0) {
    local_e8 = (&PTR_s_no_SA_0_00013e60)[local_e0];
    local_d8 = sg_cmds_open_device(puVar11,0,local_e4,local_e8);
    local_d4 = -1;
    if (local_d8 < 0) {
      if (local_e4 != (undefined1 *)0x0) {
        uVar10 = safe_strerror(-local_d8);
        pr2serr("open error: %s: %s\n",puVar11,uVar10);
      }
      iVar12 = sg_convert_errno(-local_d8);
      goto LAB_0001160a;
    }
    pbVar13 = local_ba;
    for (iVar12 = 6; iVar12 != 0; iVar12 = iVar12 + -1) {
      *pbVar13 = 0;
      pbVar13 = pbVar13 + (uint)bVar14 * -2 + 1;
    }
    local_c4[0] = 0x94;
    local_c4[1] = (undefined1)local_e0;
    local_c2 = local_fc >> 0x18 | (local_fc & 0xff0000) >> 8 | (local_fc & 0xff00) << 8 |
               local_fc << 0x18;
    local_be = local_f8 >> 0x18 | (local_f8 & 0xff0000) >> 8 | (local_f8 & 0xff00) << 8 |
               local_f8 << 0x18;
    local_b8 = local_f4 << 8 | local_f4 >> 8;
    if (bVar2) {
      local_b6 = 1;
    }
    local_ec = local_74;
    uVar10 = sg_get_opcode_sa_name(0x94,local_e0,0xffffffff,0x40,local_ec);
    if (local_e4 != (undefined1 *)0x0) {
      iVar12 = 0;
      pbVar13 = local_c4;
      pr2serr("    %s cdb: ",local_ec,uVar10,uVar10);
      pcVar8 = "%02x ";
      do {
        uVar7 = (uint)pbVar13[iVar12];
        iVar12 = iVar12 + 1;
        pcVar16 = pcVar8;
        pcVar18 = pcVar8;
        pcVar8 = (char *)pr2serr("%02x ",uVar7,pcVar8,pcVar8);
      } while (iVar12 != 0x10);
      pr2serr("\n",uVar7,pcVar16,pcVar18);
    }
    puVar11 = (undefined1 *)construct_scsi_pt_obj();
    if (puVar11 == (undefined1 *)0x0) goto LAB_0001193b;
    set_scsi_pt_cdb(puVar11,local_c4,0x10,pbVar13);
    set_scsi_pt_sense(puVar11,local_b4,0x40);
    uVar10 = do_scsi_pt(puVar11,local_d8,0x3c,local_e4);
    iVar12 = sg_cmds_process_resp
                       (puVar11,"reset write pointer",uVar10,0,local_b4,1,local_e4,&local_c8);
    if (iVar12 == -1) {
      uVar10 = get_scsi_pt_os_err(puVar11);
      iVar12 = sg_convert_errno(uVar10);
    }
    else if ((iVar12 != -2) || (iVar12 = local_c8, local_c8 - 0x14U < 2)) {
      destruct_scsi_pt_obj(puVar11);
      goto LAB_000115ef;
    }
    destruct_scsi_pt_obj(puVar11);
    local_d4 = iVar12;
    if (iVar12 != 0) {
      if (iVar12 != 9) goto LAB_0001181c;
      puVar17 = extraout_ECX;
      puVar19 = extraout_ECX;
      pr2serr("%s command not supported\n",local_e8,extraout_ECX,extraout_ECX);
      goto LAB_00011856;
    }
LAB_000115ef:
    iVar12 = sg_cmds_close_device(local_d8);
    if (-1 < iVar12) {
      iVar12 = 0;
      goto LAB_0001160a;
    }
    puVar11 = (undefined1 *)-iVar12;
    uVar10 = safe_strerror(puVar11);
    pr2serr("close error: %s\n",uVar10);
    iVar12 = sg_convert_errno(puVar11);
    goto LAB_0001160a;
  }
  pcVar8 = "missing device name!\n";
LAB_000113b9:
  pr2serr(pcVar8);
LAB_000113c8:
  pr2serr(
         "Usage: sg_zone  [--all] [--close] [--count=ZC] [--finish] [--help]\n                [--open] [--sequentialize] [--verbose] [--version]\n                [--zone=ID] DEVICE\n"
         );
  pr2serr(
         "  where:\n    --all|-a           sets the ALL flag in the cdb\n    --close|-c         issue CLOSE ZONE command\n    --count=ZC|-C ZC    set zone count field (def: 0)\n    --finish|-f        issue FINISH ZONE command\n    --help|-h          print out usage message\n    --open|-o          issue OPEN ZONE command\n    --sequentialize|-S    issue SEQUENTIALIZE ZONE command\n    --verbose|-v       increase verbosity\n    --version|-V       print version string and exit\n    --zone=ID|-z ID    ID is the starting LBA of the zone (def: 0)\n\nPerforms a SCSI OPEN ZONE, CLOSE ZONE, FINISH ZONE or SEQUENTIALIZE\nZONE command. ID is decimal by default, for hex use a leading \'0x\'\nor a trailing \'h\'. Either --close, --finish, --open or\n--sequentialize option needs to be given.\n"
         );
  iVar12 = 1;
  goto LAB_00011340;
}

