
int main(int argc,char **argv)

{
  bool bVar1;
  bool bVar2;
  _Bool extend;
  _Bool do_ident;
  char cVar3;
  int iVar4;
  int iVar5;
  undefined8 uVar6;
  char *pcVar7;
  long in_FS_OFFSET;
  int local_60;
  _Bool local_59;
  undefined1 local_53;
  _Bool local_52;
  _Bool local_51;
  int local_4c;
  int option_index;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_60 = 0;
  local_4c = 0;
  iVar5 = 0x10;
  bVar2 = false;
  bVar1 = false;
  extend = false;
  local_51 = false;
  local_53 = 0;
  local_59 = false;
  do_ident = false;
  local_52 = false;
LAB_00101c1c:
  option_index = 0;
  iVar4 = getopt_long(argc,argv,"cehHil:prRvV",long_options,&option_index);
  if (iVar4 == -1) {
    pcVar7 = (char *)0x0;
    if (optind < argc) {
      pcVar7 = argv[optind];
      optind = optind + 1;
      if (optind < argc) goto LAB_00101e5a;
    }
    if ((bVar1) && (bVar2)) {
      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");
    }
    else if (!bVar2) {
      if (pcVar7 == (char *)0x0) {
        pr2serr("Missing device name!\n\n");
        pr2serr(
               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
               );
        iVar5 = 1;
      }
      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {
        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);
        if (iVar4 < 0) {
          if (local_60 != 0) {
            uVar6 = safe_strerror(-iVar4);
            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);
          }
          iVar5 = sg_convert_errno(-iVar4);
        }
        else {
          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,
                                  local_60);
          iVar4 = sg_cmds_close_device(iVar4);
          if (iVar4 < 0) {
            uVar6 = safe_strerror(-iVar4);
            pr2serr("close error: %s\n",uVar6);
            if (iVar5 == 0) {
              iVar5 = sg_convert_errno(-iVar4);
            }
          }
        }
        if ((local_60 == 0) &&
           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {
          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
        }
        if (iVar5 < 0) {
          iVar5 = 99;
        }
      }
      else {
        perror("sg_set_binary_mode");
        iVar5 = 0xf;
      }
      goto LAB_00101c78;
    }
    pr2serr("version: %s\n","1.17 20180515");
    iVar5 = 0;
    goto LAB_00101c78;
  }
  switch(iVar4) {
  case 0x3f:
  case 0x68:
    pr2serr(
           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
           );
    iVar5 = 0;
    break;
  default:
    pr2serr("unrecognised option code 0x%x ??\n",iVar4);
    pr2serr(
           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
           );
    iVar5 = 1;
    break;
  case 0x48:
    local_4c = local_4c + 1;
    goto LAB_00101c1c;
  case 0x52:
    local_53 = 1;
    goto LAB_00101c1c;
  case 0x56:
    bVar2 = true;
    goto LAB_00101c1c;
  case 99:
    local_51 = true;
    goto LAB_00101c1c;
  case 0x65:
    extend = true;
    goto LAB_00101c1c;
  case 0x69:
    do_ident = true;
    goto LAB_00101c1c;
  case 0x6c:
    iVar5 = sg_get_num(optarg);
    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;
    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");
    iVar5 = 1;
    break;
  case 0x70:
    local_52 = true;
    goto LAB_00101c1c;
  case 0x72:
    local_59 = true;
    goto LAB_00101c1c;
  case 0x76:
    local_60 = local_60 + 1;
    bVar1 = true;
    goto LAB_00101c1c;
  }
LAB_00101c78:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar5;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
LAB_00101e5a:
  do {
    pr2serr("Unexpected extra argument: %s\n",argv[optind]);
    optind = optind + 1;
  } while (optind < argc);
  pr2serr(
         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
         );
  iVar5 = 1;
  goto LAB_00101c78;
}



int FUN_00101ba8(int param_1,long param_2)

{
  bool bVar1;
  bool bVar2;
  char cVar3;
  int iVar4;
  int iVar5;
  undefined8 uVar6;
  long lVar7;
  long in_FS_OFFSET;
  int local_60;
  char local_59;
  undefined4 local_58;
  undefined1 local_53;
  undefined1 local_52;
  undefined1 local_51;
  undefined4 local_50;
  int local_4c;
  undefined4 local_44;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_60 = 0;
  local_4c = 0;
  iVar5 = 0x10;
  bVar2 = false;
  bVar1 = false;
  local_50 = 0;
  local_51 = 0;
  local_53 = 0;
  local_59 = '\0';
  local_58 = 0;
  local_52 = 0;
LAB_00101c1c:
  local_44 = 0;
  iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);
  if (iVar4 == -1) {
    lVar7 = 0;
    if (optind < param_1) {
      lVar7 = *(long *)(param_2 + (long)optind * 8);
      optind = optind + 1;
      if (optind < param_1) goto LAB_00101e5a;
    }
    if ((bVar1) && (bVar2)) {
      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");
    }
    else if (!bVar2) {
      if (lVar7 == 0) {
        pr2serr("Missing device name!\n\n");
        pr2serr(
               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
               );
        iVar5 = 1;
      }
      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {
        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);
        if (iVar4 < 0) {
          if (local_60 != 0) {
            uVar6 = safe_strerror(-iVar4);
            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);
          }
          iVar5 = sg_convert_errno(-iVar4);
        }
        else {
          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,
                               local_60);
          iVar4 = sg_cmds_close_device(iVar4);
          if (iVar4 < 0) {
            uVar6 = safe_strerror(-iVar4);
            pr2serr("close error: %s\n",uVar6);
            if (iVar5 == 0) {
              iVar5 = sg_convert_errno(-iVar4);
            }
          }
        }
        if ((local_60 == 0) &&
           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {
          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
        }
        if (iVar5 < 0) {
          iVar5 = 99;
        }
      }
      else {
        perror("sg_set_binary_mode");
        iVar5 = 0xf;
      }
      goto LAB_00101c78;
    }
    pr2serr("version: %s\n","1.17 20180515");
    iVar5 = 0;
    goto LAB_00101c78;
  }
  switch(iVar4) {
  case 0x3f:
  case 0x68:
    pr2serr(
           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
           );
    iVar5 = 0;
    break;
  default:
    pr2serr("unrecognised option code 0x%x ??\n",iVar4);
    pr2serr(
           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
           );
    iVar5 = 1;
    break;
  case 0x48:
    local_4c = local_4c + 1;
    goto LAB_00101c1c;
  case 0x52:
    local_53 = 1;
    goto LAB_00101c1c;
  case 0x56:
    bVar2 = true;
    goto LAB_00101c1c;
  case 99:
    local_51 = 1;
    goto LAB_00101c1c;
  case 0x65:
    local_50 = 1;
    goto LAB_00101c1c;
  case 0x69:
    local_58 = 1;
    goto LAB_00101c1c;
  case 0x6c:
    iVar5 = sg_get_num(optarg);
    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;
    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");
    iVar5 = 1;
    break;
  case 0x70:
    local_52 = 1;
    goto LAB_00101c1c;
  case 0x72:
    local_59 = '\x01';
    goto LAB_00101c1c;
  case 0x76:
    local_60 = local_60 + 1;
    bVar1 = true;
    goto LAB_00101c1c;
  }
LAB_00101c78:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar5;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
LAB_00101e5a:
  do {
    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));
    optind = optind + 1;
  } while (optind < param_1);
  pr2serr(
         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
         );
  iVar5 = 1;
  goto LAB_00101c78;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x38
MOV EBP,EDI
MOV R12,RSI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x28],RAX
XOR EAX,EAX
MOV dword ptr [RSP + 0x8],0x0
MOV dword ptr [RSP + 0x1c],0x0
MOV R15D,0x10
MOV byte ptr [RSP + 0xe],0x0
MOV byte ptr [RSP + 0x14],0x0
MOV byte ptr [RSP + 0x18],0x0
MOV byte ptr [RSP + 0x17],0x0
MOV byte ptr [RSP + 0x15],0x0
MOV byte ptr [RSP + 0xf],0x0
MOV byte ptr [RSP + 0x10],0x0
MOV byte ptr [RSP + 0x16],0x0
LEA R14,[RSP + 0x24]
LEA R13,[0x106020]
LEA RBX,[0x103b30]
MOV dword ptr [RSP + 0x24],0x0
MOV R8,R14
MOV RCX,R13
LEA RDX,[0x10307c]
MOV RSI,R12
MOV EDI,EBP
CALL 0x00101090
CMP EAX,-0x1
JZ 0x00101d62
LEA EDX,[RAX + -0x3f]
CMP EDX,0x37
JA 0x00101d20
MOV EDX,EDX
MOVSXD RDX,dword ptr [RBX + RDX*0x4]
ADD RDX,RBX
JMP RDX
MOV byte ptr [RSP + 0x18],0x1
JMP 0x00101c1c
LEA RDI,[0x103568]
MOV EAX,0x0
CALL 0x00101080
MOV EBX,0x0
MOV EAX,EBX
MOV RCX,qword ptr [RSP + 0x28]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x00101fa3
ADD RSP,0x38
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
ADD dword ptr [RSP + 0x1c],0x1
JMP 0x00101c1c
MOV RDI,qword ptr [0x001061c8]
CALL 0x00101140
MOV R15D,EAX
CMP EAX,0x10
JZ 0x00101c1c
CMP EAX,0x20
JZ 0x00101c1c
CMP EAX,0xc
JZ 0x00101c1c
LEA RDI,[0x103a00]
MOV EAX,0x0
CALL 0x00101080
MOV EBX,0x1
JMP 0x00101c78
MOV byte ptr [RSP + 0x16],0x1
JMP 0x00101c1c
MOV byte ptr [RSP + 0xf],0x1
JMP 0x00101c1c
MOV byte ptr [RSP + 0x15],0x1
JMP 0x00101c1c
ADD dword ptr [RSP + 0x8],0x1
MOV byte ptr [RSP + 0x14],0x1
JMP 0x00101c1c
MOV byte ptr [RSP + 0xe],0x1
JMP 0x00101c1c
MOV ESI,EAX
LEA RDI,[0x103a30]
MOV EAX,0x0
CALL 0x00101080
LEA RDI,[0x103568]
MOV EAX,0x0
CALL 0x00101080
MOV EBX,0x1
JMP 0x00101c78
MOV byte ptr [RSP + 0x17],0x1
JMP 0x00101c1c
MOV byte ptr [RSP + 0x10],0x1
JMP 0x00101c1c
MOV EAX,dword ptr [0x001061c0]
MOV EBX,0x0
CMP EAX,EBP
JGE 0x00101d89
MOVSXD RDX,EAX
MOV RBX,qword ptr [R12 + RDX*0x8]
ADD EAX,0x1
MOV dword ptr [0x001061c0],EAX
CMP EAX,EBP
JL 0x00101e53
CMP byte ptr [RSP + 0x14],0x0
JZ 0x00101d9b
CMP byte ptr [RSP + 0xe],0x0
JNZ 0x00101e9b
CMP byte ptr [RSP + 0xe],0x0
JNZ 0x00101eac
TEST RBX,RBX
JZ 0x00101ece
CMP byte ptr [RSP + 0xf],0x0
JZ 0x00101dc8
MOV EDI,0x1
CALL 0x00101040
TEST EAX,EAX
JS 0x00101efa
MOVZX ESI,byte ptr [RSP + 0x15]
MOV R14D,dword ptr [RSP + 0x8]
MOV EDX,R14D
MOV RDI,RBX
CALL 0x00101150
MOV EBP,EAX
TEST EAX,EAX
JS 0x00101f10
MOVZX ECX,byte ptr [RSP + 0x17]
MOVZX ESI,byte ptr [RSP + 0x16]
SUB RSP,0x8
MOV EAX,dword ptr [RSP + 0x10]
PUSH RAX
MOVZX EAX,byte ptr [RSP + 0x1f]
PUSH RAX
MOV EAX,dword ptr [RSP + 0x34]
PUSH RAX
MOV R9D,dword ptr [RSP + 0x30]
AND R9D,0x1
MOV R8D,dword ptr [RSP + 0x38]
AND R8D,0x1
MOV EDX,R15D
MOV EDI,EBP
CALL 0x00101255
MOV EBX,EAX
ADD RSP,0x20
MOV EDI,EBP
CALL 0x00101060
TEST EAX,EAX
JS 0x00101f47
CMP dword ptr [RSP + 0x8],0x0
JZ 0x00101f7c
TEST EBX,EBX
JNS 0x00101c78
MOV EBX,0x63
JMP 0x00101c78
LEA RBX,[0x103a58]
CDQE
MOV RSI,qword ptr [R12 + RAX*0x8]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00101080
MOV EAX,dword ptr [0x001061c0]
ADD EAX,0x1
MOV dword ptr [0x001061c0],EAX
CMP EAX,EBP
JL 0x00101e5a
LEA RDI,[0x103568]
MOV EAX,0x0
CALL 0x00101080
MOV EBX,0x1
JMP 0x00101c78
LEA RDI,[0x103a78]
MOV EAX,0x0
CALL 0x00101080
LEA RSI,[0x103089]
LEA RDI,[0x103097]
MOV EAX,0x0
CALL 0x00101080
MOV EBX,0x0
JMP 0x00101c78
LEA RDI,[0x1030a4]
MOV EAX,0x0
CALL 0x00101080
LEA RDI,[0x103568]
MOV EAX,0x0
CALL 0x00101080
MOV EBX,0x1
JMP 0x00101c78
LEA RDI,[0x1030bb]
CALL 0x00101130
MOV EBX,0xf
JMP 0x00101c78
TEST R14D,R14D
JNZ 0x00101f25
MOV EDI,EBP
NEG EDI
CALL 0x001010f0
MOV EBX,EAX
JMP 0x00101e36
MOV EDI,EAX
NEG EDI
CALL 0x00101110
MOV RDX,RAX
MOV RSI,RBX
LEA RDI,[0x1030ce]
MOV EAX,0x0
CALL 0x00101080
JMP 0x00101f15
NEG EAX
MOV EBP,EAX
MOV EDI,EAX
CALL 0x00101110
MOV RSI,RAX
LEA RDI,[0x1030ea]
MOV EAX,0x0
CALL 0x00101080
TEST EBX,EBX
JNZ 0x00101e36
MOV EDI,EBP
CALL 0x001010f0
MOV EBX,EAX
JMP 0x00101e36
MOV ESI,EBX
LEA RDI,[0x1030fb]
CALL 0x001010e0
TEST AL,AL
JNZ 0x00101e41
LEA RDI,[0x103ab0]
CALL 0x00101080
JMP 0x00101e41
CALL 0x00101070
(translation_unit "int FUN_00101ba8(int param_1,long param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  char local_59;\n  undefined4 local_58;\n  undefined1 local_53;\n  undefined1 local_52;\n  undefined1 local_51;\n  undefined4 local_50;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  local_50 = 0;\n  local_51 = 0;\n  local_53 = 0;\n  local_59 = '\0';\n  local_58 = 0;\n  local_52 = 0;\nLAB_00101c1c:\n  local_44 = 0;\n  iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);\n  if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\n}\n\n" (function_definition "int FUN_00101ba8(int param_1,long param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  char local_59;\n  undefined4 local_58;\n  undefined1 local_53;\n  undefined1 local_52;\n  undefined1 local_51;\n  undefined4 local_50;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  local_50 = 0;\n  local_51 = 0;\n  local_53 = 0;\n  local_59 = '\0';\n  local_58 = 0;\n  local_52 = 0;\nLAB_00101c1c:\n  local_44 = 0;\n  iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);\n  if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\n}" primitive_type (function_declarator "FUN_00101ba8(int param_1,long param_2)" identifier (parameter_list "(int param_1,long param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  char local_59;\n  undefined4 local_58;\n  undefined1 local_53;\n  undefined1 local_52;\n  undefined1 local_51;\n  undefined4 local_50;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  local_50 = 0;\n  local_51 = 0;\n  local_53 = 0;\n  local_59 = '\0';\n  local_58 = 0;\n  local_52 = 0;\nLAB_00101c1c:\n  local_44 = 0;\n  iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);\n  if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "char local_59;" primitive_type identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined1 local_53;" type_identifier identifier ;) (declaration "undefined1 local_52;" type_identifier identifier ;) (declaration "undefined1 local_51;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0x10;" (assignment_expression "iVar5 = 0x10" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_51 = 0;" (assignment_expression "local_51 = 0" identifier = number_literal) ;) (expression_statement "local_53 = 0;" (assignment_expression "local_53 = 0" identifier = number_literal) ;) (expression_statement "local_59 = '\0';" (assignment_expression "local_59 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_52 = 0;" (assignment_expression "local_52 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00101c1c:\n  local_44 = 0;" statement_identifier : (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;)) (expression_statement "iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);" (assignment_expression "iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44)" identifier = (call_expression "getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44)" identifier (argument_list "(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44)" ( identifier , identifier , (string_literal ""cehHil:prRvV"" " string_content ") , (pointer_expression "&PTR_s_ck_cond_00106020" & identifier) , (pointer_expression "&local_44" & identifier) )))) ;) (if_statement "if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }" { (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" identifier = number_literal) ;) (if_statement "if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }" if (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) (compound_statement "{\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }" { (expression_statement "lVar7 = *(long *)(param_2 + (long)optind * 8);" (assignment_expression "lVar7 = *(long *)(param_2 + (long)optind * 8)" identifier = (pointer_expression "*(long *)(param_2 + (long)optind * 8)" * (cast_expression "(long *)(param_2 + (long)optind * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + (long)optind * 8)" ( (binary_expression "param_2 + (long)optind * 8" identifier + (binary_expression "(long)optind * 8" (cast_expression "(long)optind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ))))) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) (if_statement "if (optind < param_1) goto LAB_00101e5a;" if (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) (goto_statement "goto LAB_00101e5a;" goto statement_identifier ;)) })) (if_statement "if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" if (parenthesized_expression "((bVar1) && (bVar2))" ( (binary_expression "(bVar1) && (bVar2)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(bVar2)" ( identifier ))) )) (compound_statement "{\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }" { (expression_statement "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (call_expression "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" identifier (argument_list "("Not in DEBUG mode, so \'-vV\' has no special action\n")" ( (string_literal ""Not in DEBUG mode, so \'-vV\' has no special action\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) }) (else_clause "else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" else (if_statement "if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" { (if_statement "if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }" { (expression_statement "pr2serr("Missing device name!\n\n");" (call_expression "pr2serr("Missing device name!\n\n")" identifier (argument_list "("Missing device name!\n\n")" ( (string_literal ""Missing device name!\n\n"" " string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );" (call_expression "pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               )" identifier (argument_list "(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) }) (else_clause "else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" else (if_statement "if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" if (parenthesized_expression "((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4))" ( (binary_expression "(local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)" (parenthesized_expression "(local_59 == '\0')" ( (binary_expression "local_59 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar4 = sg_set_binary_mode(1), -1 < iVar4)" ( (comma_expression "iVar4 = sg_set_binary_mode(1), -1 < iVar4" (assignment_expression "iVar4 = sg_set_binary_mode(1)" identifier = (call_expression "sg_set_binary_mode(1)" identifier (argument_list "(1)" ( number_literal )))) , (binary_expression "-1 < iVar4" number_literal < identifier)) ))) )) (compound_statement "{\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }" { (expression_statement "iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);" (assignment_expression "iVar4 = sg_cmds_open_device(lVar7,local_53,local_60)" identifier = (call_expression "sg_cmds_open_device(lVar7,local_53,local_60)" identifier (argument_list "(lVar7,local_53,local_60)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }" { (if_statement "if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }" { (expression_statement "uVar6 = safe_strerror(-iVar4);" (assignment_expression "uVar6 = safe_strerror(-iVar4)" identifier = (call_expression "safe_strerror(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) (expression_statement "pr2serr("error opening file: %s: %s\n",lVar7,uVar6);" (call_expression "pr2serr("error opening file: %s: %s\n",lVar7,uVar6)" identifier (argument_list "("error opening file: %s: %s\n",lVar7,uVar6)" ( (string_literal ""error opening file: %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "iVar5 = sg_convert_errno(-iVar4);" (assignment_expression "iVar5 = sg_convert_errno(-iVar4)" identifier = (call_expression "sg_convert_errno(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) }) (else_clause "else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" else (compound_statement "{\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" { (expression_statement "iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);" (assignment_expression "iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60)" identifier = (call_expression "FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60)" identifier (argument_list "(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar4 = sg_cmds_close_device(iVar4);" (assignment_expression "iVar4 = sg_cmds_close_device(iVar4)" identifier = (call_expression "sg_cmds_close_device(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }" { (expression_statement "uVar6 = safe_strerror(-iVar4);" (assignment_expression "uVar6 = safe_strerror(-iVar4)" identifier = (call_expression "safe_strerror(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar6);" (call_expression "pr2serr("close error: %s\n",uVar6)" identifier (argument_list "("close error: %s\n",uVar6)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar5 = sg_convert_errno(-iVar4);\n            }" { (expression_statement "iVar5 = sg_convert_errno(-iVar4);" (assignment_expression "iVar5 = sg_convert_errno(-iVar4)" identifier = (call_expression "sg_convert_errno(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) })) })) }))) (if_statement "if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }" if (parenthesized_expression "((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0'))" ( (binary_expression "(local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')" (parenthesized_expression "(local_60 == 0)" ( (binary_expression "local_60 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')" ( (comma_expression "cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0'" (assignment_expression "cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5)" identifier = (call_expression "sg_if_can2stderr("sg_sat_identify failed: ",iVar5)" identifier (argument_list "("sg_sat_identify failed: ",iVar5)" ( (string_literal ""sg_sat_identify failed: "" " string_content ") , identifier )))) , (binary_expression "cVar3 == '\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 (iVar5 < 0) {\n          iVar5 = 99;\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar5 = 99;\n        }" { (expression_statement "iVar5 = 99;" (assignment_expression "iVar5 = 99" identifier = number_literal) ;) })) }) (else_clause "else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" else (compound_statement "{\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" { (expression_statement "perror("sg_set_binary_mode");" (call_expression "perror("sg_set_binary_mode")" identifier (argument_list "("sg_set_binary_mode")" ( (string_literal ""sg_set_binary_mode"" " string_content ") ))) ;) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) }))))) (goto_statement "goto LAB_00101c78;" goto statement_identifier ;) })))) (expression_statement "pr2serr("version: %s\n","1.17 20180515");" (call_expression "pr2serr("version: %s\n","1.17 20180515")" identifier (argument_list "("version: %s\n","1.17 20180515")" ( (string_literal ""version: %s\n"" " string_content escape_sequence ") , (string_literal ""1.17 20180515"" " string_content ") ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101c78;" goto statement_identifier ;) })) (switch_statement "switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }" switch (parenthesized_expression "(iVar4)" ( identifier )) (compound_statement "{\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }" { (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;" case number_literal : (expression_statement "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" identifier (argument_list "(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;" default : (expression_statement "pr2serr("unrecognised option code 0x%x ??\n",iVar4);" (call_expression "pr2serr("unrecognised option code 0x%x ??\n",iVar4)" identifier (argument_list "("unrecognised option code 0x%x ??\n",iVar4)" ( (string_literal ""unrecognised option code 0x%x ??\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" identifier (argument_list "(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_53 = 1;" (assignment_expression "local_53 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_51 = 1;" (assignment_expression "local_51 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;" case number_literal : (expression_statement "iVar5 = sg_get_num(optarg);" (assignment_expression "iVar5 = sg_get_num(optarg)" identifier = (call_expression "sg_get_num(optarg)" identifier (argument_list "(optarg)" ( identifier )))) ;) (if_statement "if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;" if (parenthesized_expression "(((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc))" ( (binary_expression "((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)" (parenthesized_expression "((iVar5 == 0x10) || (iVar5 == 0x20))" ( (binary_expression "(iVar5 == 0x10) || (iVar5 == 0x20)" (parenthesized_expression "(iVar5 == 0x10)" ( (binary_expression "iVar5 == 0x10" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 0x20)" ( (binary_expression "iVar5 == 0x20" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar5 == 0xc)" ( (binary_expression "iVar5 == 0xc" identifier == number_literal) ))) )) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (expression_statement "pr2serr("argument to \'--len\' should be 12, 16 or 32\n");" (call_expression "pr2serr("argument to \'--len\' should be 12, 16 or 32\n")" identifier (argument_list "("argument to \'--len\' should be 12, 16 or 32\n")" ( (string_literal ""argument to \'--len\' should be 12, 16 or 32\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_52 = 1;" (assignment_expression "local_52 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_59 = '\x01';" (assignment_expression "local_59 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_60 = local_60 + 1;" (assignment_expression "local_60 = local_60 + 1" identifier = (binary_expression "local_60 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) })) (labeled_statement "LAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" statement_identifier : (do_statement "do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" do (compound_statement "{\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  }" { (expression_statement "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));" (call_expression "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" identifier (argument_list "("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" ( (string_literal ""Unexpected extra argument: %s\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined8 *)(param_2 + (long)optind * 8)" * (cast_expression "(undefined8 *)(param_2 + (long)optind * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + (long)optind * 8)" ( (binary_expression "param_2 + (long)optind * 8" identifier + (binary_expression "(long)optind * 8" (cast_expression "(long)optind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) )))) ))) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) ;)) (expression_statement "pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );" (call_expression "pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         )" identifier (argument_list "(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c78;" goto statement_identifier ;) })))
(translation_unit "int main(int argc,char **argv)\n\n{\n  bool bVar1;\n  bool bVar2;\n  _Bool extend;\n  _Bool do_ident;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  _Bool local_59;\n  undefined1 local_53;\n  _Bool local_52;\n  _Bool local_51;\n  int local_4c;\n  int option_index;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  extend = false;\n  local_51 = false;\n  local_53 = 0;\n  local_59 = false;\n  do_ident = false;\n  local_52 = false;\nLAB_00101c1c:\n  option_index = 0;\n  iVar4 = getopt_long(argc,argv,"cehHil:prRvV",long_options,&option_index);\n  if (iVar4 == -1) {\n    pcVar7 = (char *)0x0;\n    if (optind < argc) {\n      pcVar7 = argv[optind];\n      optind = optind + 1;\n      if (optind < argc) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (pcVar7 == (char *)0x0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = true;\n    goto LAB_00101c1c;\n  case 0x65:\n    extend = true;\n    goto LAB_00101c1c;\n  case 0x69:\n    do_ident = true;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = true;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = true;\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  } while (optind < argc);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\n}\n\n" (function_definition "int main(int argc,char **argv)\n\n{\n  bool bVar1;\n  bool bVar2;\n  _Bool extend;\n  _Bool do_ident;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  _Bool local_59;\n  undefined1 local_53;\n  _Bool local_52;\n  _Bool local_51;\n  int local_4c;\n  int option_index;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  extend = false;\n  local_51 = false;\n  local_53 = 0;\n  local_59 = false;\n  do_ident = false;\n  local_52 = false;\nLAB_00101c1c:\n  option_index = 0;\n  iVar4 = getopt_long(argc,argv,"cehHil:prRvV",long_options,&option_index);\n  if (iVar4 == -1) {\n    pcVar7 = (char *)0x0;\n    if (optind < argc) {\n      pcVar7 = argv[optind];\n      optind = optind + 1;\n      if (optind < argc) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (pcVar7 == (char *)0x0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = true;\n    goto LAB_00101c1c;\n  case 0x65:\n    extend = true;\n    goto LAB_00101c1c;\n  case 0x69:\n    do_ident = true;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = true;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = true;\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  } while (optind < argc);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\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  _Bool extend;\n  _Bool do_ident;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  _Bool local_59;\n  undefined1 local_53;\n  _Bool local_52;\n  _Bool local_51;\n  int local_4c;\n  int option_index;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  extend = false;\n  local_51 = false;\n  local_53 = 0;\n  local_59 = false;\n  do_ident = false;\n  local_52 = false;\nLAB_00101c1c:\n  option_index = 0;\n  iVar4 = getopt_long(argc,argv,"cehHil:prRvV",long_options,&option_index);\n  if (iVar4 == -1) {\n    pcVar7 = (char *)0x0;\n    if (optind < argc) {\n      pcVar7 = argv[optind];\n      optind = optind + 1;\n      if (optind < argc) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (pcVar7 == (char *)0x0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = true;\n    goto LAB_00101c1c;\n  case 0x65:\n    extend = true;\n    goto LAB_00101c1c;\n  case 0x69:\n    do_ident = true;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = true;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = true;\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  } while (optind < argc);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "_Bool extend;" type_identifier identifier ;) (declaration "_Bool do_ident;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "_Bool local_59;" type_identifier identifier ;) (declaration "undefined1 local_53;" type_identifier identifier ;) (declaration "_Bool local_52;" type_identifier identifier ;) (declaration "_Bool local_51;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int option_index;" primitive_type identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0x10;" (assignment_expression "iVar5 = 0x10" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "extend = false;" (assignment_expression "extend = false" identifier = false) ;) (expression_statement "local_51 = false;" (assignment_expression "local_51 = false" identifier = false) ;) (expression_statement "local_53 = 0;" (assignment_expression "local_53 = 0" identifier = number_literal) ;) (expression_statement "local_59 = false;" (assignment_expression "local_59 = false" identifier = false) ;) (expression_statement "do_ident = false;" (assignment_expression "do_ident = false" identifier = false) ;) (expression_statement "local_52 = false;" (assignment_expression "local_52 = false" identifier = false) ;) (labeled_statement "LAB_00101c1c:\n  option_index = 0;" statement_identifier : (expression_statement "option_index = 0;" (assignment_expression "option_index = 0" identifier = number_literal) ;)) (expression_statement "iVar4 = getopt_long(argc,argv,"cehHil:prRvV",long_options,&option_index);" (assignment_expression "iVar4 = getopt_long(argc,argv,"cehHil:prRvV",long_options,&option_index)" identifier = (call_expression "getopt_long(argc,argv,"cehHil:prRvV",long_options,&option_index)" identifier (argument_list "(argc,argv,"cehHil:prRvV",long_options,&option_index)" ( identifier , identifier , (string_literal ""cehHil:prRvV"" " string_content ") , identifier , (pointer_expression "&option_index" & identifier) )))) ;) (if_statement "if (iVar4 == -1) {\n    pcVar7 = (char *)0x0;\n    if (optind < argc) {\n      pcVar7 = argv[optind];\n      optind = optind + 1;\n      if (optind < argc) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (pcVar7 == (char *)0x0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n    pcVar7 = (char *)0x0;\n    if (optind < argc) {\n      pcVar7 = argv[optind];\n      optind = optind + 1;\n      if (optind < argc) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (pcVar7 == (char *)0x0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }" { (expression_statement "pcVar7 = (char *)0x0;" (assignment_expression "pcVar7 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (optind < argc) {\n      pcVar7 = argv[optind];\n      optind = optind + 1;\n      if (optind < argc) goto LAB_00101e5a;\n    }" if (parenthesized_expression "(optind < argc)" ( (binary_expression "optind < argc" identifier < identifier) )) (compound_statement "{\n      pcVar7 = argv[optind];\n      optind = optind + 1;\n      if (optind < argc) goto LAB_00101e5a;\n    }" { (expression_statement "pcVar7 = argv[optind];" (assignment_expression "pcVar7 = argv[optind]" identifier = (subscript_expression "argv[optind]" identifier [ identifier ])) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) (if_statement "if (optind < argc) goto LAB_00101e5a;" if (parenthesized_expression "(optind < argc)" ( (binary_expression "optind < argc" identifier < identifier) )) (goto_statement "goto LAB_00101e5a;" goto statement_identifier ;)) })) (if_statement "if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (pcVar7 == (char *)0x0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" if (parenthesized_expression "((bVar1) && (bVar2))" ( (binary_expression "(bVar1) && (bVar2)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(bVar2)" ( identifier ))) )) (compound_statement "{\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }" { (expression_statement "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (call_expression "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" identifier (argument_list "("Not in DEBUG mode, so \'-vV\' has no special action\n")" ( (string_literal ""Not in DEBUG mode, so \'-vV\' has no special action\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) }) (else_clause "else if (!bVar2) {\n      if (pcVar7 == (char *)0x0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" else (if_statement "if (!bVar2) {\n      if (pcVar7 == (char *)0x0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n      if (pcVar7 == (char *)0x0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" { (if_statement "if (pcVar7 == (char *)0x0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }" { (expression_statement "pr2serr("Missing device name!\n\n");" (call_expression "pr2serr("Missing device name!\n\n")" identifier (argument_list "("Missing device name!\n\n")" ( (string_literal ""Missing device name!\n\n"" " string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );" (call_expression "pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               )" identifier (argument_list "(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) }) (else_clause "else if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" else (if_statement "if ((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" if (parenthesized_expression "((local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4))" ( (binary_expression "(local_59 == false) || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)" (parenthesized_expression "(local_59 == false)" ( (binary_expression "local_59 == false" identifier == false) )) || (parenthesized_expression "(iVar4 = sg_set_binary_mode(1), -1 < iVar4)" ( (comma_expression "iVar4 = sg_set_binary_mode(1), -1 < iVar4" (assignment_expression "iVar4 = sg_set_binary_mode(1)" identifier = (call_expression "sg_set_binary_mode(1)" identifier (argument_list "(1)" ( number_literal )))) , (binary_expression "-1 < iVar4" number_literal < identifier)) ))) )) (compound_statement "{\n        iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }" { (expression_statement "iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60);" (assignment_expression "iVar4 = sg_cmds_open_device(pcVar7,local_53,local_60)" identifier = (call_expression "sg_cmds_open_device(pcVar7,local_53,local_60)" identifier (argument_list "(pcVar7,local_53,local_60)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }" { (if_statement "if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);\n          }" { (expression_statement "uVar6 = safe_strerror(-iVar4);" (assignment_expression "uVar6 = safe_strerror(-iVar4)" identifier = (call_expression "safe_strerror(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) (expression_statement "pr2serr("error opening file: %s: %s\n",pcVar7,uVar6);" (call_expression "pr2serr("error opening file: %s: %s\n",pcVar7,uVar6)" identifier (argument_list "("error opening file: %s: %s\n",pcVar7,uVar6)" ( (string_literal ""error opening file: %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "iVar5 = sg_convert_errno(-iVar4);" (assignment_expression "iVar5 = sg_convert_errno(-iVar4)" identifier = (call_expression "sg_convert_errno(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) }) (else_clause "else {\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" else (compound_statement "{\n          iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" { (expression_statement "iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60);" (assignment_expression "iVar5 = do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60)" identifier = (call_expression "do_identify_dev(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60)" identifier (argument_list "(iVar4,local_52,iVar5,local_51,extend,do_ident,local_4c,local_59,\n                                  local_60)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar4 = sg_cmds_close_device(iVar4);" (assignment_expression "iVar4 = sg_cmds_close_device(iVar4)" identifier = (call_expression "sg_cmds_close_device(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }" { (expression_statement "uVar6 = safe_strerror(-iVar4);" (assignment_expression "uVar6 = safe_strerror(-iVar4)" identifier = (call_expression "safe_strerror(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar6);" (call_expression "pr2serr("close error: %s\n",uVar6)" identifier (argument_list "("close error: %s\n",uVar6)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar5 = sg_convert_errno(-iVar4);\n            }" { (expression_statement "iVar5 = sg_convert_errno(-iVar4);" (assignment_expression "iVar5 = sg_convert_errno(-iVar4)" identifier = (call_expression "sg_convert_errno(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) })) })) }))) (if_statement "if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }" if (parenthesized_expression "((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0'))" ( (binary_expression "(local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')" (parenthesized_expression "(local_60 == 0)" ( (binary_expression "local_60 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')" ( (comma_expression "cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0'" (assignment_expression "cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5)" identifier = (call_expression "sg_if_can2stderr("sg_sat_identify failed: ",iVar5)" identifier (argument_list "("sg_sat_identify failed: ",iVar5)" ( (string_literal ""sg_sat_identify failed: "" " string_content ") , identifier )))) , (binary_expression "cVar3 == '\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 (iVar5 < 0) {\n          iVar5 = 99;\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar5 = 99;\n        }" { (expression_statement "iVar5 = 99;" (assignment_expression "iVar5 = 99" identifier = number_literal) ;) })) }) (else_clause "else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" else (compound_statement "{\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" { (expression_statement "perror("sg_set_binary_mode");" (call_expression "perror("sg_set_binary_mode")" identifier (argument_list "("sg_set_binary_mode")" ( (string_literal ""sg_set_binary_mode"" " string_content ") ))) ;) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) }))))) (goto_statement "goto LAB_00101c78;" goto statement_identifier ;) })))) (expression_statement "pr2serr("version: %s\n","1.17 20180515");" (call_expression "pr2serr("version: %s\n","1.17 20180515")" identifier (argument_list "("version: %s\n","1.17 20180515")" ( (string_literal ""version: %s\n"" " string_content escape_sequence ") , (string_literal ""1.17 20180515"" " string_content ") ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101c78;" goto statement_identifier ;) })) (switch_statement "switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = true;\n    goto LAB_00101c1c;\n  case 0x65:\n    extend = true;\n    goto LAB_00101c1c;\n  case 0x69:\n    do_ident = true;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = true;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = true;\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }" switch (parenthesized_expression "(iVar4)" ( identifier )) (compound_statement "{\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = true;\n    goto LAB_00101c1c;\n  case 0x65:\n    extend = true;\n    goto LAB_00101c1c;\n  case 0x69:\n    do_ident = true;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = true;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = true;\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }" { (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;" case number_literal : (expression_statement "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" identifier (argument_list "(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;" default : (expression_statement "pr2serr("unrecognised option code 0x%x ??\n",iVar4);" (call_expression "pr2serr("unrecognised option code 0x%x ??\n",iVar4)" identifier (argument_list "("unrecognised option code 0x%x ??\n",iVar4)" ( (string_literal ""unrecognised option code 0x%x ??\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" identifier (argument_list "(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_53 = 1;" (assignment_expression "local_53 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 99:\n    local_51 = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_51 = true;" (assignment_expression "local_51 = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x65:\n    extend = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "extend = true;" (assignment_expression "extend = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x69:\n    do_ident = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "do_ident = true;" (assignment_expression "do_ident = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;" case number_literal : (expression_statement "iVar5 = sg_get_num(optarg);" (assignment_expression "iVar5 = sg_get_num(optarg)" identifier = (call_expression "sg_get_num(optarg)" identifier (argument_list "(optarg)" ( identifier )))) ;) (if_statement "if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;" if (parenthesized_expression "(((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc))" ( (binary_expression "((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)" (parenthesized_expression "((iVar5 == 0x10) || (iVar5 == 0x20))" ( (binary_expression "(iVar5 == 0x10) || (iVar5 == 0x20)" (parenthesized_expression "(iVar5 == 0x10)" ( (binary_expression "iVar5 == 0x10" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 0x20)" ( (binary_expression "iVar5 == 0x20" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar5 == 0xc)" ( (binary_expression "iVar5 == 0xc" identifier == number_literal) ))) )) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (expression_statement "pr2serr("argument to \'--len\' should be 12, 16 or 32\n");" (call_expression "pr2serr("argument to \'--len\' should be 12, 16 or 32\n")" identifier (argument_list "("argument to \'--len\' should be 12, 16 or 32\n")" ( (string_literal ""argument to \'--len\' should be 12, 16 or 32\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x70:\n    local_52 = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_52 = true;" (assignment_expression "local_52 = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x72:\n    local_59 = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_59 = true;" (assignment_expression "local_59 = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_60 = local_60 + 1;" (assignment_expression "local_60 = local_60 + 1" identifier = (binary_expression "local_60 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) })) (labeled_statement "LAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  } while (optind < argc);" statement_identifier : (do_statement "do {\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  } while (optind < argc);" do (compound_statement "{\n    pr2serr("Unexpected extra argument: %s\n",argv[optind]);\n    optind = optind + 1;\n  }" { (expression_statement "pr2serr("Unexpected extra argument: %s\n",argv[optind]);" (call_expression "pr2serr("Unexpected extra argument: %s\n",argv[optind])" identifier (argument_list "("Unexpected extra argument: %s\n",argv[optind])" ( (string_literal ""Unexpected extra argument: %s\n"" " string_content escape_sequence ") , (subscript_expression "argv[optind]" identifier [ identifier ]) ))) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(optind < argc)" ( (binary_expression "optind < argc" identifier < identifier) )) ;)) (expression_statement "pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );" (call_expression "pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         )" identifier (argument_list "(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c78;" goto statement_identifier ;) })))
(translation_unit "int FUN_00101ba8(int param_1,long param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  char local_59;\n  undefined4 local_58;\n  undefined1 local_53;\n  undefined1 local_52;\n  undefined1 local_51;\n  undefined4 local_50;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  local_50 = 0;\n  local_51 = 0;\n  local_53 = 0;\n  local_59 = '\0';\n  local_58 = 0;\n  local_52 = 0;\nLAB_00101c1c:\n  local_44 = 0;\n  iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);\n  if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    \n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\n}\n\n" (function_definition "int FUN_00101ba8(int param_1,long param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  char local_59;\n  undefined4 local_58;\n  undefined1 local_53;\n  undefined1 local_52;\n  undefined1 local_51;\n  undefined4 local_50;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  local_50 = 0;\n  local_51 = 0;\n  local_53 = 0;\n  local_59 = '\0';\n  local_58 = 0;\n  local_52 = 0;\nLAB_00101c1c:\n  local_44 = 0;\n  iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);\n  if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    \n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\n}" primitive_type (function_declarator "FUN_00101ba8(int param_1,long param_2)" identifier (parameter_list "(int param_1,long param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  char local_59;\n  undefined4 local_58;\n  undefined1 local_53;\n  undefined1 local_52;\n  undefined1 local_51;\n  undefined4 local_50;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  local_50 = 0;\n  local_51 = 0;\n  local_53 = 0;\n  local_59 = '\0';\n  local_58 = 0;\n  local_52 = 0;\nLAB_00101c1c:\n  local_44 = 0;\n  iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);\n  if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    \n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "char local_59;" primitive_type identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined1 local_53;" type_identifier identifier ;) (declaration "undefined1 local_52;" type_identifier identifier ;) (declaration "undefined1 local_51;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0x10;" (assignment_expression "iVar5 = 0x10" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_51 = 0;" (assignment_expression "local_51 = 0" identifier = number_literal) ;) (expression_statement "local_53 = 0;" (assignment_expression "local_53 = 0" identifier = number_literal) ;) (expression_statement "local_59 = '\0';" (assignment_expression "local_59 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_52 = 0;" (assignment_expression "local_52 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00101c1c:\n  local_44 = 0;" statement_identifier : (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;)) (expression_statement "iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);" (assignment_expression "iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44)" identifier = (call_expression "getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44)" identifier (argument_list "(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44)" ( identifier , identifier , (string_literal ""cehHil:prRvV"" " string_content ") , (pointer_expression "&PTR_s_ck_cond_00106020" & identifier) , (pointer_expression "&local_44" & identifier) )))) ;) (if_statement "if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }" { (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" identifier = number_literal) ;) (if_statement "if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }" if (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) (compound_statement "{\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }" { (expression_statement "lVar7 = *(long *)(param_2 + (long)optind * 8);" (assignment_expression "lVar7 = *(long *)(param_2 + (long)optind * 8)" identifier = (pointer_expression "*(long *)(param_2 + (long)optind * 8)" * (cast_expression "(long *)(param_2 + (long)optind * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + (long)optind * 8)" ( (binary_expression "param_2 + (long)optind * 8" identifier + (binary_expression "(long)optind * 8" (cast_expression "(long)optind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ))))) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) (if_statement "if (optind < param_1) goto LAB_00101e5a;" if (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) (goto_statement "goto LAB_00101e5a;" goto statement_identifier ;)) })) (if_statement "if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" if (parenthesized_expression "((bVar1) && (bVar2))" ( (binary_expression "(bVar1) && (bVar2)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(bVar2)" ( identifier ))) )) (compound_statement "{\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }" { (expression_statement "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (call_expression "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" identifier (argument_list "("Not in DEBUG mode, so \'-vV\' has no special action\n")" ( (string_literal ""Not in DEBUG mode, so \'-vV\' has no special action\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) }) (else_clause "else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" else (if_statement "if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" { (if_statement "if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }" { (expression_statement "pr2serr("Missing device name!\n\n");" (call_expression "pr2serr("Missing device name!\n\n")" identifier (argument_list "("Missing device name!\n\n")" ( (string_literal ""Missing device name!\n\n"" " string_content escape_sequence escape_sequence ") ))) ;) (expression_statement "pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );" (call_expression "pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               )" identifier (argument_list "(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) }) (else_clause "else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" else (if_statement "if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" if (parenthesized_expression "((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4))" ( (binary_expression "(local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)" (parenthesized_expression "(local_59 == '\0')" ( (binary_expression "local_59 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar4 = sg_set_binary_mode(1), -1 < iVar4)" ( (comma_expression "iVar4 = sg_set_binary_mode(1), -1 < iVar4" (assignment_expression "iVar4 = sg_set_binary_mode(1)" identifier = (call_expression "sg_set_binary_mode(1)" identifier (argument_list "(1)" ( number_literal )))) , (binary_expression "-1 < iVar4" number_literal < identifier)) ))) )) (compound_statement "{\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }" { (expression_statement "iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);" (assignment_expression "iVar4 = sg_cmds_open_device(lVar7,local_53,local_60)" identifier = (call_expression "sg_cmds_open_device(lVar7,local_53,local_60)" identifier (argument_list "(lVar7,local_53,local_60)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }" { (if_statement "if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }" { (expression_statement "uVar6 = safe_strerror(-iVar4);" (assignment_expression "uVar6 = safe_strerror(-iVar4)" identifier = (call_expression "safe_strerror(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) (expression_statement "pr2serr("error opening file: %s: %s\n",lVar7,uVar6);" (call_expression "pr2serr("error opening file: %s: %s\n",lVar7,uVar6)" identifier (argument_list "("error opening file: %s: %s\n",lVar7,uVar6)" ( (string_literal ""error opening file: %s: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "iVar5 = sg_convert_errno(-iVar4);" (assignment_expression "iVar5 = sg_convert_errno(-iVar4)" identifier = (call_expression "sg_convert_errno(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) }) (else_clause "else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" else (compound_statement "{\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" { (expression_statement "iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);" (assignment_expression "iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60)" identifier = (call_expression "FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60)" identifier (argument_list "(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar4 = sg_cmds_close_device(iVar4);" (assignment_expression "iVar4 = sg_cmds_close_device(iVar4)" identifier = (call_expression "sg_cmds_close_device(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }" { (expression_statement "uVar6 = safe_strerror(-iVar4);" (assignment_expression "uVar6 = safe_strerror(-iVar4)" identifier = (call_expression "safe_strerror(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) (expression_statement "pr2serr("close error: %s\n",uVar6);" (call_expression "pr2serr("close error: %s\n",uVar6)" identifier (argument_list "("close error: %s\n",uVar6)" ( (string_literal ""close error: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar5 = sg_convert_errno(-iVar4);\n            }" { (expression_statement "iVar5 = sg_convert_errno(-iVar4);" (assignment_expression "iVar5 = sg_convert_errno(-iVar4)" identifier = (call_expression "sg_convert_errno(-iVar4)" identifier (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) })) })) }))) (if_statement "if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }" if (parenthesized_expression "((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0'))" ( (binary_expression "(local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')" (parenthesized_expression "(local_60 == 0)" ( (binary_expression "local_60 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')" ( (comma_expression "cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0'" (assignment_expression "cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5)" identifier = (call_expression "sg_if_can2stderr("sg_sat_identify failed: ",iVar5)" identifier (argument_list "("sg_sat_identify failed: ",iVar5)" ( (string_literal ""sg_sat_identify failed: "" " string_content ") , identifier )))) , (binary_expression "cVar3 == '\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 (iVar5 < 0) {\n          iVar5 = 99;\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar5 = 99;\n        }" { (expression_statement "iVar5 = 99;" (assignment_expression "iVar5 = 99" identifier = number_literal) ;) })) }) (else_clause "else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" else (compound_statement "{\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" { (expression_statement "perror("sg_set_binary_mode");" (call_expression "perror("sg_set_binary_mode")" identifier (argument_list "("sg_set_binary_mode")" ( (string_literal ""sg_set_binary_mode"" " string_content ") ))) ;) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) }))))) (goto_statement "goto LAB_00101c78;" goto statement_identifier ;) })))) (expression_statement "pr2serr("version: %s\n","1.17 20180515");" (call_expression "pr2serr("version: %s\n","1.17 20180515")" identifier (argument_list "("version: %s\n","1.17 20180515")" ( (string_literal ""version: %s\n"" " string_content escape_sequence ") , (string_literal ""1.17 20180515"" " string_content ") ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00101c78;" goto statement_identifier ;) })) (switch_statement "switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }" switch (parenthesized_expression "(iVar4)" ( identifier )) (compound_statement "{\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }" { (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;" case number_literal : (expression_statement "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" identifier (argument_list "(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;" default : (expression_statement "pr2serr("unrecognised option code 0x%x ??\n",iVar4);" (call_expression "pr2serr("unrecognised option code 0x%x ??\n",iVar4)" identifier (argument_list "("unrecognised option code 0x%x ??\n",iVar4)" ( (string_literal ""unrecognised option code 0x%x ??\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" identifier (argument_list "(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_53 = 1;" (assignment_expression "local_53 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_51 = 1;" (assignment_expression "local_51 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;" case number_literal : (expression_statement "iVar5 = sg_get_num(optarg);" (assignment_expression "iVar5 = sg_get_num(optarg)" identifier = (call_expression "sg_get_num(optarg)" identifier (argument_list "(optarg)" ( identifier )))) ;) (if_statement "if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;" if (parenthesized_expression "(((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc))" ( (binary_expression "((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)" (parenthesized_expression "((iVar5 == 0x10) || (iVar5 == 0x20))" ( (binary_expression "(iVar5 == 0x10) || (iVar5 == 0x20)" (parenthesized_expression "(iVar5 == 0x10)" ( (binary_expression "iVar5 == 0x10" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 0x20)" ( (binary_expression "iVar5 == 0x20" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar5 == 0xc)" ( (binary_expression "iVar5 == 0xc" identifier == number_literal) ))) )) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (expression_statement "pr2serr("argument to \'--len\' should be 12, 16 or 32\n");" (call_expression "pr2serr("argument to \'--len\' should be 12, 16 or 32\n")" identifier (argument_list "("argument to \'--len\' should be 12, 16 or 32\n")" ( (string_literal ""argument to \'--len\' should be 12, 16 or 32\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_52 = 1;" (assignment_expression "local_52 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_59 = '\x01';" (assignment_expression "local_59 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) (case_statement "case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;" case number_literal : (expression_statement "local_60 = local_60 + 1;" (assignment_expression "local_60 = local_60 + 1" identifier = (binary_expression "local_60 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_00101c1c;" goto statement_identifier ;)) })) (labeled_statement "LAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" statement_identifier : (do_statement "do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" do (compound_statement "{\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  }" { (expression_statement "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));" (call_expression "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" identifier (argument_list "("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" ( (string_literal ""Unexpected extra argument: %s\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined8 *)(param_2 + (long)optind * 8)" * (cast_expression "(undefined8 *)(param_2 + (long)optind * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + (long)optind * 8)" ( (binary_expression "param_2 + (long)optind * 8" identifier + (binary_expression "(long)optind * 8" (cast_expression "(long)optind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) )))) ))) ;) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" identifier = (binary_expression "optind + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(optind < param_1)" ( (binary_expression "optind < param_1" identifier < identifier) )) ;)) (expression_statement "pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );" (call_expression "pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         )" identifier (argument_list "(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         )" ( (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\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 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 string_content escape_sequence ") ))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00101c78;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (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) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( IDENT ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (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 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 string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (unary_expression - IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (unary_expression - IDENT) )))) ;) })) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (goto_statement goto statement_identifier ;) })))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 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 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 string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (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 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 string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) )))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;)) (expression_statement (call_expression IDENT (argument_list ( (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 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 string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "int FUN_00101ba8(int param_1,long param_2)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  char local_59;\n  undefined4 local_58;\n  undefined1 local_53;\n  undefined1 local_52;\n  undefined1 local_51;\n  undefined4 local_50;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  local_50 = 0;\n  local_51 = 0;\n  local_53 = 0;\n  local_59 = '\0';\n  local_58 = 0;\n  local_52 = 0;\nLAB_00101c1c:\n  local_44 = 0;\n  iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);\n  if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    \n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\n}" (primitive_type "int") (function_declarator "FUN_00101ba8(int param_1,long param_2)" (identifier "FUN_00101ba8") (parameter_list "(int param_1,long param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  int local_60;\n  char local_59;\n  undefined4 local_58;\n  undefined1 local_53;\n  undefined1 local_52;\n  undefined1 local_51;\n  undefined4 local_50;\n  int local_4c;\n  undefined4 local_44;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  local_4c = 0;\n  iVar5 = 0x10;\n  bVar2 = false;\n  bVar1 = false;\n  local_50 = 0;\n  local_51 = 0;\n  local_53 = 0;\n  local_59 = '\0';\n  local_58 = 0;\n  local_52 = 0;\nLAB_00101c1c:\n  local_44 = 0;\n  iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);\n  if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }\n  switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }\nLAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }\n                    \n  __stack_chk_fail();\nLAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);\n  pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );\n  iVar5 = 1;\n  goto LAB_00101c78;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "char local_59;" (primitive_type "char") (identifier "local_59") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined1 local_53;" (type_identifier "undefined1") (identifier "local_53") (; ";")) (declaration "undefined1 local_52;" (type_identifier "undefined1") (identifier "local_52") (; ";")) (declaration "undefined1 local_51;" (type_identifier "undefined1") (identifier "local_51") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = 0x10;" (assignment_expression "iVar5 = 0x10" (identifier "iVar5") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_51 = 0;" (assignment_expression "local_51 = 0" (identifier "local_51") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_53 = 0;" (assignment_expression "local_53 = 0" (identifier "local_53") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_59 = '\0';" (assignment_expression "local_59 = '\0'" (identifier "local_59") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_52 = 0;" (assignment_expression "local_52 = 0" (identifier "local_52") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00101c1c:\n  local_44 = 0;" (statement_identifier "LAB_00101c1c") (: ":") (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);" (assignment_expression "iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44)" (identifier "iVar4") (= "=") (call_expression "getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44)" (identifier "getopt_long") (argument_list "(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (string_literal ""cehHil:prRvV"" (" """) (string_content "cehHil:prRvV") (" """)) (, ",") (pointer_expression "&PTR_s_ck_cond_00106020" (& "&") (identifier "PTR_s_ck_cond_00106020")) (, ",") (pointer_expression "&local_44" (& "&") (identifier "local_44")) () ")")))) (; ";")) (if_statement "if (iVar4 == -1) {\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }" (if "if") (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    lVar7 = 0;\n    if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }\n    if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }\n    pr2serr("version: %s\n","1.17 20180515");\n    iVar5 = 0;\n    goto LAB_00101c78;\n  }" ({ "{") (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" (identifier "lVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if (optind < param_1) {\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }" (if "if") (parenthesized_expression "(optind < param_1)" (( "(") (binary_expression "optind < param_1" (identifier "optind") (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n      lVar7 = *(long *)(param_2 + (long)optind * 8);\n      optind = optind + 1;\n      if (optind < param_1) goto LAB_00101e5a;\n    }" ({ "{") (expression_statement "lVar7 = *(long *)(param_2 + (long)optind * 8);" (assignment_expression "lVar7 = *(long *)(param_2 + (long)optind * 8)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(param_2 + (long)optind * 8)" (* "*") (cast_expression "(long *)(param_2 + (long)optind * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + (long)optind * 8)" (( "(") (binary_expression "param_2 + (long)optind * 8" (identifier "param_2") (+ "+") (binary_expression "(long)optind * 8" (cast_expression "(long)optind" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "optind")) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" (identifier "optind") (= "=") (binary_expression "optind + 1" (identifier "optind") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (optind < param_1) goto LAB_00101e5a;" (if "if") (parenthesized_expression "(optind < param_1)" (( "(") (binary_expression "optind < param_1" (identifier "optind") (< "<") (identifier "param_1")) () ")")) (goto_statement "goto LAB_00101e5a;" (goto "goto") (statement_identifier "LAB_00101e5a") (; ";"))) (} "}"))) (if_statement "if ((bVar1) && (bVar2)) {\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }\n    else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" (if "if") (parenthesized_expression "((bVar1) && (bVar2))" (( "(") (binary_expression "(bVar1) && (bVar2)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (&& "&&") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")"))) () ")")) (compound_statement "{\n      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");\n    }" ({ "{") (expression_statement "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");" (call_expression "pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n")" (identifier "pr2serr") (argument_list "("Not in DEBUG mode, so \'-vV\' has no special action\n")" (( "(") (string_literal ""Not in DEBUG mode, so \'-vV\' has no special action\n"" (" """) (string_content "Not in DEBUG mode, so ") (escape_sequence "\'") (string_content "-vV") (escape_sequence "\'") (string_content " has no special action") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" (else "else") (if_statement "if (!bVar2) {\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" (if "if") (parenthesized_expression "(!bVar2)" (( "(") (unary_expression "!bVar2" (! "!") (identifier "bVar2")) () ")")) (compound_statement "{\n      if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }\n      goto LAB_00101c78;\n    }" ({ "{") (if_statement "if (lVar7 == 0) {\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }\n      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pr2serr("Missing device name!\n\n");\n        pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );\n        iVar5 = 1;\n      }" ({ "{") (expression_statement "pr2serr("Missing device name!\n\n");" (call_expression "pr2serr("Missing device name!\n\n")" (identifier "pr2serr") (argument_list "("Missing device name!\n\n")" (( "(") (string_literal ""Missing device name!\n\n"" (" """) (string_content "Missing device name!") (escape_sequence "\n") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               );" (call_expression "pr2serr(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               )" (identifier "pr2serr") (argument_list "(\n               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n               )" (( "(") (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"" (" """) (string_content "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]") (escape_sequence "\n") (string_content "                       [--len=CLEN] [--packet] [--raw] [--readonly]") (escape_sequence "\n") (string_content "                       [--verbose] [--version] DEVICE") (escape_sequence "\n") (string_content "  where:") (escape_sequence "\n") (string_content "    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)") (escape_sequence "\n") (string_content "    --extend|-e      sets extend bit in cdb (def: 0)") (escape_sequence "\n") (string_content "    --help|-h        print out usage message then exit") (escape_sequence "\n") (string_content "    --hex|-H         output response in hex") (escape_sequence "\n") (string_content "    --ident|-i       output WWN prefixed by 0x, if not available output") (escape_sequence "\n") (string_content "                     0x0000000000000000") (escape_sequence "\n") (string_content "    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes") (escape_sequence "\n") (string_content "                           (default: 16)") (escape_sequence "\n") (string_content "    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)") (escape_sequence "\n") (string_content "                     command") (escape_sequence "\n") (string_content "    --raw|-r         output response in binary to stdout") (escape_sequence "\n") (string_content "    --readonly|-R    open DEVICE read-only (def: read-write)") (escape_sequence "\n") (string_content "    --verbose|-v     increase verbosity") (escape_sequence "\n") (string_content "    --version|-V     print version string and exit") (escape_sequence "\n") (escape_sequence "\n") (string_content "Performs a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using") (escape_sequence "\n") (string_content "a SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers") (escape_sequence "\n") (string_content "compliant with SAT-4 revision 5 or later will support the SCSI ATA") (escape_sequence "\n") (string_content "PASS-THROUGH(32) command.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" (else "else") (if_statement "if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }\n      else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" (if "if") (parenthesized_expression "((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4))" (( "(") (binary_expression "(local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)" (parenthesized_expression "(local_59 == '\0')" (( "(") (binary_expression "local_59 == '\0'" (identifier "local_59") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(iVar4 = sg_set_binary_mode(1), -1 < iVar4)" (( "(") (comma_expression "iVar4 = sg_set_binary_mode(1), -1 < iVar4" (assignment_expression "iVar4 = sg_set_binary_mode(1)" (identifier "iVar4") (= "=") (call_expression "sg_set_binary_mode(1)" (identifier "sg_set_binary_mode") (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (, ",") (binary_expression "-1 < iVar4" (number_literal "-1") (< "<") (identifier "iVar4"))) () ")"))) () ")")) (compound_statement "{\n        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);\n        if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }\n        if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }\n        if (iVar5 < 0) {\n          iVar5 = 99;\n        }\n      }" ({ "{") (expression_statement "iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);" (assignment_expression "iVar4 = sg_cmds_open_device(lVar7,local_53,local_60)" (identifier "iVar4") (= "=") (call_expression "sg_cmds_open_device(lVar7,local_53,local_60)" (identifier "sg_cmds_open_device") (argument_list "(lVar7,local_53,local_60)" (( "(") (identifier "lVar7") (, ",") (identifier "local_53") (, ",") (identifier "local_60") () ")")))) (; ";")) (if_statement "if (iVar4 < 0) {\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }\n        else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }\n          iVar5 = sg_convert_errno(-iVar4);\n        }" ({ "{") (if_statement "if (local_60 != 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }" (if "if") (parenthesized_expression "(local_60 != 0)" (( "(") (binary_expression "local_60 != 0" (identifier "local_60") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);\n          }" ({ "{") (expression_statement "uVar6 = safe_strerror(-iVar4);" (assignment_expression "uVar6 = safe_strerror(-iVar4)" (identifier "uVar6") (= "=") (call_expression "safe_strerror(-iVar4)" (identifier "safe_strerror") (argument_list "(-iVar4)" (( "(") (unary_expression "-iVar4" (- "-") (identifier "iVar4")) () ")")))) (; ";")) (expression_statement "pr2serr("error opening file: %s: %s\n",lVar7,uVar6);" (call_expression "pr2serr("error opening file: %s: %s\n",lVar7,uVar6)" (identifier "pr2serr") (argument_list "("error opening file: %s: %s\n",lVar7,uVar6)" (( "(") (string_literal ""error opening file: %s: %s\n"" (" """) (string_content "error opening file: %s: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "lVar7") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = sg_convert_errno(-iVar4);" (assignment_expression "iVar5 = sg_convert_errno(-iVar4)" (identifier "iVar5") (= "=") (call_expression "sg_convert_errno(-iVar4)" (identifier "sg_convert_errno") (argument_list "(-iVar4)" (( "(") (unary_expression "-iVar4" (- "-") (identifier "iVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" (else "else") (compound_statement "{\n          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);\n          iVar4 = sg_cmds_close_device(iVar4);\n          if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }\n        }" ({ "{") (expression_statement "iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60);" (assignment_expression "iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60)" (identifier "iVar5") (= "=") (call_expression "FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60)" (identifier "FUN_00101255") (argument_list "(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,\n                               local_60)" (( "(") (identifier "iVar4") (, ",") (identifier "local_52") (, ",") (identifier "iVar5") (, ",") (identifier "local_51") (, ",") (identifier "local_50") (, ",") (identifier "local_58") (, ",") (identifier "local_4c") (, ",") (identifier "local_59") (, ",") (identifier "local_60") () ")")))) (; ";")) (expression_statement "iVar4 = sg_cmds_close_device(iVar4);" (assignment_expression "iVar4 = sg_cmds_close_device(iVar4)" (identifier "iVar4") (= "=") (call_expression "sg_cmds_close_device(iVar4)" (identifier "sg_cmds_close_device") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";")) (if_statement "if (iVar4 < 0) {\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar6 = safe_strerror(-iVar4);\n            pr2serr("close error: %s\n",uVar6);\n            if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }\n          }" ({ "{") (expression_statement "uVar6 = safe_strerror(-iVar4);" (assignment_expression "uVar6 = safe_strerror(-iVar4)" (identifier "uVar6") (= "=") (call_expression "safe_strerror(-iVar4)" (identifier "safe_strerror") (argument_list "(-iVar4)" (( "(") (unary_expression "-iVar4" (- "-") (identifier "iVar4")) () ")")))) (; ";")) (expression_statement "pr2serr("close error: %s\n",uVar6);" (call_expression "pr2serr("close error: %s\n",uVar6)" (identifier "pr2serr") (argument_list "("close error: %s\n",uVar6)" (( "(") (string_literal ""close error: %s\n"" (" """) (string_content "close error: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar6") () ")"))) (; ";")) (if_statement "if (iVar5 == 0) {\n              iVar5 = sg_convert_errno(-iVar4);\n            }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar5 = sg_convert_errno(-iVar4);\n            }" ({ "{") (expression_statement "iVar5 = sg_convert_errno(-iVar4);" (assignment_expression "iVar5 = sg_convert_errno(-iVar4)" (identifier "iVar5") (= "=") (call_expression "sg_convert_errno(-iVar4)" (identifier "sg_convert_errno") (argument_list "(-iVar4)" (( "(") (unary_expression "-iVar4" (- "-") (identifier "iVar4")) () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (if_statement "if ((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {\n          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");\n        }" (if "if") (parenthesized_expression "((local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0'))" (( "(") (binary_expression "(local_60 == 0) &&\n           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')" (parenthesized_expression "(local_60 == 0)" (( "(") (binary_expression "local_60 == 0" (identifier "local_60") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')" (( "(") (comma_expression "cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0'" (assignment_expression "cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5)" (identifier "cVar3") (= "=") (call_expression "sg_if_can2stderr("sg_sat_identify failed: ",iVar5)" (identifier "sg_if_can2stderr") (argument_list "("sg_sat_identify failed: ",iVar5)" (( "(") (string_literal ""sg_sat_identify failed: "" (" """) (string_content "sg_sat_identify failed: ") (" """)) (, ",") (identifier "iVar5") () ")")))) (, ",") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (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 (iVar5 < 0) {\n          iVar5 = 99;\n        }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar5 = 99;\n        }" ({ "{") (expression_statement "iVar5 = 99;" (assignment_expression "iVar5 = 99" (identifier "iVar5") (= "=") (number_literal "99")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" (else "else") (compound_statement "{\n        perror("sg_set_binary_mode");\n        iVar5 = 0xf;\n      }" ({ "{") (expression_statement "perror("sg_set_binary_mode");" (call_expression "perror("sg_set_binary_mode")" (identifier "perror") (argument_list "("sg_set_binary_mode")" (( "(") (string_literal ""sg_set_binary_mode"" (" """) (string_content "sg_set_binary_mode") (" """)) () ")"))) (; ";")) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" (identifier "iVar5") (= "=") (number_literal "0xf")) (; ";")) (} "}")))))) (goto_statement "goto LAB_00101c78;" (goto "goto") (statement_identifier "LAB_00101c78") (; ";")) (} "}"))))) (expression_statement "pr2serr("version: %s\n","1.17 20180515");" (call_expression "pr2serr("version: %s\n","1.17 20180515")" (identifier "pr2serr") (argument_list "("version: %s\n","1.17 20180515")" (( "(") (string_literal ""version: %s\n"" (" """) (string_content "version: %s") (escape_sequence "\n") (" """)) (, ",") (string_literal ""1.17 20180515"" (" """) (string_content "1.17 20180515") (" """)) () ")"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00101c78;" (goto "goto") (statement_identifier "LAB_00101c78") (; ";")) (} "}"))) (switch_statement "switch(iVar4) {\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }" (switch "switch") (parenthesized_expression "(iVar4)" (( "(") (identifier "iVar4") () ")")) (compound_statement "{\n  case 0x3f:\n  case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;\n  default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;\n  case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;\n  case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;\n  case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;\n  case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;\n  case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;\n  case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;\n  case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;\n  case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;\n  case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;\n  case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;\n  }" ({ "{") (case_statement "case 0x3f:" (case "case") (number_literal "0x3f") (: ":")) (case_statement "case 0x68:\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 0;\n    break;" (case "case") (number_literal "0x68") (: ":") (expression_statement "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" (identifier "pr2serr") (argument_list "(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" (( "(") (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"" (" """) (string_content "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]") (escape_sequence "\n") (string_content "                       [--len=CLEN] [--packet] [--raw] [--readonly]") (escape_sequence "\n") (string_content "                       [--verbose] [--version] DEVICE") (escape_sequence "\n") (string_content "  where:") (escape_sequence "\n") (string_content "    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)") (escape_sequence "\n") (string_content "    --extend|-e      sets extend bit in cdb (def: 0)") (escape_sequence "\n") (string_content "    --help|-h        print out usage message then exit") (escape_sequence "\n") (string_content "    --hex|-H         output response in hex") (escape_sequence "\n") (string_content "    --ident|-i       output WWN prefixed by 0x, if not available output") (escape_sequence "\n") (string_content "                     0x0000000000000000") (escape_sequence "\n") (string_content "    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes") (escape_sequence "\n") (string_content "                           (default: 16)") (escape_sequence "\n") (string_content "    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)") (escape_sequence "\n") (string_content "                     command") (escape_sequence "\n") (string_content "    --raw|-r         output response in binary to stdout") (escape_sequence "\n") (string_content "    --readonly|-R    open DEVICE read-only (def: read-write)") (escape_sequence "\n") (string_content "    --verbose|-v     increase verbosity") (escape_sequence "\n") (string_content "    --version|-V     print version string and exit") (escape_sequence "\n") (escape_sequence "\n") (string_content "Performs a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using") (escape_sequence "\n") (string_content "a SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers") (escape_sequence "\n") (string_content "compliant with SAT-4 revision 5 or later will support the SCSI ATA") (escape_sequence "\n") (string_content "PASS-THROUGH(32) command.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    pr2serr("unrecognised option code 0x%x ??\n",iVar4);\n    pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );\n    iVar5 = 1;\n    break;" (default "default") (: ":") (expression_statement "pr2serr("unrecognised option code 0x%x ??\n",iVar4);" (call_expression "pr2serr("unrecognised option code 0x%x ??\n",iVar4)" (identifier "pr2serr") (argument_list "("unrecognised option code 0x%x ??\n",iVar4)" (( "(") (string_literal ""unrecognised option code 0x%x ??\n"" (" """) (string_content "unrecognised option code 0x%x ??") (escape_sequence "\n") (" """)) (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           );" (call_expression "pr2serr(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" (identifier "pr2serr") (argument_list "(\n           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n           )" (( "(") (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"" (" """) (string_content "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]") (escape_sequence "\n") (string_content "                       [--len=CLEN] [--packet] [--raw] [--readonly]") (escape_sequence "\n") (string_content "                       [--verbose] [--version] DEVICE") (escape_sequence "\n") (string_content "  where:") (escape_sequence "\n") (string_content "    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)") (escape_sequence "\n") (string_content "    --extend|-e      sets extend bit in cdb (def: 0)") (escape_sequence "\n") (string_content "    --help|-h        print out usage message then exit") (escape_sequence "\n") (string_content "    --hex|-H         output response in hex") (escape_sequence "\n") (string_content "    --ident|-i       output WWN prefixed by 0x, if not available output") (escape_sequence "\n") (string_content "                     0x0000000000000000") (escape_sequence "\n") (string_content "    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes") (escape_sequence "\n") (string_content "                           (default: 16)") (escape_sequence "\n") (string_content "    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)") (escape_sequence "\n") (string_content "                     command") (escape_sequence "\n") (string_content "    --raw|-r         output response in binary to stdout") (escape_sequence "\n") (string_content "    --readonly|-R    open DEVICE read-only (def: read-write)") (escape_sequence "\n") (string_content "    --verbose|-v     increase verbosity") (escape_sequence "\n") (string_content "    --version|-V     print version string and exit") (escape_sequence "\n") (escape_sequence "\n") (string_content "Performs a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using") (escape_sequence "\n") (string_content "a SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers") (escape_sequence "\n") (string_content "compliant with SAT-4 revision 5 or later will support the SCSI ATA") (escape_sequence "\n") (string_content "PASS-THROUGH(32) command.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x48:\n    local_4c = local_4c + 1;\n    goto LAB_00101c1c;" (case "case") (number_literal "0x48") (: ":") (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" (identifier "local_4c") (= "=") (binary_expression "local_4c + 1" (identifier "local_4c") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00101c1c;" (goto "goto") (statement_identifier "LAB_00101c1c") (; ";"))) (case_statement "case 0x52:\n    local_53 = 1;\n    goto LAB_00101c1c;" (case "case") (number_literal "0x52") (: ":") (expression_statement "local_53 = 1;" (assignment_expression "local_53 = 1" (identifier "local_53") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101c1c;" (goto "goto") (statement_identifier "LAB_00101c1c") (; ";"))) (case_statement "case 0x56:\n    bVar2 = true;\n    goto LAB_00101c1c;" (case "case") (number_literal "0x56") (: ":") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_00101c1c;" (goto "goto") (statement_identifier "LAB_00101c1c") (; ";"))) (case_statement "case 99:\n    local_51 = 1;\n    goto LAB_00101c1c;" (case "case") (number_literal "99") (: ":") (expression_statement "local_51 = 1;" (assignment_expression "local_51 = 1" (identifier "local_51") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101c1c;" (goto "goto") (statement_identifier "LAB_00101c1c") (; ";"))) (case_statement "case 0x65:\n    local_50 = 1;\n    goto LAB_00101c1c;" (case "case") (number_literal "0x65") (: ":") (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101c1c;" (goto "goto") (statement_identifier "LAB_00101c1c") (; ";"))) (case_statement "case 0x69:\n    local_58 = 1;\n    goto LAB_00101c1c;" (case "case") (number_literal "0x69") (: ":") (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" (identifier "local_58") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101c1c;" (goto "goto") (statement_identifier "LAB_00101c1c") (; ";"))) (case_statement "case 0x6c:\n    iVar5 = sg_get_num(optarg);\n    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;\n    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");\n    iVar5 = 1;\n    break;" (case "case") (number_literal "0x6c") (: ":") (expression_statement "iVar5 = sg_get_num(optarg);" (assignment_expression "iVar5 = sg_get_num(optarg)" (identifier "iVar5") (= "=") (call_expression "sg_get_num(optarg)" (identifier "sg_get_num") (argument_list "(optarg)" (( "(") (identifier "optarg") () ")")))) (; ";")) (if_statement "if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;" (if "if") (parenthesized_expression "(((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc))" (( "(") (binary_expression "((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)" (parenthesized_expression "((iVar5 == 0x10) || (iVar5 == 0x20))" (( "(") (binary_expression "(iVar5 == 0x10) || (iVar5 == 0x20)" (parenthesized_expression "(iVar5 == 0x10)" (( "(") (binary_expression "iVar5 == 0x10" (identifier "iVar5") (== "==") (number_literal "0x10")) () ")")) (|| "||") (parenthesized_expression "(iVar5 == 0x20)" (( "(") (binary_expression "iVar5 == 0x20" (identifier "iVar5") (== "==") (number_literal "0x20")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar5 == 0xc)" (( "(") (binary_expression "iVar5 == 0xc" (identifier "iVar5") (== "==") (number_literal "0xc")) () ")"))) () ")")) (goto_statement "goto LAB_00101c1c;" (goto "goto") (statement_identifier "LAB_00101c1c") (; ";"))) (expression_statement "pr2serr("argument to \'--len\' should be 12, 16 or 32\n");" (call_expression "pr2serr("argument to \'--len\' should be 12, 16 or 32\n")" (identifier "pr2serr") (argument_list "("argument to \'--len\' should be 12, 16 or 32\n")" (( "(") (string_literal ""argument to \'--len\' should be 12, 16 or 32\n"" (" """) (string_content "argument to ") (escape_sequence "\'") (string_content "--len") (escape_sequence "\'") (string_content " should be 12, 16 or 32") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x70:\n    local_52 = 1;\n    goto LAB_00101c1c;" (case "case") (number_literal "0x70") (: ":") (expression_statement "local_52 = 1;" (assignment_expression "local_52 = 1" (identifier "local_52") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101c1c;" (goto "goto") (statement_identifier "LAB_00101c1c") (; ";"))) (case_statement "case 0x72:\n    local_59 = '\x01';\n    goto LAB_00101c1c;" (case "case") (number_literal "0x72") (: ":") (expression_statement "local_59 = '\x01';" (assignment_expression "local_59 = '\x01'" (identifier "local_59") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (goto_statement "goto LAB_00101c1c;" (goto "goto") (statement_identifier "LAB_00101c1c") (; ";"))) (case_statement "case 0x76:\n    local_60 = local_60 + 1;\n    bVar1 = true;\n    goto LAB_00101c1c;" (case "case") (number_literal "0x76") (: ":") (expression_statement "local_60 = local_60 + 1;" (assignment_expression "local_60 = local_60 + 1" (identifier "local_60") (= "=") (binary_expression "local_60 + 1" (identifier "local_60") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_00101c1c;" (goto "goto") (statement_identifier "LAB_00101c1c") (; ";"))) (} "}"))) (labeled_statement "LAB_00101c78:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }" (statement_identifier "LAB_00101c78") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00101e5a:\n  do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" (statement_identifier "LAB_00101e5a") (: ":") (do_statement "do {\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  } while (optind < param_1);" (do "do") (compound_statement "{\n    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));\n    optind = optind + 1;\n  }" ({ "{") (expression_statement "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));" (call_expression "pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" (identifier "pr2serr") (argument_list "("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8))" (( "(") (string_literal ""Unexpected extra argument: %s\n"" (" """) (string_content "Unexpected extra argument: %s") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*(undefined8 *)(param_2 + (long)optind * 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + (long)optind * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + (long)optind * 8)" (( "(") (binary_expression "param_2 + (long)optind * 8" (identifier "param_2") (+ "+") (binary_expression "(long)optind * 8" (cast_expression "(long)optind" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "optind")) (* "*") (number_literal "8"))) () ")")))) () ")"))) (; ";")) (expression_statement "optind = optind + 1;" (assignment_expression "optind = optind + 1" (identifier "optind") (= "=") (binary_expression "optind + 1" (identifier "optind") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(optind < param_1)" (( "(") (binary_expression "optind < param_1" (identifier "optind") (< "<") (identifier "param_1")) () ")")) (; ";"))) (expression_statement "pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         );" (call_expression "pr2serr(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         )" (identifier "pr2serr") (argument_list "(\n         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"\n         )" (( "(") (string_literal ""Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"" (" """) (string_content "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]") (escape_sequence "\n") (string_content "                       [--len=CLEN] [--packet] [--raw] [--readonly]") (escape_sequence "\n") (string_content "                       [--verbose] [--version] DEVICE") (escape_sequence "\n") (string_content "  where:") (escape_sequence "\n") (string_content "    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)") (escape_sequence "\n") (string_content "    --extend|-e      sets extend bit in cdb (def: 0)") (escape_sequence "\n") (string_content "    --help|-h        print out usage message then exit") (escape_sequence "\n") (string_content "    --hex|-H         output response in hex") (escape_sequence "\n") (string_content "    --ident|-i       output WWN prefixed by 0x, if not available output") (escape_sequence "\n") (string_content "                     0x0000000000000000") (escape_sequence "\n") (string_content "    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes") (escape_sequence "\n") (string_content "                           (default: 16)") (escape_sequence "\n") (string_content "    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)") (escape_sequence "\n") (string_content "                     command") (escape_sequence "\n") (string_content "    --raw|-r         output response in binary to stdout") (escape_sequence "\n") (string_content "    --readonly|-R    open DEVICE read-only (def: read-write)") (escape_sequence "\n") (string_content "    --verbose|-v     increase verbosity") (escape_sequence "\n") (string_content "    --version|-V     print version string and exit") (escape_sequence "\n") (escape_sequence "\n") (string_content "Performs a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using") (escape_sequence "\n") (string_content "a SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers") (escape_sequence "\n") (string_content "compliant with SAT-4 revision 5 or later will support the SCSI ATA") (escape_sequence "\n") (string_content "PASS-THROUGH(32) command.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00101c78;" (goto "goto") (statement_identifier "LAB_00101c78") (; ";")) (} "}")))

int function_1(int var_5,char **argv)

{
  bool bVar1;
  bool bVar2;
  type_1 extend;
  type_1 do_ident;
  char var_18;
  int var_3;
  int var_16;
  type_2 uVar6;
  char *var_7;
  long var_1;
  int var_11;
  type_1 var_8;
  type_3 local_53;
  type_1 local_52;
  type_1 local_51;
  int var_20;
  int option_index;
  long var_22;
  
  var_22 = *(long *)(var_1 + 0x28);
  var_11 = 0;
  var_20 = 0;
  var_16 = 0x10;
  bVar2 = false;
  bVar1 = false;
  extend = false;
  local_51 = false;
  local_53 = 0;
  var_8 = false;
  do_ident = false;
  local_52 = false;
LAB_00101c1c:
  option_index = 0;
  var_3 = var_2(var_5,argv,"cehHil:prRvV",long_options,&option_index);
  if (var_3 == -1) {
    var_7 = (char *)0x0;
    if (var_4 < var_5) {
      var_7 = argv[var_4];
      var_4 = var_4 + 1;
      if (var_4 < var_5) goto LAB_00101e5a;
    }
    if ((bVar1) && (bVar2)) {
      var_6("Not in DEBUG mode, so \'-vV\' has no special action\n");
    }
    else if (!bVar2) {
      if (var_7 == (char *)0x0) {
        var_6("Missing device name!\n\n");
        var_6(
               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
               );
        var_16 = 1;
      }
      else if ((var_8 == false) || (var_3 = var_9(1), -1 < var_3)) {
        var_3 = var_10(var_7,local_53,var_11);
        if (var_3 < 0) {
          if (var_11 != 0) {
            uVar6 = var_12(-var_3);
            var_6("error opening file: %s: %s\n",var_7,uVar6);
          }
          var_16 = var_13(-var_3);
        }
        else {
          var_16 = var_14(var_3,local_52,var_16,local_51,extend,do_ident,var_20,var_8,
                                  var_11);
          var_3 = var_15(var_3);
          if (var_3 < 0) {
            uVar6 = var_12(-var_3);
            var_6("close error: %s\n",uVar6);
            if (var_16 == 0) {
              var_16 = var_13(-var_3);
            }
          }
        }
        if ((var_11 == 0) &&
           (var_18 = var_17("sg_sat_identify failed: ",var_16), var_18 == '\0')) {
          var_6("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
        }
        if (var_16 < 0) {
          var_16 = 99;
        }
      }
      else {
        var_19("sg_set_binary_mode");
        var_16 = 0xf;
      }
      goto LAB_00101c78;
    }
    var_6("version: %s\n","1.17 20180515");
    var_16 = 0;
    goto LAB_00101c78;
  }
  switch(var_3) {
  case 0x3f:
  case 0x68:
    var_6(
           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
           );
    var_16 = 0;
    break;
  default:
    var_6("unrecognised option code 0x%x ??\n",var_3);
    var_6(
           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
           );
    var_16 = 1;
    break;
  case 0x48:
    var_20 = var_20 + 1;
    goto LAB_00101c1c;
  case 0x52:
    local_53 = 1;
    goto LAB_00101c1c;
  case 0x56:
    bVar2 = true;
    goto LAB_00101c1c;
  case 99:
    local_51 = true;
    goto LAB_00101c1c;
  case 0x65:
    extend = true;
    goto LAB_00101c1c;
  case 0x69:
    do_ident = true;
    goto LAB_00101c1c;
  case 0x6c:
    var_16 = var_21(optarg);
    if (((var_16 == 0x10) || (var_16 == 0x20)) || (var_16 == 0xc)) goto LAB_00101c1c;
    var_6("argument to \'--len\' should be 12, 16 or 32\n");
    var_16 = 1;
    break;
  case 0x70:
    local_52 = true;
    goto LAB_00101c1c;
  case 0x72:
    var_8 = true;
    goto LAB_00101c1c;
  case 0x76:
    var_11 = var_11 + 1;
    bVar1 = true;
    goto LAB_00101c1c;
  }
LAB_00101c78:
  if (var_22 == *(long *)(var_1 + 0x28)) {
    return var_16;
  }
                    /* WARNING: Subroutine does not return */
  var_23();
LAB_00101e5a:
  do {
    var_6("Unexpected extra argument: %s\n",argv[var_4]);
    var_4 = var_4 + 1;
  } while (var_4 < var_5);
  var_6(
         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
         );
  var_16 = 1;
  goto LAB_00101c78;
}


(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: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (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: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (string_literal (string_content)) (pointer_expression argument: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) right: (parenthesized_expression (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (escape_sequence))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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) (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) (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal)))) right: (binary_expression left: (number_literal) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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: (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))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))) (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))))))))))))) (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: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier)))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (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) (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) (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) (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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) (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) (string_content) (escape_sequence))))) (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)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (true))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (goto_statement label: (statement_identifier))) (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))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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) (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) (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))

int MASKED(int param_1,long param_2)

{
  bool bVar1;
  bool bVar2;
  char cVar3;
  int iVar4;
  int iVar5;
  undefined8 uVar6;
  long lVar7;
  long in_FS_OFFSET;
  int local_60;
  char local_59;
  undefined4 local_58;
  undefined1 local_53;
  undefined1 local_52;
  undefined1 local_51;
  undefined4 local_50;
  int local_4c;
  undefined4 local_44;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_60 = 0;
  local_4c = 0;
  iVar5 = 0x10;
  bVar2 = false;
  bVar1 = false;
  local_50 = 0;
  local_51 = 0;
  local_53 = 0;
  local_59 = '\0';
  local_58 = 0;
  local_52 = 0;
LAB_00101c1c:
  local_44 = 0;
  iVar4 = getopt_long(param_1,param_2,"cehHil:prRvV",&PTR_s_ck_cond_00106020,&local_44);
  if (iVar4 == -1) {
    lVar7 = 0;
    if (optind < param_1) {
      lVar7 = *(long *)(param_2 + (long)optind * 8);
      optind = optind + 1;
      if (optind < param_1) goto LAB_00101e5a;
    }
    if ((bVar1) && (bVar2)) {
      pr2serr("Not in DEBUG mode, so \'-vV\' has no special action\n");
    }
    else if (!bVar2) {
      if (lVar7 == 0) {
        pr2serr("Missing device name!\n\n");
        pr2serr(
               "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
               );
        iVar5 = 1;
      }
      else if ((local_59 == '\0') || (iVar4 = sg_set_binary_mode(1), -1 < iVar4)) {
        iVar4 = sg_cmds_open_device(lVar7,local_53,local_60);
        if (iVar4 < 0) {
          if (local_60 != 0) {
            uVar6 = safe_strerror(-iVar4);
            pr2serr("error opening file: %s: %s\n",lVar7,uVar6);
          }
          iVar5 = sg_convert_errno(-iVar4);
        }
        else {
          iVar5 = FUN_00101255(iVar4,local_52,iVar5,local_51,local_50,local_58,local_4c,local_59,
                               local_60);
          iVar4 = sg_cmds_close_device(iVar4);
          if (iVar4 < 0) {
            uVar6 = safe_strerror(-iVar4);
            pr2serr("close error: %s\n",uVar6);
            if (iVar5 == 0) {
              iVar5 = sg_convert_errno(-iVar4);
            }
          }
        }
        if ((local_60 == 0) &&
           (cVar3 = sg_if_can2stderr("sg_sat_identify failed: ",iVar5), cVar3 == '\0')) {
          pr2serr("Some error occurred, try again with \'-v\' or \'-vv\' for more information\n");
        }
        if (iVar5 < 0) {
          iVar5 = 99;
        }
      }
      else {
        perror("sg_set_binary_mode");
        iVar5 = 0xf;
      }
      goto LAB_00101c78;
    }
    pr2serr("version: %s\n","1.17 20180515");
    iVar5 = 0;
    goto LAB_00101c78;
  }
  switch(iVar4) {
  case 0x3f:
  case 0x68:
    pr2serr(
           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
           );
    iVar5 = 0;
    break;
  default:
    pr2serr("unrecognised option code 0x%x ??\n",iVar4);
    pr2serr(
           "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
           );
    iVar5 = 1;
    break;
  case 0x48:
    local_4c = local_4c + 1;
    goto LAB_00101c1c;
  case 0x52:
    local_53 = 1;
    goto LAB_00101c1c;
  case 0x56:
    bVar2 = true;
    goto LAB_00101c1c;
  case 99:
    local_51 = 1;
    goto LAB_00101c1c;
  case 0x65:
    local_50 = 1;
    goto LAB_00101c1c;
  case 0x69:
    local_58 = 1;
    goto LAB_00101c1c;
  case 0x6c:
    iVar5 = sg_get_num(optarg);
    if (((iVar5 == 0x10) || (iVar5 == 0x20)) || (iVar5 == 0xc)) goto LAB_00101c1c;
    pr2serr("argument to \'--len\' should be 12, 16 or 32\n");
    iVar5 = 1;
    break;
  case 0x70:
    local_52 = 1;
    goto LAB_00101c1c;
  case 0x72:
    local_59 = '\x01';
    goto LAB_00101c1c;
  case 0x76:
    local_60 = local_60 + 1;
    bVar1 = true;
    goto LAB_00101c1c;
  }
LAB_00101c78:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar5;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
LAB_00101e5a:
  do {
    pr2serr("Unexpected extra argument: %s\n",*(undefined8 *)(param_2 + (long)optind * 8));
    optind = optind + 1;
  } while (optind < param_1);
  pr2serr(
         "Usage: sg_sat_identify [--ck_cond] [--extend] [--help] [--hex] [--ident]\n                       [--len=CLEN] [--packet] [--raw] [--readonly]\n                       [--verbose] [--version] DEVICE\n  where:\n    --ck_cond|-c     sets ck_cond bit in cdb (def: 0)\n    --extend|-e      sets extend bit in cdb (def: 0)\n    --help|-h        print out usage message then exit\n    --hex|-H         output response in hex\n    --ident|-i       output WWN prefixed by 0x, if not available output\n                     0x0000000000000000\n    --len=CLEN| -l CLEN    CLEN is cdb length: 12, 16 or 32 bytes\n                           (default: 16)\n    --packet|-p      do IDENTIFY PACKET DEVICE (def: IDENTIFY DEVICE)\n                     command\n    --raw|-r         output response in binary to stdout\n    --readonly|-R    open DEVICE read-only (def: read-write)\n    --verbose|-v     increase verbosity\n    --version|-V     print version string and exit\n\nPerforms a ATA IDENTIFY (PACKET) DEVICE command via a SAT layer using\na SCSI ATA PASS-THROUGH(12), (16) or (32) command. Only SAT layers\ncompliant with SAT-4 revision 5 or later will support the SCSI ATA\nPASS-THROUGH(32) command.\n"
         );
  iVar5 = 1;
  goto LAB_00101c78;
}

