
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00012b2e) */
/* WARNING: Removing unreachable block (ram,0x00012b30) */

int __regparm3 old_parse_cmd_line(opts_t *op,int argc,char **argv)

{
  size_t sVar1;
  int iVar2;
  int iVar3;
  char *pcVar4;
  char *extraout_ECX;
  char *extraout_EDX;
  int iVar5;
  char *__s2;
  int in_GS_OFFSET;
  EVP_PKEY_CTX *in_stack_ffffff98;
  char *__s;
  char *pcVar6;
  int n;
  uint u;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1282d;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (1 < argc) {
    iVar5 = 1;
    do {
      __s = argv[iVar5];
      sVar1 = strlen(__s);
      if (sVar1 != 0) {
        if (*__s == '-') {
          iVar2 = sVar1 - 1;
          if (iVar2 != 0) {
            do {
              __s2 = __s + 1;
              switch(*__s2) {
              case '?':
                op->do_help = op->do_help + 1;
                break;
              default:
_L48:
                iVar2 = strncmp("raw=",__s2,4);
                if (iVar2 == 0) {
                  op->do_raw = true;
                  op->raw_arg = __s + 5;
                }
                else {
                  iVar2 = strncmp("s=",__s2,2);
                  if (iVar2 == 0) {
                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);
                    if ((iVar2 != 1) || (7 < u)) {
                      puts("Bad page code after \'-s=\' option");
                      goto LAB_00012a3d;
                    }
                    op->do_selftest = u;
                  }
                  else {
                    iVar2 = strncmp("T=",__s2,2);
                    if (iVar2 == 0) {
                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);
                      if ((iVar2 != 1) || (n < 0)) {
                        puts("Bad page code after \'-T=SECS\' option");
                        goto LAB_00012a3d;
                      }
                      op->timeout = n;
                    }
                    else {
                      iVar2 = strcmp("-old",__s2);
                      if (iVar2 != 0) {
                        pcVar4 = "Unrecognized option: %s\n";
                        __s = extraout_ECX;
                        pcVar6 = extraout_ECX;
                        goto LAB_00012a37;
                      }
                    }
                  }
                }
                goto LAB_00012876;
              case 'H':
              case 'h':
                op->do_hex = op->do_hex + 1;
                break;
              case 'N':
                op->opt_new = true;
                iVar5 = 0;
                goto LAB_00012923;
              case 'O':
                break;
              case 'V':
                op->version_given = true;
                break;
              case 'd':
                iVar3 = strncmp("doff",__s2,4);
                if (iVar3 != 0) goto _L48;
                op->do_doff = true;
                __s2 = __s + 4;
                iVar2 = iVar2 + -3;
                break;
              case 'e':
                op->do_extdur = true;
                break;
              case 'l':
                op->do_list = true;
                break;
              case 'p':
                iVar3 = strncmp("pf",__s2,2);
                if (iVar3 != 0) goto _L48;
                op->do_pf = true;
                __s2 = __s + 2;
                iVar2 = iVar2 + -1;
                break;
              case 't':
                op->do_deftest = true;
                break;
              case 'u':
                iVar3 = strncmp("uoff",__s2,4);
                if (iVar3 != 0) goto _L48;
                op->do_uoff = true;
                __s2 = __s + 4;
                iVar2 = iVar2 + -3;
                break;
              case 'v':
                op->verbose_given = true;
                op->verbose = op->verbose + 1;
              }
              iVar2 = iVar2 + -1;
              __s = __s2;
            } while (0 < iVar2);
          }
        }
        else {
          __s2 = op->device_name;
          if (__s2 != (char *)0x0) {
            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";
            pcVar6 = extraout_EDX;
LAB_00012a37:
            pr2serr(pcVar4,__s2,__s,pcVar6);
LAB_00012a3d:
            puts(
                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"
                );
            iVar5 = 1;
            goto LAB_00012923;
          }
          op->device_name = __s;
        }
      }
LAB_00012876:
      iVar5 = iVar5 + 1;
    } while (argc != iVar5);
  }
  iVar5 = 0;
LAB_00012923:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
    __stack_chk_fail_local();
    _init(in_stack_ffffff98);
    return 0x15e6c;
  }
  return iVar5;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00012b2e) */
/* WARNING: Removing unreachable block (ram,0x00012b30) */

undefined4 * __regparm3 FUN_00012820(undefined1 *param_1,int param_2,int param_3)

{
  size_t sVar1;
  int iVar2;
  int iVar3;
  char *pcVar4;
  undefined4 *puVar5;
  char *extraout_ECX;
  char *extraout_EDX;
  int iVar6;
  char *__s2;
  int in_GS_OFFSET;
  char *__s;
  char *pcVar7;
  int local_28;
  uint local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1282d;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (1 < param_2) {
    iVar6 = 1;
    do {
      __s = *(char **)(param_3 + iVar6 * 4);
      sVar1 = strlen(__s);
      if (sVar1 != 0) {
        if (*__s == '-') {
          iVar2 = sVar1 - 1;
          if (iVar2 != 0) {
            do {
              __s2 = __s + 1;
              switch(*__s2) {
              case '?':
                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;
                break;
              default:
LAB_000129b6:
                iVar2 = strncmp("raw=",__s2,4);
                if (iVar2 == 0) {
                  param_1[5] = 1;
                  *(char **)(param_1 + 0x2c) = __s + 5;
                }
                else {
                  iVar2 = strncmp("s=",__s2,2);
                  if (iVar2 == 0) {
                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);
                    if ((iVar2 != 1) || (7 < local_24)) {
                      puts("Bad page code after \'-s=\' option");
                      goto LAB_00012a3d;
                    }
                    *(uint *)(param_1 + 0x1c) = local_24;
                  }
                  else {
                    iVar2 = strncmp("T=",__s2,2);
                    if (iVar2 == 0) {
                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);
                      if ((iVar2 != 1) || (local_28 < 0)) {
                        puts("Bad page code after \'-T=SECS\' option");
                        goto LAB_00012a3d;
                      }
                      *(int *)(param_1 + 0x20) = local_28;
                    }
                    else {
                      iVar2 = strcmp("-old",__s2);
                      if (iVar2 != 0) {
                        pcVar4 = "Unrecognized option: %s\n";
                        __s = extraout_ECX;
                        pcVar7 = extraout_ECX;
                        goto LAB_00012a37;
                      }
                    }
                  }
                }
                goto LAB_00012876;
              case 'H':
              case 'h':
                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;
                break;
              case 'N':
                param_1[7] = 1;
                puVar5 = (undefined4 *)0x0;
                goto LAB_00012923;
              case 'O':
                break;
              case 'V':
                param_1[9] = 1;
                break;
              case 'd':
                iVar3 = strncmp("doff",__s2,4);
                if (iVar3 != 0) goto LAB_000129b6;
                param_1[1] = 1;
                __s2 = __s + 4;
                iVar2 = iVar2 + -3;
                break;
              case 'e':
                param_1[2] = 1;
                break;
              case 'l':
                param_1[3] = 1;
                break;
              case 'p':
                iVar3 = strncmp("pf",__s2,2);
                if (iVar3 != 0) goto LAB_000129b6;
                param_1[4] = 1;
                __s2 = __s + 2;
                iVar2 = iVar2 + -1;
                break;
              case 't':
                *param_1 = 1;
                break;
              case 'u':
                iVar3 = strncmp("uoff",__s2,4);
                if (iVar3 != 0) goto LAB_000129b6;
                param_1[6] = 1;
                __s2 = __s + 4;
                iVar2 = iVar2 + -3;
                break;
              case 'v':
                param_1[8] = 1;
                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;
              }
              iVar2 = iVar2 + -1;
              __s = __s2;
            } while (0 < iVar2);
          }
        }
        else {
          __s2 = *(char **)(param_1 + 0x28);
          if (__s2 != (char *)0x0) {
            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";
            pcVar7 = extraout_EDX;
LAB_00012a37:
            pr2serr(pcVar4,__s2,__s,pcVar7);
LAB_00012a3d:
            puts(
                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"
                );
            puVar5 = (undefined4 *)0x1;
            goto LAB_00012923;
          }
          *(char **)(param_1 + 0x28) = __s;
        }
      }
LAB_00012876:
      iVar6 = iVar6 + 1;
    } while (param_2 != iVar6);
  }
  puVar5 = (undefined4 *)0x0;
LAB_00012923:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
    FUN_00012b70();
    _DT_INIT();
    return &DAT_00015e6c;
  }
  return puVar5;
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
MOV EAX,EDX
PUSH ESI
PUSH EBX
CALL 0x000123d0
ADD EBX,0x372f
SUB ESP,0x3c
MOV dword ptr [ESP + 0x10],EDX
MOV dword ptr [ESP + 0xc],ECX
MOV EDX,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x2c],EDX
XOR EDX,EDX
CMP EAX,0x1
JLE 0x00012a58
LEA EAX,[EBX + 0xffffd0cb]
MOV EBP,0x1
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00012883
MOV EAX,dword ptr [EDI + 0x28]
TEST EAX,EAX
JNZ 0x00012a8e
MOV dword ptr [EDI + 0x28],ESI
ADD EBP,0x1
CMP dword ptr [ESP + 0x10],EBP
JZ 0x00012a58
MOV EAX,dword ptr [ESP + 0xc]
SUB ESP,0xc
MOV ESI,dword ptr [EAX + EBP*0x4]
PUSH ESI
CALL 0x00011100
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00012876
CMP byte ptr [ESI],0x2d
JNZ 0x00012868
ADD ESI,0x1
SUB EAX,0x1
MOV EDX,EAX
JZ 0x00012876
LEA EAX,[EBX + 0xffffd0c8]
MOV dword ptr [ESP + 0x14],EBP
MOV EBP,EDI
MOV EDI,EDX
MOV dword ptr [ESP + 0x18],EAX
LEA ESI,[ESI]
NOP
MOVZX EAX,byte ptr [ESI]
SUB EAX,0x3f
CMP AL,0x37
JA 0x000129b6
MOVZX EAX,AL
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xffffe8f8]
ADD ECX,EBX
JMP ECX
MOV EDX,dword ptr [ESP + 0x2c]
XOR EDX,dword ptr GS:[0x14]
JNZ 0x00012aef
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,EBP
MOV EBP,dword ptr [ESP + 0x14]
PUSH EAX
LEA EAX,[EBX + 0xffffd0fa]
PUSH 0x4
PUSH ESI
PUSH EAX
CALL 0x000111d0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000129e2
ADD ESI,0x4
MOV byte ptr [EDI + 0x5],0x1
MOV dword ptr [EDI + 0x2c],ESI
JMP 0x00012876
PUSH EAX
LEA EAX,[EBX + 0xffffd0d0]
PUSH 0x2
PUSH ESI
PUSH EAX
CALL 0x000111d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00012a5f
PUSH EAX
LEA EAX,[EBX + 0xffffd0d6]
PUSH 0x2
PUSH ESI
PUSH EAX
CALL 0x000111d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00012a99
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xffffd0dc]
PUSH ESI
PUSH EAX
CALL 0x00011040
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00012876
PUSH ECX
LEA EAX,[EBX + 0xffffd0e1]
PUSH ECX
PUSH ESI
PUSH EAX
CALL 0x00011090
LEA EAX,[EBX + 0xffffdb24]
MOV dword ptr [ESP],EAX
CALL 0x000110d0
ADD ESP,0x10
MOV EAX,0x1
JMP 0x00012923
XOR EAX,EAX
JMP 0x00012923
PUSH EAX
ADD ESI,0x2
LEA EAX,[ESP + 0x2c]
PUSH EAX
LEA EAX,[EBX + 0xffffd0d3]
PUSH EAX
PUSH ESI
CALL 0x00011140
ADD ESP,0x10
SUB EAX,0x1
JNZ 0x00012ac7
MOV EAX,dword ptr [ESP + 0x28]
CMP EAX,0x7
JA 0x00012ac7
MOV dword ptr [EDI + 0x1c],EAX
JMP 0x00012876
PUSH EDX
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xffffdf64]
JMP 0x00012a37
PUSH EAX
ADD ESI,0x2
LEA EAX,[ESP + 0x28]
PUSH EAX
LEA EAX,[EBX + 0xffffd0d9]
PUSH EAX
PUSH ESI
CALL 0x00011140
ADD ESP,0x10
SUB EAX,0x1
JNZ 0x00012adb
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JS 0x00012adb
MOV dword ptr [EDI + 0x20],EAX
JMP 0x00012876
SUB ESP,0xc
LEA EAX,[EBX + 0xffffdb00]
PUSH EAX
CALL 0x000110d0
JMP 0x00012a3d
SUB ESP,0xc
LEA EAX,[EBX + 0xffffdf3c]
PUSH EAX
CALL 0x000110d0
JMP 0x00012a3d
CALL 0x00012b70
NOP
NOP
NOP
NOP
NOP
NOP
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Removing unreachable block (ram,0x00012b2e) */\n/* WARNING: Removing unreachable block (ram,0x00012b30) */\n\nundefined4 * __regparm3 FUN_00012820(undefined1 *param_1,int param_2,int param_3)\n\n{\n  size_t sVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined4 *puVar5;\n  char *extraout_ECX;\n  char *extraout_EDX;\n  int iVar6;\n  char *__s2;\n  int in_GS_OFFSET;\n  char *__s;\n  char *pcVar7;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1282d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < param_2) {\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }\n  puVar5 = (undefined4 *)0x0;\nLAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }\n  return puVar5;\n}\n\n" comment comment comment (ERROR "undefined4 * __regparm3 FUN_00012820(undefined1 *param_1,int param_2,int param_3)" (binary_expression "undefined4 * __regparm3 FUN_00012820(undefined1 *param_1,int param_2,int param_3)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_00012820(undefined1 *param_1,int param_2,int param_3)" identifier (argument_list "(undefined1 *param_1,int param_2,int param_3)" ( (binary_expression "undefined1 *param_1" identifier * identifier) , (ERROR "int" identifier) identifier , (ERROR "int" identifier) identifier ))))) (compound_statement "{\n  size_t sVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined4 *puVar5;\n  char *extraout_ECX;\n  char *extraout_EDX;\n  int iVar6;\n  char *__s2;\n  int in_GS_OFFSET;\n  char *__s;\n  char *pcVar7;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1282d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < param_2) {\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }\n  puVar5 = (undefined4 *)0x0;\nLAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }\n  return puVar5;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "char *extraout_EDX;" primitive_type (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1282d;" (assignment_expression "uStack_14 = 0x1282d" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (1 < param_2) {\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }" if (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) (compound_statement "{\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (do_statement "do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);" do (compound_statement "{\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    }" { (expression_statement "__s = *(char **)(param_3 + iVar6 * 4);" (assignment_expression "__s = *(char **)(param_3 + iVar6 * 4)" identifier = (pointer_expression "*(char **)(param_3 + iVar6 * 4)" * (cast_expression "(char **)(param_3 + iVar6 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + iVar6 * 4)" ( (binary_expression "param_3 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) (expression_statement "sVar1 = strlen(__s);" (assignment_expression "sVar1 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (if_statement "if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }" if (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }" { (if_statement "if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }" if (parenthesized_expression "(*__s == '-')" ( (binary_expression "*__s == '-'" (pointer_expression "*__s" * identifier) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }" { (expression_statement "iVar2 = sVar1 - 1;" (assignment_expression "iVar2 = sVar1 - 1" identifier = (binary_expression "sVar1 - 1" identifier - number_literal)) ;) (if_statement "if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }" { (do_statement "do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);" do (compound_statement "{\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            }" { (expression_statement "__s2 = __s + 1;" (assignment_expression "__s2 = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (switch_statement "switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }" switch (parenthesized_expression "(*__s2)" ( (pointer_expression "*__s2" * identifier) )) (compound_statement "{\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }" { (case_statement "case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;" case (char_literal "'?'" ' character ') : (expression_statement "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0xc) + 1" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;" default : (labeled_statement "LAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);" statement_identifier : (expression_statement "iVar2 = strncmp("raw=",__s2,4);" (assignment_expression "iVar2 = strncmp("raw=",__s2,4)" identifier = (call_expression "strncmp("raw=",__s2,4)" identifier (argument_list "("raw=",__s2,4)" ( (string_literal ""raw="" " string_content ") , identifier , number_literal )))) ;)) (if_statement "if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }" { (expression_statement "param_1[5] = 1;" (assignment_expression "param_1[5] = 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(char **)(param_1 + 0x2c) = __s + 5;" (assignment_expression "*(char **)(param_1 + 0x2c) = __s + 5" (pointer_expression "*(char **)(param_1 + 0x2c)" * (cast_expression "(char **)(param_1 + 0x2c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "__s + 5" identifier + number_literal)) ;) }) (else_clause "else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar2 = strncmp("s=",__s2,2);" (assignment_expression "iVar2 = strncmp("s=",__s2,2)" identifier = (call_expression "strncmp("s=",__s2,2)" identifier (argument_list "("s=",__s2,2)" ( (string_literal ""s="" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }" { (expression_statement "iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);" (assignment_expression "iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0)" identifier = (call_expression "__isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0)" identifier (argument_list "(__s + 3,&DAT_0001302f,&local_24,0)" ( (binary_expression "__s + 3" identifier + number_literal) , (pointer_expression "&DAT_0001302f" & identifier) , (pointer_expression "&local_24" & identifier) , number_literal )))) ;) (if_statement "if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }" if (parenthesized_expression "((iVar2 != 1) || (7 < local_24))" ( (binary_expression "(iVar2 != 1) || (7 < local_24)" (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(7 < local_24)" ( (binary_expression "7 < local_24" number_literal < identifier) ))) )) (compound_statement "{\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }" { (expression_statement "puts("Bad page code after \'-s=\' option");" (call_expression "puts("Bad page code after \'-s=\' option")" identifier (argument_list "("Bad page code after \'-s=\' option")" ( (string_literal ""Bad page code after \'-s=\' option"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) (goto_statement "goto LAB_00012a3d;" goto statement_identifier ;) })) (expression_statement "*(uint *)(param_1 + 0x1c) = local_24;" (assignment_expression "*(uint *)(param_1 + 0x1c) = local_24" (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" { (expression_statement "iVar2 = strncmp("T=",__s2,2);" (assignment_expression "iVar2 = strncmp("T=",__s2,2)" identifier = (call_expression "strncmp("T=",__s2,2)" identifier (argument_list "("T=",__s2,2)" ( (string_literal ""T="" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }" { (expression_statement "iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);" (assignment_expression "iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0)" identifier = (call_expression "__isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0)" identifier (argument_list "(__s + 3,&DAT_00013035,&local_28,0)" ( (binary_expression "__s + 3" identifier + number_literal) , (pointer_expression "&DAT_00013035" & identifier) , (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }" if (parenthesized_expression "((iVar2 != 1) || (local_28 < 0))" ( (binary_expression "(iVar2 != 1) || (local_28 < 0)" (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(local_28 < 0)" ( (binary_expression "local_28 < 0" identifier < number_literal) ))) )) (compound_statement "{\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }" { (expression_statement "puts("Bad page code after \'-T=SECS\' option");" (call_expression "puts("Bad page code after \'-T=SECS\' option")" identifier (argument_list "("Bad page code after \'-T=SECS\' option")" ( (string_literal ""Bad page code after \'-T=SECS\' option"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) (goto_statement "goto LAB_00012a3d;" goto statement_identifier ;) })) (expression_statement "*(int *)(param_1 + 0x20) = local_28;" (assignment_expression "*(int *)(param_1 + 0x20) = local_28" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" else (compound_statement "{\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" { (expression_statement "iVar2 = strcmp("-old",__s2);" (assignment_expression "iVar2 = strcmp("-old",__s2)" identifier = (call_expression "strcmp("-old",__s2)" identifier (argument_list "("-old",__s2)" ( (string_literal ""-old"" " string_content ") , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }" { (expression_statement "pcVar4 = "Unrecognized option: %s\n";" (assignment_expression "pcVar4 = "Unrecognized option: %s\n"" identifier = (string_literal ""Unrecognized option: %s\n"" " string_content escape_sequence ")) ;) (expression_statement "__s = extraout_ECX;" (assignment_expression "__s = extraout_ECX" identifier = identifier) ;) (expression_statement "pcVar7 = extraout_ECX;" (assignment_expression "pcVar7 = extraout_ECX" identifier = identifier) ;) (goto_statement "goto LAB_00012a37;" goto statement_identifier ;) })) }))) }))) }))) (goto_statement "goto LAB_00012876;" goto statement_identifier ;)) (case_statement "case 'H':" case (char_literal "'H'" ' character ') :) (case_statement "case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;" case (char_literal "'h'" ' character ') : (expression_statement "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x10) + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;" case (char_literal "'N'" ' character ') : (expression_statement "param_1[7] = 1;" (assignment_expression "param_1[7] = 1" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00012923;" goto statement_identifier ;)) (case_statement "case 'O':\n                break;" case (char_literal "'O'" ' character ') : (break_statement "break;" break ;)) (case_statement "case 'V':\n                param_1[9] = 1;\n                break;" case (char_literal "'V'" ' character ') : (expression_statement "param_1[9] = 1;" (assignment_expression "param_1[9] = 1" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;" case (char_literal "'d'" ' character ') : (expression_statement "iVar3 = strncmp("doff",__s2,4);" (assignment_expression "iVar3 = strncmp("doff",__s2,4)" identifier = (call_expression "strncmp("doff",__s2,4)" identifier (argument_list "("doff",__s2,4)" ( (string_literal ""doff"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000129b6;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000129b6;" goto statement_identifier ;)) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__s2 = __s + 4;" (assignment_expression "__s2 = __s + 4" identifier = (binary_expression "__s + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" identifier = (binary_expression "iVar2 + -3" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n                param_1[2] = 1;\n                break;" case (char_literal "'e'" ' character ') : (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n                param_1[3] = 1;\n                break;" case (char_literal "'l'" ' character ') : (expression_statement "param_1[3] = 1;" (assignment_expression "param_1[3] = 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;" case (char_literal "'p'" ' character ') : (expression_statement "iVar3 = strncmp("pf",__s2,2);" (assignment_expression "iVar3 = strncmp("pf",__s2,2)" identifier = (call_expression "strncmp("pf",__s2,2)" identifier (argument_list "("pf",__s2,2)" ( (string_literal ""pf"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000129b6;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000129b6;" goto statement_identifier ;)) (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__s2 = __s + 2;" (assignment_expression "__s2 = __s + 2" identifier = (binary_expression "__s + 2" identifier + number_literal)) ;) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n                *param_1 = 1;\n                break;" case (char_literal "'t'" ' character ') : (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;" case (char_literal "'u'" ' character ') : (expression_statement "iVar3 = strncmp("uoff",__s2,4);" (assignment_expression "iVar3 = strncmp("uoff",__s2,4)" identifier = (call_expression "strncmp("uoff",__s2,4)" identifier (argument_list "("uoff",__s2,4)" ( (string_literal ""uoff"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000129b6;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000129b6;" goto statement_identifier ;)) (expression_statement "param_1[6] = 1;" (assignment_expression "param_1[6] = 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__s2 = __s + 4;" (assignment_expression "__s2 = __s + 4" identifier = (binary_expression "__s + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" identifier = (binary_expression "iVar2 + -3" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;" case (char_literal "'v'" ' character ') : (expression_statement "param_1[8] = 1;" (assignment_expression "param_1[8] = 1" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;" (assignment_expression "*(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x24) + 1" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) + number_literal)) ;)) })) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (expression_statement "__s = __s2;" (assignment_expression "__s = __s2" identifier = identifier) ;) }) while (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) ;) })) }) (else_clause "else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }" else (compound_statement "{\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }" { (expression_statement "__s2 = *(char **)(param_1 + 0x28);" (assignment_expression "__s2 = *(char **)(param_1 + 0x28)" identifier = (pointer_expression "*(char **)(param_1 + 0x28)" * (cast_expression "(char **)(param_1 + 0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }" if (parenthesized_expression "(__s2 != (char *)0x0)" ( (binary_expression "__s2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }" { (expression_statement "pcVar4 = "too many arguments, got: %s, not expecting: %s\n";" (assignment_expression "pcVar4 = "too many arguments, got: %s, not expecting: %s\n"" identifier = (string_literal ""too many arguments, got: %s, not expecting: %s\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar7 = extraout_EDX;" (assignment_expression "pcVar7 = extraout_EDX" identifier = identifier) ;) (labeled_statement "LAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);" statement_identifier : (expression_statement "pr2serr(pcVar4,__s2,__s,pcVar7);" (call_expression "pr2serr(pcVar4,__s2,__s,pcVar7)" identifier (argument_list "(pcVar4,__s2,__s,pcVar7)" ( identifier , identifier , identifier , identifier ))) ;)) (labeled_statement "LAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );" statement_identifier : (expression_statement "puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );" (call_expression "puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                )" identifier (argument_list "(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                )" ( (string_literal ""Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence 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 ") ))) ;)) (expression_statement "puVar5 = (undefined4 *)0x1;" (assignment_expression "puVar5 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00012923;" goto statement_identifier ;) })) (expression_statement "*(char **)(param_1 + 0x28) = __s;" (assignment_expression "*(char **)(param_1 + 0x28) = __s" (pointer_expression "*(char **)(param_1 + 0x28)" * (cast_expression "(char **)(param_1 + 0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) }))) })) (labeled_statement "LAB_00012876:\n      iVar6 = iVar6 + 1;" statement_identifier : (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(param_2 != iVar6)" ( (binary_expression "param_2 != iVar6" identifier != identifier) )) ;) })) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }" { (expression_statement "FUN_00012b70();" (call_expression "FUN_00012b70()" identifier (argument_list "()" ( ))) ;) (expression_statement "_DT_INIT();" (call_expression "_DT_INIT()" identifier (argument_list "()" ( ))) ;) (return_statement "return &DAT_00015e6c;" return (pointer_expression "&DAT_00015e6c" & identifier) ;) }))) (return_statement "return puVar5;" return identifier ;) }))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Removing unreachable block (ram,0x00012b2e) */\n/* WARNING: Removing unreachable block (ram,0x00012b30) */\n\nint __regparm3 old_parse_cmd_line(opts_t *op,int argc,char **argv)\n\n{\n  size_t sVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  char *extraout_ECX;\n  char *extraout_EDX;\n  int iVar5;\n  char *__s2;\n  int in_GS_OFFSET;\n  EVP_PKEY_CTX *in_stack_ffffff98;\n  char *__s;\n  char *pcVar6;\n  int n;\n  uint u;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1282d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < argc) {\n    iVar5 = 1;\n    do {\n      __s = argv[iVar5];\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }\n      }\nLAB_00012876:\n      iVar5 = iVar5 + 1;\n    } while (argc != iVar5);\n  }\n  iVar5 = 0;\nLAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    __stack_chk_fail_local();\n    _init(in_stack_ffffff98);\n    return 0x15e6c;\n  }\n  return iVar5;\n}\n\n" comment comment comment (function_definition "int __regparm3 old_parse_cmd_line(opts_t *op,int argc,char **argv)\n\n{\n  size_t sVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  char *extraout_ECX;\n  char *extraout_EDX;\n  int iVar5;\n  char *__s2;\n  int in_GS_OFFSET;\n  EVP_PKEY_CTX *in_stack_ffffff98;\n  char *__s;\n  char *pcVar6;\n  int n;\n  uint u;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1282d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < argc) {\n    iVar5 = 1;\n    do {\n      __s = argv[iVar5];\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }\n      }\nLAB_00012876:\n      iVar5 = iVar5 + 1;\n    } while (argc != iVar5);\n  }\n  iVar5 = 0;\nLAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    __stack_chk_fail_local();\n    _init(in_stack_ffffff98);\n    return 0x15e6c;\n  }\n  return iVar5;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "old_parse_cmd_line(opts_t *op,int argc,char **argv)" identifier (parameter_list "(opts_t *op,int argc,char **argv)" ( (parameter_declaration "opts_t *op" type_identifier (pointer_declarator "*op" * identifier)) , (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  size_t sVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  char *extraout_ECX;\n  char *extraout_EDX;\n  int iVar5;\n  char *__s2;\n  int in_GS_OFFSET;\n  EVP_PKEY_CTX *in_stack_ffffff98;\n  char *__s;\n  char *pcVar6;\n  int n;\n  uint u;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1282d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < argc) {\n    iVar5 = 1;\n    do {\n      __s = argv[iVar5];\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }\n      }\nLAB_00012876:\n      iVar5 = iVar5 + 1;\n    } while (argc != iVar5);\n  }\n  iVar5 = 0;\nLAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    __stack_chk_fail_local();\n    _init(in_stack_ffffff98);\n    return 0x15e6c;\n  }\n  return iVar5;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "char *extraout_EDX;" primitive_type (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "EVP_PKEY_CTX *in_stack_ffffff98;" type_identifier (pointer_declarator "*in_stack_ffffff98" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int n;" primitive_type identifier ;) (declaration "uint u;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1282d;" (assignment_expression "uStack_14 = 0x1282d" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (1 < argc) {\n    iVar5 = 1;\n    do {\n      __s = argv[iVar5];\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }\n      }\nLAB_00012876:\n      iVar5 = iVar5 + 1;\n    } while (argc != iVar5);\n  }" if (parenthesized_expression "(1 < argc)" ( (binary_expression "1 < argc" number_literal < identifier) )) (compound_statement "{\n    iVar5 = 1;\n    do {\n      __s = argv[iVar5];\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }\n      }\nLAB_00012876:\n      iVar5 = iVar5 + 1;\n    } while (argc != iVar5);\n  }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (do_statement "do {\n      __s = argv[iVar5];\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }\n      }\nLAB_00012876:\n      iVar5 = iVar5 + 1;\n    } while (argc != iVar5);" do (compound_statement "{\n      __s = argv[iVar5];\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }\n      }\nLAB_00012876:\n      iVar5 = iVar5 + 1;\n    }" { (expression_statement "__s = argv[iVar5];" (assignment_expression "__s = argv[iVar5]" identifier = (subscript_expression "argv[iVar5]" identifier [ identifier ])) ;) (expression_statement "sVar1 = strlen(__s);" (assignment_expression "sVar1 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (if_statement "if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }\n      }" if (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }\n      }" { (if_statement "if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }" if (parenthesized_expression "(*__s == '-')" ( (binary_expression "*__s == '-'" (pointer_expression "*__s" * identifier) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }" { (expression_statement "iVar2 = sVar1 - 1;" (assignment_expression "iVar2 = sVar1 - 1" identifier = (binary_expression "sVar1 - 1" identifier - number_literal)) ;) (if_statement "if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }" { (do_statement "do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);" do (compound_statement "{\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            }" { (expression_statement "__s2 = __s + 1;" (assignment_expression "__s2 = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (switch_statement "switch(*__s2) {\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }" switch (parenthesized_expression "(*__s2)" ( (pointer_expression "*__s2" * identifier) )) (compound_statement "{\n              case '?':\n                op->do_help = op->do_help + 1;\n                break;\n              default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;\n              case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                op->version_given = true;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                op->do_extdur = true;\n                break;\n              case 'l':\n                op->do_list = true;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                op->do_deftest = true;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }" { (case_statement "case '?':\n                op->do_help = op->do_help + 1;\n                break;" case (char_literal "'?'" ' character ') : (expression_statement "op->do_help = op->do_help + 1;" (assignment_expression "op->do_help = op->do_help + 1" (field_expression "op->do_help" identifier -> field_identifier) = (binary_expression "op->do_help + 1" (field_expression "op->do_help" identifier -> field_identifier) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "default:\n_L48:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;" default : (labeled_statement "_L48:\n                iVar2 = strncmp("raw=",__s2,4);" statement_identifier : (expression_statement "iVar2 = strncmp("raw=",__s2,4);" (assignment_expression "iVar2 = strncmp("raw=",__s2,4)" identifier = (call_expression "strncmp("raw=",__s2,4)" identifier (argument_list "("raw=",__s2,4)" ( (string_literal ""raw="" " string_content ") , identifier , number_literal )))) ;)) (if_statement "if (iVar2 == 0) {\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  op->do_raw = true;\n                  op->raw_arg = __s + 5;\n                }" { (expression_statement "op->do_raw = true;" (assignment_expression "op->do_raw = true" (field_expression "op->do_raw" identifier -> field_identifier) = true) ;) (expression_statement "op->raw_arg = __s + 5;" (assignment_expression "op->raw_arg = __s + 5" (field_expression "op->raw_arg" identifier -> field_identifier) = (binary_expression "__s + 5" identifier + number_literal)) ;) }) (else_clause "else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar2 = strncmp("s=",__s2,2);" (assignment_expression "iVar2 = strncmp("s=",__s2,2)" identifier = (call_expression "strncmp("s=",__s2,2)" identifier (argument_list "("s=",__s2,2)" ( (string_literal ""s="" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);\n                    if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    op->do_selftest = u;\n                  }" { (expression_statement "iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0);" (assignment_expression "iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0)" identifier = (call_expression "__isoc99_sscanf(__s + 3,&DAT_0001302f,&u,0)" identifier (argument_list "(__s + 3,&DAT_0001302f,&u,0)" ( (binary_expression "__s + 3" identifier + number_literal) , (pointer_expression "&DAT_0001302f" & identifier) , (pointer_expression "&u" & identifier) , number_literal )))) ;) (if_statement "if ((iVar2 != 1) || (7 < u)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }" if (parenthesized_expression "((iVar2 != 1) || (7 < u))" ( (binary_expression "(iVar2 != 1) || (7 < u)" (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(7 < u)" ( (binary_expression "7 < u" number_literal < identifier) ))) )) (compound_statement "{\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }" { (expression_statement "puts("Bad page code after \'-s=\' option");" (call_expression "puts("Bad page code after \'-s=\' option")" identifier (argument_list "("Bad page code after \'-s=\' option")" ( (string_literal ""Bad page code after \'-s=\' option"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) (goto_statement "goto LAB_00012a3d;" goto statement_identifier ;) })) (expression_statement "op->do_selftest = u;" (assignment_expression "op->do_selftest = u" (field_expression "op->do_selftest" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" { (expression_statement "iVar2 = strncmp("T=",__s2,2);" (assignment_expression "iVar2 = strncmp("T=",__s2,2)" identifier = (call_expression "strncmp("T=",__s2,2)" identifier (argument_list "("T=",__s2,2)" ( (string_literal ""T="" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);\n                      if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      op->timeout = n;\n                    }" { (expression_statement "iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0);" (assignment_expression "iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&n,0)" identifier = (call_expression "__isoc99_sscanf(__s + 3,&DAT_00013035,&n,0)" identifier (argument_list "(__s + 3,&DAT_00013035,&n,0)" ( (binary_expression "__s + 3" identifier + number_literal) , (pointer_expression "&DAT_00013035" & identifier) , (pointer_expression "&n" & identifier) , number_literal )))) ;) (if_statement "if ((iVar2 != 1) || (n < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }" if (parenthesized_expression "((iVar2 != 1) || (n < 0))" ( (binary_expression "(iVar2 != 1) || (n < 0)" (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(n < 0)" ( (binary_expression "n < 0" identifier < number_literal) ))) )) (compound_statement "{\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }" { (expression_statement "puts("Bad page code after \'-T=SECS\' option");" (call_expression "puts("Bad page code after \'-T=SECS\' option")" identifier (argument_list "("Bad page code after \'-T=SECS\' option")" ( (string_literal ""Bad page code after \'-T=SECS\' option"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) (goto_statement "goto LAB_00012a3d;" goto statement_identifier ;) })) (expression_statement "op->timeout = n;" (assignment_expression "op->timeout = n" (field_expression "op->timeout" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" else (compound_statement "{\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" { (expression_statement "iVar2 = strcmp("-old",__s2);" (assignment_expression "iVar2 = strcmp("-old",__s2)" identifier = (call_expression "strcmp("-old",__s2)" identifier (argument_list "("-old",__s2)" ( (string_literal ""-old"" " string_content ") , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar6 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }" { (expression_statement "pcVar4 = "Unrecognized option: %s\n";" (assignment_expression "pcVar4 = "Unrecognized option: %s\n"" identifier = (string_literal ""Unrecognized option: %s\n"" " string_content escape_sequence ")) ;) (expression_statement "__s = extraout_ECX;" (assignment_expression "__s = extraout_ECX" identifier = identifier) ;) (expression_statement "pcVar6 = extraout_ECX;" (assignment_expression "pcVar6 = extraout_ECX" identifier = identifier) ;) (goto_statement "goto LAB_00012a37;" goto statement_identifier ;) })) }))) }))) }))) (goto_statement "goto LAB_00012876;" goto statement_identifier ;)) (case_statement "case 'H':" case (char_literal "'H'" ' character ') :) (case_statement "case 'h':\n                op->do_hex = op->do_hex + 1;\n                break;" case (char_literal "'h'" ' character ') : (expression_statement "op->do_hex = op->do_hex + 1;" (assignment_expression "op->do_hex = op->do_hex + 1" (field_expression "op->do_hex" identifier -> field_identifier) = (binary_expression "op->do_hex + 1" (field_expression "op->do_hex" identifier -> field_identifier) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'N':\n                op->opt_new = true;\n                iVar5 = 0;\n                goto LAB_00012923;" case (char_literal "'N'" ' character ') : (expression_statement "op->opt_new = true;" (assignment_expression "op->opt_new = true" (field_expression "op->opt_new" identifier -> field_identifier) = true) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00012923;" goto statement_identifier ;)) (case_statement "case 'O':\n                break;" case (char_literal "'O'" ' character ') : (break_statement "break;" break ;)) (case_statement "case 'V':\n                op->version_given = true;\n                break;" case (char_literal "'V'" ' character ') : (expression_statement "op->version_given = true;" (assignment_expression "op->version_given = true" (field_expression "op->version_given" identifier -> field_identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_doff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;" case (char_literal "'d'" ' character ') : (expression_statement "iVar3 = strncmp("doff",__s2,4);" (assignment_expression "iVar3 = strncmp("doff",__s2,4)" identifier = (call_expression "strncmp("doff",__s2,4)" identifier (argument_list "("doff",__s2,4)" ( (string_literal ""doff"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto _L48;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto _L48;" goto statement_identifier ;)) (expression_statement "op->do_doff = true;" (assignment_expression "op->do_doff = true" (field_expression "op->do_doff" identifier -> field_identifier) = true) ;) (expression_statement "__s2 = __s + 4;" (assignment_expression "__s2 = __s + 4" identifier = (binary_expression "__s + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" identifier = (binary_expression "iVar2 + -3" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n                op->do_extdur = true;\n                break;" case (char_literal "'e'" ' character ') : (expression_statement "op->do_extdur = true;" (assignment_expression "op->do_extdur = true" (field_expression "op->do_extdur" identifier -> field_identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n                op->do_list = true;\n                break;" case (char_literal "'l'" ' character ') : (expression_statement "op->do_list = true;" (assignment_expression "op->do_list = true" (field_expression "op->do_list" identifier -> field_identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto _L48;\n                op->do_pf = true;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;" case (char_literal "'p'" ' character ') : (expression_statement "iVar3 = strncmp("pf",__s2,2);" (assignment_expression "iVar3 = strncmp("pf",__s2,2)" identifier = (call_expression "strncmp("pf",__s2,2)" identifier (argument_list "("pf",__s2,2)" ( (string_literal ""pf"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto _L48;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto _L48;" goto statement_identifier ;)) (expression_statement "op->do_pf = true;" (assignment_expression "op->do_pf = true" (field_expression "op->do_pf" identifier -> field_identifier) = true) ;) (expression_statement "__s2 = __s + 2;" (assignment_expression "__s2 = __s + 2" identifier = (binary_expression "__s + 2" identifier + number_literal)) ;) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n                op->do_deftest = true;\n                break;" case (char_literal "'t'" ' character ') : (expression_statement "op->do_deftest = true;" (assignment_expression "op->do_deftest = true" (field_expression "op->do_deftest" identifier -> field_identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto _L48;\n                op->do_uoff = true;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;" case (char_literal "'u'" ' character ') : (expression_statement "iVar3 = strncmp("uoff",__s2,4);" (assignment_expression "iVar3 = strncmp("uoff",__s2,4)" identifier = (call_expression "strncmp("uoff",__s2,4)" identifier (argument_list "("uoff",__s2,4)" ( (string_literal ""uoff"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto _L48;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto _L48;" goto statement_identifier ;)) (expression_statement "op->do_uoff = true;" (assignment_expression "op->do_uoff = true" (field_expression "op->do_uoff" identifier -> field_identifier) = true) ;) (expression_statement "__s2 = __s + 4;" (assignment_expression "__s2 = __s + 4" identifier = (binary_expression "__s + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" identifier = (binary_expression "iVar2 + -3" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'v':\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;" case (char_literal "'v'" ' character ') : (expression_statement "op->verbose_given = true;" (assignment_expression "op->verbose_given = true" (field_expression "op->verbose_given" identifier -> field_identifier) = true) ;) (expression_statement "op->verbose = op->verbose + 1;" (assignment_expression "op->verbose = op->verbose + 1" (field_expression "op->verbose" identifier -> field_identifier) = (binary_expression "op->verbose + 1" (field_expression "op->verbose" identifier -> field_identifier) + number_literal)) ;)) })) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (expression_statement "__s = __s2;" (assignment_expression "__s = __s2" identifier = identifier) ;) }) while (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) ;) })) }) (else_clause "else {\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }" else (compound_statement "{\n          __s2 = op->device_name;\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }\n          op->device_name = __s;\n        }" { (expression_statement "__s2 = op->device_name;" (assignment_expression "__s2 = op->device_name" identifier = (field_expression "op->device_name" identifier -> field_identifier)) ;) (if_statement "if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }" if (parenthesized_expression "(__s2 != (char *)0x0)" ( (binary_expression "__s2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar6 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            iVar5 = 1;\n            goto LAB_00012923;\n          }" { (expression_statement "pcVar4 = "too many arguments, got: %s, not expecting: %s\n";" (assignment_expression "pcVar4 = "too many arguments, got: %s, not expecting: %s\n"" identifier = (string_literal ""too many arguments, got: %s, not expecting: %s\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar6 = extraout_EDX;" (assignment_expression "pcVar6 = extraout_EDX" identifier = identifier) ;) (labeled_statement "LAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar6);" statement_identifier : (expression_statement "pr2serr(pcVar4,__s2,__s,pcVar6);" (call_expression "pr2serr(pcVar4,__s2,__s,pcVar6)" identifier (argument_list "(pcVar4,__s2,__s,pcVar6)" ( identifier , identifier , identifier , identifier ))) ;)) (labeled_statement "LAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );" statement_identifier : (expression_statement "puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );" (call_expression "puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                )" identifier (argument_list "(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                )" ( (string_literal ""Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence 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 ") ))) ;)) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00012923;" goto statement_identifier ;) })) (expression_statement "op->device_name = __s;" (assignment_expression "op->device_name = __s" (field_expression "op->device_name" identifier -> field_identifier) = identifier) ;) }))) })) (labeled_statement "LAB_00012876:\n      iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(argc != iVar5)" ( (binary_expression "argc != iVar5" identifier != identifier) )) ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    __stack_chk_fail_local();\n    _init(in_stack_ffffff98);\n    return 0x15e6c;\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    __stack_chk_fail_local();\n    _init(in_stack_ffffff98);\n    return 0x15e6c;\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    __stack_chk_fail_local();\n    _init(in_stack_ffffff98);\n    return 0x15e6c;\n  }" { (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) (expression_statement "_init(in_stack_ffffff98);" (call_expression "_init(in_stack_ffffff98)" identifier (argument_list "(in_stack_ffffff98)" ( identifier ))) ;) (return_statement "return 0x15e6c;" return number_literal ;) }))) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit "undefined4 * __regparm3 FUN_00012820(undefined1 *param_1,int param_2,int param_3)\n\n{\n  size_t sVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined4 *puVar5;\n  char *extraout_ECX;\n  char *extraout_EDX;\n  int iVar6;\n  char *__s2;\n  int in_GS_OFFSET;\n  char *__s;\n  char *pcVar7;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1282d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < param_2) {\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }\n  puVar5 = (undefined4 *)0x0;\nLAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }\n  return puVar5;\n}\n\n" (ERROR "undefined4 * __regparm3 FUN_00012820(undefined1 *param_1,int param_2,int param_3)" (binary_expression "undefined4 * __regparm3 FUN_00012820(undefined1 *param_1,int param_2,int param_3)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_00012820(undefined1 *param_1,int param_2,int param_3)" identifier (argument_list "(undefined1 *param_1,int param_2,int param_3)" ( (binary_expression "undefined1 *param_1" identifier * identifier) , (ERROR "int" identifier) identifier , (ERROR "int" identifier) identifier ))))) (compound_statement "{\n  size_t sVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined4 *puVar5;\n  char *extraout_ECX;\n  char *extraout_EDX;\n  int iVar6;\n  char *__s2;\n  int in_GS_OFFSET;\n  char *__s;\n  char *pcVar7;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1282d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < param_2) {\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }\n  puVar5 = (undefined4 *)0x0;\nLAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }\n  return puVar5;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "char *extraout_EDX;" primitive_type (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1282d;" (assignment_expression "uStack_14 = 0x1282d" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (1 < param_2) {\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }" if (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) (compound_statement "{\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (do_statement "do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);" do (compound_statement "{\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    }" { (expression_statement "__s = *(char **)(param_3 + iVar6 * 4);" (assignment_expression "__s = *(char **)(param_3 + iVar6 * 4)" identifier = (pointer_expression "*(char **)(param_3 + iVar6 * 4)" * (cast_expression "(char **)(param_3 + iVar6 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + iVar6 * 4)" ( (binary_expression "param_3 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) (expression_statement "sVar1 = strlen(__s);" (assignment_expression "sVar1 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (if_statement "if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }" if (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }" { (if_statement "if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }" if (parenthesized_expression "(*__s == '-')" ( (binary_expression "*__s == '-'" (pointer_expression "*__s" * identifier) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }" { (expression_statement "iVar2 = sVar1 - 1;" (assignment_expression "iVar2 = sVar1 - 1" identifier = (binary_expression "sVar1 - 1" identifier - number_literal)) ;) (if_statement "if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }" { (do_statement "do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);" do (compound_statement "{\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            }" { (expression_statement "__s2 = __s + 1;" (assignment_expression "__s2 = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (switch_statement "switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }" switch (parenthesized_expression "(*__s2)" ( (pointer_expression "*__s2" * identifier) )) (compound_statement "{\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }" { (case_statement "case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;" case (char_literal "'?'" ' character ') : (expression_statement "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0xc) + 1" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;" default : (labeled_statement "LAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);" statement_identifier : (expression_statement "iVar2 = strncmp("raw=",__s2,4);" (assignment_expression "iVar2 = strncmp("raw=",__s2,4)" identifier = (call_expression "strncmp("raw=",__s2,4)" identifier (argument_list "("raw=",__s2,4)" ( (string_literal ""raw="" " string_content ") , identifier , number_literal )))) ;)) (if_statement "if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }" { (expression_statement "param_1[5] = 1;" (assignment_expression "param_1[5] = 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(char **)(param_1 + 0x2c) = __s + 5;" (assignment_expression "*(char **)(param_1 + 0x2c) = __s + 5" (pointer_expression "*(char **)(param_1 + 0x2c)" * (cast_expression "(char **)(param_1 + 0x2c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "__s + 5" identifier + number_literal)) ;) }) (else_clause "else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar2 = strncmp("s=",__s2,2);" (assignment_expression "iVar2 = strncmp("s=",__s2,2)" identifier = (call_expression "strncmp("s=",__s2,2)" identifier (argument_list "("s=",__s2,2)" ( (string_literal ""s="" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }" { (expression_statement "iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);" (assignment_expression "iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0)" identifier = (call_expression "__isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0)" identifier (argument_list "(__s + 3,&DAT_0001302f,&local_24,0)" ( (binary_expression "__s + 3" identifier + number_literal) , (pointer_expression "&DAT_0001302f" & identifier) , (pointer_expression "&local_24" & identifier) , number_literal )))) ;) (if_statement "if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }" if (parenthesized_expression "((iVar2 != 1) || (7 < local_24))" ( (binary_expression "(iVar2 != 1) || (7 < local_24)" (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(7 < local_24)" ( (binary_expression "7 < local_24" number_literal < identifier) ))) )) (compound_statement "{\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }" { (expression_statement "puts("Bad page code after \'-s=\' option");" (call_expression "puts("Bad page code after \'-s=\' option")" identifier (argument_list "("Bad page code after \'-s=\' option")" ( (string_literal ""Bad page code after \'-s=\' option"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) (goto_statement "goto LAB_00012a3d;" goto statement_identifier ;) })) (expression_statement "*(uint *)(param_1 + 0x1c) = local_24;" (assignment_expression "*(uint *)(param_1 + 0x1c) = local_24" (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" { (expression_statement "iVar2 = strncmp("T=",__s2,2);" (assignment_expression "iVar2 = strncmp("T=",__s2,2)" identifier = (call_expression "strncmp("T=",__s2,2)" identifier (argument_list "("T=",__s2,2)" ( (string_literal ""T="" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }" { (expression_statement "iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);" (assignment_expression "iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0)" identifier = (call_expression "__isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0)" identifier (argument_list "(__s + 3,&DAT_00013035,&local_28,0)" ( (binary_expression "__s + 3" identifier + number_literal) , (pointer_expression "&DAT_00013035" & identifier) , (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }" if (parenthesized_expression "((iVar2 != 1) || (local_28 < 0))" ( (binary_expression "(iVar2 != 1) || (local_28 < 0)" (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(local_28 < 0)" ( (binary_expression "local_28 < 0" identifier < number_literal) ))) )) (compound_statement "{\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }" { (expression_statement "puts("Bad page code after \'-T=SECS\' option");" (call_expression "puts("Bad page code after \'-T=SECS\' option")" identifier (argument_list "("Bad page code after \'-T=SECS\' option")" ( (string_literal ""Bad page code after \'-T=SECS\' option"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) (goto_statement "goto LAB_00012a3d;" goto statement_identifier ;) })) (expression_statement "*(int *)(param_1 + 0x20) = local_28;" (assignment_expression "*(int *)(param_1 + 0x20) = local_28" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" else (compound_statement "{\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" { (expression_statement "iVar2 = strcmp("-old",__s2);" (assignment_expression "iVar2 = strcmp("-old",__s2)" identifier = (call_expression "strcmp("-old",__s2)" identifier (argument_list "("-old",__s2)" ( (string_literal ""-old"" " string_content ") , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }" { (expression_statement "pcVar4 = "Unrecognized option: %s\n";" (assignment_expression "pcVar4 = "Unrecognized option: %s\n"" identifier = (string_literal ""Unrecognized option: %s\n"" " string_content escape_sequence ")) ;) (expression_statement "__s = extraout_ECX;" (assignment_expression "__s = extraout_ECX" identifier = identifier) ;) (expression_statement "pcVar7 = extraout_ECX;" (assignment_expression "pcVar7 = extraout_ECX" identifier = identifier) ;) (goto_statement "goto LAB_00012a37;" goto statement_identifier ;) })) }))) }))) }))) (goto_statement "goto LAB_00012876;" goto statement_identifier ;)) (case_statement "case 'H':" case (char_literal "'H'" ' character ') :) (case_statement "case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;" case (char_literal "'h'" ' character ') : (expression_statement "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x10) + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;" case (char_literal "'N'" ' character ') : (expression_statement "param_1[7] = 1;" (assignment_expression "param_1[7] = 1" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00012923;" goto statement_identifier ;)) (case_statement "case 'O':\n                break;" case (char_literal "'O'" ' character ') : (break_statement "break;" break ;)) (case_statement "case 'V':\n                param_1[9] = 1;\n                break;" case (char_literal "'V'" ' character ') : (expression_statement "param_1[9] = 1;" (assignment_expression "param_1[9] = 1" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;" case (char_literal "'d'" ' character ') : (expression_statement "iVar3 = strncmp("doff",__s2,4);" (assignment_expression "iVar3 = strncmp("doff",__s2,4)" identifier = (call_expression "strncmp("doff",__s2,4)" identifier (argument_list "("doff",__s2,4)" ( (string_literal ""doff"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000129b6;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000129b6;" goto statement_identifier ;)) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__s2 = __s + 4;" (assignment_expression "__s2 = __s + 4" identifier = (binary_expression "__s + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" identifier = (binary_expression "iVar2 + -3" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n                param_1[2] = 1;\n                break;" case (char_literal "'e'" ' character ') : (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n                param_1[3] = 1;\n                break;" case (char_literal "'l'" ' character ') : (expression_statement "param_1[3] = 1;" (assignment_expression "param_1[3] = 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;" case (char_literal "'p'" ' character ') : (expression_statement "iVar3 = strncmp("pf",__s2,2);" (assignment_expression "iVar3 = strncmp("pf",__s2,2)" identifier = (call_expression "strncmp("pf",__s2,2)" identifier (argument_list "("pf",__s2,2)" ( (string_literal ""pf"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000129b6;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000129b6;" goto statement_identifier ;)) (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__s2 = __s + 2;" (assignment_expression "__s2 = __s + 2" identifier = (binary_expression "__s + 2" identifier + number_literal)) ;) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n                *param_1 = 1;\n                break;" case (char_literal "'t'" ' character ') : (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;" case (char_literal "'u'" ' character ') : (expression_statement "iVar3 = strncmp("uoff",__s2,4);" (assignment_expression "iVar3 = strncmp("uoff",__s2,4)" identifier = (call_expression "strncmp("uoff",__s2,4)" identifier (argument_list "("uoff",__s2,4)" ( (string_literal ""uoff"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000129b6;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000129b6;" goto statement_identifier ;)) (expression_statement "param_1[6] = 1;" (assignment_expression "param_1[6] = 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__s2 = __s + 4;" (assignment_expression "__s2 = __s + 4" identifier = (binary_expression "__s + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" identifier = (binary_expression "iVar2 + -3" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;" case (char_literal "'v'" ' character ') : (expression_statement "param_1[8] = 1;" (assignment_expression "param_1[8] = 1" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;" (assignment_expression "*(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x24) + 1" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) + number_literal)) ;)) })) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (expression_statement "__s = __s2;" (assignment_expression "__s = __s2" identifier = identifier) ;) }) while (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) ;) })) }) (else_clause "else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }" else (compound_statement "{\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }" { (expression_statement "__s2 = *(char **)(param_1 + 0x28);" (assignment_expression "__s2 = *(char **)(param_1 + 0x28)" identifier = (pointer_expression "*(char **)(param_1 + 0x28)" * (cast_expression "(char **)(param_1 + 0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }" if (parenthesized_expression "(__s2 != (char *)0x0)" ( (binary_expression "__s2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }" { (expression_statement "pcVar4 = "too many arguments, got: %s, not expecting: %s\n";" (assignment_expression "pcVar4 = "too many arguments, got: %s, not expecting: %s\n"" identifier = (string_literal ""too many arguments, got: %s, not expecting: %s\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar7 = extraout_EDX;" (assignment_expression "pcVar7 = extraout_EDX" identifier = identifier) ;) (labeled_statement "LAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);" statement_identifier : (expression_statement "pr2serr(pcVar4,__s2,__s,pcVar7);" (call_expression "pr2serr(pcVar4,__s2,__s,pcVar7)" identifier (argument_list "(pcVar4,__s2,__s,pcVar7)" ( identifier , identifier , identifier , identifier ))) ;)) (labeled_statement "LAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );" statement_identifier : (expression_statement "puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );" (call_expression "puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                )" identifier (argument_list "(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                )" ( (string_literal ""Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence 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 ") ))) ;)) (expression_statement "puVar5 = (undefined4 *)0x1;" (assignment_expression "puVar5 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00012923;" goto statement_identifier ;) })) (expression_statement "*(char **)(param_1 + 0x28) = __s;" (assignment_expression "*(char **)(param_1 + 0x28) = __s" (pointer_expression "*(char **)(param_1 + 0x28)" * (cast_expression "(char **)(param_1 + 0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) }))) })) (labeled_statement "LAB_00012876:\n      iVar6 = iVar6 + 1;" statement_identifier : (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(param_2 != iVar6)" ( (binary_expression "param_2 != iVar6" identifier != identifier) )) ;) })) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }" { (expression_statement "FUN_00012b70();" (call_expression "FUN_00012b70()" identifier (argument_list "()" ( ))) ;) (expression_statement "_DT_INIT();" (call_expression "_DT_INIT()" identifier (argument_list "()" ( ))) ;) (return_statement "return &DAT_00015e6c;" return (pointer_expression "&DAT_00015e6c" & identifier) ;) }))) (return_statement "return puVar5;" return identifier ;) }))
(translation_unit (ERROR (binary_expression IDENT * (ERROR IDENT) (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , (ERROR IDENT) IDENT , (ERROR IDENT) IDENT ))))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (break_statement break ;)) (case_statement default : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) }))) }))) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence 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 ") ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (pointer_expression & IDENT) ;) }))) (return_statement return IDENT ;) }))
(ERROR "undefined4 * __regparm3 FUN_00012820(undefined1 *param_1,int param_2,int param_3)" (binary_expression "undefined4 * __regparm3 FUN_00012820(undefined1 *param_1,int param_2,int param_3)" (identifier "undefined4") (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (call_expression "FUN_00012820(undefined1 *param_1,int param_2,int param_3)" (identifier "FUN_00012820") (argument_list "(undefined1 *param_1,int param_2,int param_3)" (( "(") (binary_expression "undefined1 *param_1" (identifier "undefined1") (* "*") (identifier "param_1")) (, ",") (ERROR "int" (identifier "int")) (identifier "param_2") (, ",") (ERROR "int" (identifier "int")) (identifier "param_3") () ")"))))) (compound_statement "{\n  size_t sVar1;\n  int iVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined4 *puVar5;\n  char *extraout_ECX;\n  char *extraout_EDX;\n  int iVar6;\n  char *__s2;\n  int in_GS_OFFSET;\n  char *__s;\n  char *pcVar7;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1282d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < param_2) {\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }\n  puVar5 = (undefined4 *)0x0;\nLAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }\n  return puVar5;\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "char *extraout_ECX;" (primitive_type "char") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "char *extraout_EDX;" (primitive_type "char") (pointer_declarator "*extraout_EDX" (* "*") (identifier "extraout_EDX")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char *__s2;" (primitive_type "char") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1282d;" (assignment_expression "uStack_14 = 0x1282d" (identifier "uStack_14") (= "=") (number_literal "0x1282d")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (1 < param_2) {\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }" (if "if") (parenthesized_expression "(1 < param_2)" (( "(") (binary_expression "1 < param_2" (number_literal "1") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    iVar6 = 1;\n    do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);\n  }" ({ "{") (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" (identifier "iVar6") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    } while (param_2 != iVar6);" (do "do") (compound_statement "{\n      __s = *(char **)(param_3 + iVar6 * 4);\n      sVar1 = strlen(__s);\n      if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }\nLAB_00012876:\n      iVar6 = iVar6 + 1;\n    }" ({ "{") (expression_statement "__s = *(char **)(param_3 + iVar6 * 4);" (assignment_expression "__s = *(char **)(param_3 + iVar6 * 4)" (identifier "__s") (= "=") (pointer_expression "*(char **)(param_3 + iVar6 * 4)" (* "*") (cast_expression "(char **)(param_3 + iVar6 * 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + iVar6 * 4)" (( "(") (binary_expression "param_3 + iVar6 * 4" (identifier "param_3") (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "sVar1 = strlen(__s);" (assignment_expression "sVar1 = strlen(__s)" (identifier "sVar1") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (if_statement "if (sVar1 != 0) {\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }" (if "if") (parenthesized_expression "(sVar1 != 0)" (( "(") (binary_expression "sVar1 != 0" (identifier "sVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }\n      }" ({ "{") (if_statement "if (*__s == '-') {\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }\n        else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }" (if "if") (parenthesized_expression "(*__s == '-')" (( "(") (binary_expression "*__s == '-'" (pointer_expression "*__s" (* "*") (identifier "__s")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (compound_statement "{\n          iVar2 = sVar1 - 1;\n          if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }\n        }" ({ "{") (expression_statement "iVar2 = sVar1 - 1;" (assignment_expression "iVar2 = sVar1 - 1" (identifier "iVar2") (= "=") (binary_expression "sVar1 - 1" (identifier "sVar1") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (iVar2 != 0) {\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);\n          }" ({ "{") (do_statement "do {\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            } while (0 < iVar2);" (do "do") (compound_statement "{\n              __s2 = __s + 1;\n              switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }\n              iVar2 = iVar2 + -1;\n              __s = __s2;\n            }" ({ "{") (expression_statement "__s2 = __s + 1;" (assignment_expression "__s2 = __s + 1" (identifier "__s2") (= "=") (binary_expression "__s + 1" (identifier "__s") (+ "+") (number_literal "1"))) (; ";")) (switch_statement "switch(*__s2) {\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }" (switch "switch") (parenthesized_expression "(*__s2)" (( "(") (pointer_expression "*__s2" (* "*") (identifier "__s2")) () ")")) (compound_statement "{\n              case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;\n              case 'H':\n              case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;\n              case 'O':\n                break;\n              case 'V':\n                param_1[9] = 1;\n                break;\n              case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'e':\n                param_1[2] = 1;\n                break;\n              case 'l':\n                param_1[3] = 1;\n                break;\n              case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;\n              case 't':\n                *param_1 = 1;\n                break;\n              case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;\n              case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;\n              }" ({ "{") (case_statement "case '?':\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;" (case "case") (char_literal "'?'" (' "'") (character "?") (' "'")) (: ":") (expression_statement "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0xc) + 1" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\nLAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);\n                if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }\n                goto LAB_00012876;" (default "default") (: ":") (labeled_statement "LAB_000129b6:\n                iVar2 = strncmp("raw=",__s2,4);" (statement_identifier "LAB_000129b6") (: ":") (expression_statement "iVar2 = strncmp("raw=",__s2,4);" (assignment_expression "iVar2 = strncmp("raw=",__s2,4)" (identifier "iVar2") (= "=") (call_expression "strncmp("raw=",__s2,4)" (identifier "strncmp") (argument_list "("raw=",__s2,4)" (( "(") (string_literal ""raw="" (" """) (string_content "raw=") (" """)) (, ",") (identifier "__s2") (, ",") (number_literal "4") () ")")))) (; ";"))) (if_statement "if (iVar2 == 0) {\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }\n                else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  param_1[5] = 1;\n                  *(char **)(param_1 + 0x2c) = __s + 5;\n                }" ({ "{") (expression_statement "param_1[5] = 1;" (assignment_expression "param_1[5] = 1" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(char **)(param_1 + 0x2c) = __s + 5;" (assignment_expression "*(char **)(param_1 + 0x2c) = __s + 5" (pointer_expression "*(char **)(param_1 + 0x2c)" (* "*") (cast_expression "(char **)(param_1 + 0x2c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "__s + 5" (identifier "__s") (+ "+") (number_literal "5"))) (; ";")) (} "}")) (else_clause "else {\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" (else "else") (compound_statement "{\n                  iVar2 = strncmp("s=",__s2,2);\n                  if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }\n                }" ({ "{") (expression_statement "iVar2 = strncmp("s=",__s2,2);" (assignment_expression "iVar2 = strncmp("s=",__s2,2)" (identifier "iVar2") (= "=") (call_expression "strncmp("s=",__s2,2)" (identifier "strncmp") (argument_list "("s=",__s2,2)" (( "(") (string_literal ""s="" (" """) (string_content "s=") (" """)) (, ",") (identifier "__s2") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }\n                  else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);\n                    if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }\n                    *(uint *)(param_1 + 0x1c) = local_24;\n                  }" ({ "{") (expression_statement "iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);" (assignment_expression "iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0)" (identifier "iVar2") (= "=") (call_expression "__isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0)" (identifier "__isoc99_sscanf") (argument_list "(__s + 3,&DAT_0001302f,&local_24,0)" (( "(") (binary_expression "__s + 3" (identifier "__s") (+ "+") (number_literal "3")) (, ",") (pointer_expression "&DAT_0001302f" (& "&") (identifier "DAT_0001302f")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar2 != 1) || (7 < local_24)) {\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }" (if "if") (parenthesized_expression "((iVar2 != 1) || (7 < local_24))" (( "(") (binary_expression "(iVar2 != 1) || (7 < local_24)" (parenthesized_expression "(iVar2 != 1)" (( "(") (binary_expression "iVar2 != 1" (identifier "iVar2") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(7 < local_24)" (( "(") (binary_expression "7 < local_24" (number_literal "7") (< "<") (identifier "local_24")) () ")"))) () ")")) (compound_statement "{\n                      puts("Bad page code after \'-s=\' option");\n                      goto LAB_00012a3d;\n                    }" ({ "{") (expression_statement "puts("Bad page code after \'-s=\' option");" (call_expression "puts("Bad page code after \'-s=\' option")" (identifier "puts") (argument_list "("Bad page code after \'-s=\' option")" (( "(") (string_literal ""Bad page code after \'-s=\' option"" (" """) (string_content "Bad page code after ") (escape_sequence "\'") (string_content "-s=") (escape_sequence "\'") (string_content " option") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_00012a3d;" (goto "goto") (statement_identifier "LAB_00012a3d") (; ";")) (} "}"))) (expression_statement "*(uint *)(param_1 + 0x1c) = local_24;" (assignment_expression "*(uint *)(param_1 + 0x1c) = local_24" (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (} "}")) (else_clause "else {\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" (else "else") (compound_statement "{\n                    iVar2 = strncmp("T=",__s2,2);\n                    if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }\n                  }" ({ "{") (expression_statement "iVar2 = strncmp("T=",__s2,2);" (assignment_expression "iVar2 = strncmp("T=",__s2,2)" (identifier "iVar2") (= "=") (call_expression "strncmp("T=",__s2,2)" (identifier "strncmp") (argument_list "("T=",__s2,2)" (( "(") (string_literal ""T="" (" """) (string_content "T=") (" """)) (, ",") (identifier "__s2") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }\n                    else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);\n                      if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }\n                      *(int *)(param_1 + 0x20) = local_28;\n                    }" ({ "{") (expression_statement "iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);" (assignment_expression "iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0)" (identifier "iVar2") (= "=") (call_expression "__isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0)" (identifier "__isoc99_sscanf") (argument_list "(__s + 3,&DAT_00013035,&local_28,0)" (( "(") (binary_expression "__s + 3" (identifier "__s") (+ "+") (number_literal "3")) (, ",") (pointer_expression "&DAT_00013035" (& "&") (identifier "DAT_00013035")) (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar2 != 1) || (local_28 < 0)) {\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }" (if "if") (parenthesized_expression "((iVar2 != 1) || (local_28 < 0))" (( "(") (binary_expression "(iVar2 != 1) || (local_28 < 0)" (parenthesized_expression "(iVar2 != 1)" (( "(") (binary_expression "iVar2 != 1" (identifier "iVar2") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(local_28 < 0)" (( "(") (binary_expression "local_28 < 0" (identifier "local_28") (< "<") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                        puts("Bad page code after \'-T=SECS\' option");\n                        goto LAB_00012a3d;\n                      }" ({ "{") (expression_statement "puts("Bad page code after \'-T=SECS\' option");" (call_expression "puts("Bad page code after \'-T=SECS\' option")" (identifier "puts") (argument_list "("Bad page code after \'-T=SECS\' option")" (( "(") (string_literal ""Bad page code after \'-T=SECS\' option"" (" """) (string_content "Bad page code after ") (escape_sequence "\'") (string_content "-T=SECS") (escape_sequence "\'") (string_content " option") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_00012a3d;" (goto "goto") (statement_identifier "LAB_00012a3d") (; ";")) (} "}"))) (expression_statement "*(int *)(param_1 + 0x20) = local_28;" (assignment_expression "*(int *)(param_1 + 0x20) = local_28" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (} "}")) (else_clause "else {\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" (else "else") (compound_statement "{\n                      iVar2 = strcmp("-old",__s2);\n                      if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }\n                    }" ({ "{") (expression_statement "iVar2 = strcmp("-old",__s2);" (assignment_expression "iVar2 = strcmp("-old",__s2)" (identifier "iVar2") (= "=") (call_expression "strcmp("-old",__s2)" (identifier "strcmp") (argument_list "("-old",__s2)" (( "(") (string_literal ""-old"" (" """) (string_content "-old") (" """)) (, ",") (identifier "__s2") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        pcVar4 = "Unrecognized option: %s\n";\n                        __s = extraout_ECX;\n                        pcVar7 = extraout_ECX;\n                        goto LAB_00012a37;\n                      }" ({ "{") (expression_statement "pcVar4 = "Unrecognized option: %s\n";" (assignment_expression "pcVar4 = "Unrecognized option: %s\n"" (identifier "pcVar4") (= "=") (string_literal ""Unrecognized option: %s\n"" (" """) (string_content "Unrecognized option: %s") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "__s = extraout_ECX;" (assignment_expression "__s = extraout_ECX" (identifier "__s") (= "=") (identifier "extraout_ECX")) (; ";")) (expression_statement "pcVar7 = extraout_ECX;" (assignment_expression "pcVar7 = extraout_ECX" (identifier "pcVar7") (= "=") (identifier "extraout_ECX")) (; ";")) (goto_statement "goto LAB_00012a37;" (goto "goto") (statement_identifier "LAB_00012a37") (; ";")) (} "}"))) (} "}")))) (} "}")))) (} "}")))) (goto_statement "goto LAB_00012876;" (goto "goto") (statement_identifier "LAB_00012876") (; ";"))) (case_statement "case 'H':" (case "case") (char_literal "'H'" (' "'") (character "H") (' "'")) (: ":")) (case_statement "case 'h':\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;" (case "case") (char_literal "'h'" (' "'") (character "h") (' "'")) (: ":") (expression_statement "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x10) + 1" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'N':\n                param_1[7] = 1;\n                puVar5 = (undefined4 *)0x0;\n                goto LAB_00012923;" (case "case") (char_literal "'N'" (' "'") (character "N") (' "'")) (: ":") (expression_statement "param_1[7] = 1;" (assignment_expression "param_1[7] = 1" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00012923;" (goto "goto") (statement_identifier "LAB_00012923") (; ";"))) (case_statement "case 'O':\n                break;" (case "case") (char_literal "'O'" (' "'") (character "O") (' "'")) (: ":") (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'V':\n                param_1[9] = 1;\n                break;" (case "case") (char_literal "'V'" (' "'") (character "V") (' "'")) (: ":") (expression_statement "param_1[9] = 1;" (assignment_expression "param_1[9] = 1" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'd':\n                iVar3 = strncmp("doff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[1] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;" (case "case") (char_literal "'d'" (' "'") (character "d") (' "'")) (: ":") (expression_statement "iVar3 = strncmp("doff",__s2,4);" (assignment_expression "iVar3 = strncmp("doff",__s2,4)" (identifier "iVar3") (= "=") (call_expression "strncmp("doff",__s2,4)" (identifier "strncmp") (argument_list "("doff",__s2,4)" (( "(") (string_literal ""doff"" (" """) (string_content "doff") (" """)) (, ",") (identifier "__s2") (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_000129b6;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000129b6;" (goto "goto") (statement_identifier "LAB_000129b6") (; ";"))) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "__s2 = __s + 4;" (assignment_expression "__s2 = __s + 4" (identifier "__s2") (= "=") (binary_expression "__s + 4" (identifier "__s") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" (identifier "iVar2") (= "=") (binary_expression "iVar2 + -3" (identifier "iVar2") (+ "+") (number_literal "-3"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'e':\n                param_1[2] = 1;\n                break;" (case "case") (char_literal "'e'" (' "'") (character "e") (' "'")) (: ":") (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'l':\n                param_1[3] = 1;\n                break;" (case "case") (char_literal "'l'" (' "'") (character "l") (' "'")) (: ":") (expression_statement "param_1[3] = 1;" (assignment_expression "param_1[3] = 1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'p':\n                iVar3 = strncmp("pf",__s2,2);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[4] = 1;\n                __s2 = __s + 2;\n                iVar2 = iVar2 + -1;\n                break;" (case "case") (char_literal "'p'" (' "'") (character "p") (' "'")) (: ":") (expression_statement "iVar3 = strncmp("pf",__s2,2);" (assignment_expression "iVar3 = strncmp("pf",__s2,2)" (identifier "iVar3") (= "=") (call_expression "strncmp("pf",__s2,2)" (identifier "strncmp") (argument_list "("pf",__s2,2)" (( "(") (string_literal ""pf"" (" """) (string_content "pf") (" """)) (, ",") (identifier "__s2") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_000129b6;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000129b6;" (goto "goto") (statement_identifier "LAB_000129b6") (; ";"))) (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "__s2 = __s + 2;" (assignment_expression "__s2 = __s + 2" (identifier "__s2") (= "=") (binary_expression "__s + 2" (identifier "__s") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 't':\n                *param_1 = 1;\n                break;" (case "case") (char_literal "'t'" (' "'") (character "t") (' "'")) (: ":") (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'u':\n                iVar3 = strncmp("uoff",__s2,4);\n                if (iVar3 != 0) goto LAB_000129b6;\n                param_1[6] = 1;\n                __s2 = __s + 4;\n                iVar2 = iVar2 + -3;\n                break;" (case "case") (char_literal "'u'" (' "'") (character "u") (' "'")) (: ":") (expression_statement "iVar3 = strncmp("uoff",__s2,4);" (assignment_expression "iVar3 = strncmp("uoff",__s2,4)" (identifier "iVar3") (= "=") (call_expression "strncmp("uoff",__s2,4)" (identifier "strncmp") (argument_list "("uoff",__s2,4)" (( "(") (string_literal ""uoff"" (" """) (string_content "uoff") (" """)) (, ",") (identifier "__s2") (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_000129b6;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000129b6;" (goto "goto") (statement_identifier "LAB_000129b6") (; ";"))) (expression_statement "param_1[6] = 1;" (assignment_expression "param_1[6] = 1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "__s2 = __s + 4;" (assignment_expression "__s2 = __s + 4" (identifier "__s2") (= "=") (binary_expression "__s + 4" (identifier "__s") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" (identifier "iVar2") (= "=") (binary_expression "iVar2 + -3" (identifier "iVar2") (+ "+") (number_literal "-3"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'v':\n                param_1[8] = 1;\n                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;" (case "case") (char_literal "'v'" (' "'") (character "v") (' "'")) (: ":") (expression_statement "param_1[8] = 1;" (assignment_expression "param_1[8] = 1" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;" (assignment_expression "*(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x24) + 1" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "1"))) (; ";"))) (} "}"))) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "__s = __s2;" (assignment_expression "__s = __s2" (identifier "__s") (= "=") (identifier "__s2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < iVar2)" (( "(") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }" (else "else") (compound_statement "{\n          __s2 = *(char **)(param_1 + 0x28);\n          if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }\n          *(char **)(param_1 + 0x28) = __s;\n        }" ({ "{") (expression_statement "__s2 = *(char **)(param_1 + 0x28);" (assignment_expression "__s2 = *(char **)(param_1 + 0x28)" (identifier "__s2") (= "=") (pointer_expression "*(char **)(param_1 + 0x28)" (* "*") (cast_expression "(char **)(param_1 + 0x28)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (__s2 != (char *)0x0) {\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }" (if "if") (parenthesized_expression "(__s2 != (char *)0x0)" (( "(") (binary_expression "__s2 != (char *)0x0" (identifier "__s2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";\n            pcVar7 = extraout_EDX;\nLAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);\nLAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );\n            puVar5 = (undefined4 *)0x1;\n            goto LAB_00012923;\n          }" ({ "{") (expression_statement "pcVar4 = "too many arguments, got: %s, not expecting: %s\n";" (assignment_expression "pcVar4 = "too many arguments, got: %s, not expecting: %s\n"" (identifier "pcVar4") (= "=") (string_literal ""too many arguments, got: %s, not expecting: %s\n"" (" """) (string_content "too many arguments, got: %s, not expecting: %s") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "pcVar7 = extraout_EDX;" (assignment_expression "pcVar7 = extraout_EDX" (identifier "pcVar7") (= "=") (identifier "extraout_EDX")) (; ";")) (labeled_statement "LAB_00012a37:\n            pr2serr(pcVar4,__s2,__s,pcVar7);" (statement_identifier "LAB_00012a37") (: ":") (expression_statement "pr2serr(pcVar4,__s2,__s,pcVar7);" (call_expression "pr2serr(pcVar4,__s2,__s,pcVar7)" (identifier "pr2serr") (argument_list "(pcVar4,__s2,__s,pcVar7)" (( "(") (identifier "pcVar4") (, ",") (identifier "__s2") (, ",") (identifier "__s") (, ",") (identifier "pcVar7") () ")"))) (; ";"))) (labeled_statement "LAB_00012a3d:\n            puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );" (statement_identifier "LAB_00012a3d") (: ":") (expression_statement "puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                );" (call_expression "puts(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                )" (identifier "puts") (argument_list "(\n                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"\n                )" (( "(") (string_literal ""Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"" (" """) (string_content "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]") (escape_sequence "\n") (string_content "                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]") (escape_sequence "\n") (string_content "  where:") (escape_sequence "\n") (string_content "    -doff   device online (def: 0, only with ") (escape_sequence "\'") (string_content "-t") (escape_sequence "\'") (string_content ")") (escape_sequence "\n") (string_content "    -e      duration of an extended self-test (from mode page 0xa)") (escape_sequence "\n") (string_content "    -h      output in hex") (escape_sequence "\n") (string_content "    -H      output in hex (same as ") (escape_sequence "\'") (string_content "-h") (escape_sequence "\'") (string_content ")") (escape_sequence "\n") (string_content "    -l      list supported page codes") (escape_sequence "\n") (string_content "    -pf     set PF bit (def: 0)") (escape_sequence "\n") (string_content "    -raw=H,H...    sequence of bytes to form diag page to send") (escape_sequence "\n") (string_content "    -raw=-  read stdin for sequence of bytes to send") (escape_sequence "\n") (string_content "    -s=SF   self-test code (def: 0)") (escape_sequence "\n") (string_content "            1->background short, 2->background extended, 4->abort test") (escape_sequence "\n") (string_content "            5->foreground short, 6->foreground extended") (escape_sequence "\n") (string_content "    -t      default self-test") (escape_sequence "\n") (string_content "    -T SECS    timeout for foreground self tests") (escape_sequence "\n") (string_content "    -uoff   unit offline (def: 0, only with ") (escape_sequence "\'") (string_content "-t") (escape_sequence "\'") (string_content ")") (escape_sequence "\n") (string_content "    -v      increase verbosity (print issued SCSI cmds)") (escape_sequence "\n") (string_content "    -V      output version string") (escape_sequence "\n") (string_content "    -N|--new   use new interface") (escape_sequence "\n") (string_content "    -?      output this usage message") (escape_sequence "\n") (escape_sequence "\n") (string_content "Performs a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command") (" """)) () ")"))) (; ";"))) (expression_statement "puVar5 = (undefined4 *)0x1;" (assignment_expression "puVar5 = (undefined4 *)0x1" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)0x1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_00012923;" (goto "goto") (statement_identifier "LAB_00012923") (; ";")) (} "}"))) (expression_statement "*(char **)(param_1 + 0x28) = __s;" (assignment_expression "*(char **)(param_1 + 0x28) = __s" (pointer_expression "*(char **)(param_1 + 0x28)" (* "*") (cast_expression "(char **)(param_1 + 0x28)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "__s")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_00012876:\n      iVar6 = iVar6 + 1;" (statement_identifier "LAB_00012876") (: ":") (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(param_2 != iVar6)" (( "(") (binary_expression "param_2 != iVar6" (identifier "param_2") (!= "!=") (identifier "iVar6")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00012923:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }" (statement_identifier "LAB_00012923") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    FUN_00012b70();\n    _DT_INIT();\n    return &DAT_00015e6c;\n  }" ({ "{") (expression_statement "FUN_00012b70();" (call_expression "FUN_00012b70()" (identifier "FUN_00012b70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "_DT_INIT();" (call_expression "_DT_INIT()" (identifier "_DT_INIT") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return &DAT_00015e6c;" (return "return") (pointer_expression "&DAT_00015e6c" (& "&") (identifier "DAT_00015e6c")) (; ";")) (} "}")))) (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00012b2e) */
/* WARNING: Removing unreachable block (ram,0x00012b30) */

int __regparm3 function_1(type_1 *op,int var_2,char **argv)

{
  size_t var_4;
  int var_5;
  int var_13;
  char *pcVar4;
  char *extraout_ECX;
  char *extraout_EDX;
  int var_16;
  char *var_14;
  int var_1;
  type_2 *in_stack_ffffff98;
  char *var_6;
  char *pcVar6;
  int var_11;
  type_3 var_9;
  int var_17;
  type_4 uStack_14;
  
  uStack_14 = 0x1282d;
  var_17 = *(int *)(var_1 + 0x14);
  if (1 < var_2) {
    var_16 = 1;
    do {
      var_6 = argv[var_16];
      var_4 = var_3(var_6);
      if (var_4 != 0) {
        if (*var_6 == '-') {
          var_5 = var_4 - 1;
          if (var_5 != 0) {
            do {
              var_14 = var_6 + 1;
              switch(*var_14) {
              case '?':
                op->do_help = op->do_help + 1;
                break;
              default:
_L48:
                var_5 = var_7("raw=",var_14,4);
                if (var_5 == 0) {
                  op->do_raw = true;
                  op->raw_arg = var_6 + 5;
                }
                else {
                  var_5 = var_7("s=",var_14,2);
                  if (var_5 == 0) {
                    var_5 = var_8(var_6 + 3,&DAT_0001302f,&var_9,0);
                    if ((var_5 != 1) || (7 < var_9)) {
                      var_10("Bad page code after \'-s=\' option");
                      goto LAB_00012a3d;
                    }
                    op->do_selftest = var_9;
                  }
                  else {
                    var_5 = var_7("T=",var_14,2);
                    if (var_5 == 0) {
                      var_5 = var_8(var_6 + 3,&DAT_00013035,&var_11,0);
                      if ((var_5 != 1) || (var_11 < 0)) {
                        var_10("Bad page code after \'-T=SECS\' option");
                        goto LAB_00012a3d;
                      }
                      op->timeout = var_11;
                    }
                    else {
                      var_5 = var_12("-old",var_14);
                      if (var_5 != 0) {
                        pcVar4 = "Unrecognized option: %s\n";
                        var_6 = extraout_ECX;
                        pcVar6 = extraout_ECX;
                        goto LAB_00012a37;
                      }
                    }
                  }
                }
                goto LAB_00012876;
              case 'H':
              case 'h':
                op->do_hex = op->do_hex + 1;
                break;
              case 'N':
                op->opt_new = true;
                var_16 = 0;
                goto LAB_00012923;
              case 'O':
                break;
              case 'V':
                op->version_given = true;
                break;
              case 'd':
                var_13 = var_7("doff",var_14,4);
                if (var_13 != 0) goto _L48;
                op->do_doff = true;
                var_14 = var_6 + 4;
                var_5 = var_5 + -3;
                break;
              case 'e':
                op->do_extdur = true;
                break;
              case 'l':
                op->do_list = true;
                break;
              case 'p':
                var_13 = var_7("pf",var_14,2);
                if (var_13 != 0) goto _L48;
                op->do_pf = true;
                var_14 = var_6 + 2;
                var_5 = var_5 + -1;
                break;
              case 't':
                op->do_deftest = true;
                break;
              case 'u':
                var_13 = var_7("uoff",var_14,4);
                if (var_13 != 0) goto _L48;
                op->do_uoff = true;
                var_14 = var_6 + 4;
                var_5 = var_5 + -3;
                break;
              case 'v':
                op->verbose_given = true;
                op->verbose = op->verbose + 1;
              }
              var_5 = var_5 + -1;
              var_6 = var_14;
            } while (0 < var_5);
          }
        }
        else {
          var_14 = op->device_name;
          if (var_14 != (char *)0x0) {
            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";
            pcVar6 = extraout_EDX;
LAB_00012a37:
            var_15(pcVar4,var_14,var_6,pcVar6);
LAB_00012a3d:
            var_10(
                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"
                );
            var_16 = 1;
            goto LAB_00012923;
          }
          op->device_name = var_6;
        }
      }
LAB_00012876:
      var_16 = var_16 + 1;
    } while (var_2 != var_16);
  }
  var_16 = 0;
LAB_00012923:
  if (var_17 != *(int *)(var_1 + 0x14)) {
    var_18();
    var_19(in_stack_ffffff98);
    return 0x15e6c;
  }
  return var_16;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00012b2e) */
/* WARNING: Removing unreachable block (ram,0x00012b30) */

undefined4 * __regparm3 MASKED(undefined1 *param_1,int param_2,int param_3)

{
  size_t sVar1;
  int iVar2;
  int iVar3;
  char *pcVar4;
  undefined4 *puVar5;
  char *extraout_ECX;
  char *extraout_EDX;
  int iVar6;
  char *__s2;
  int in_GS_OFFSET;
  char *__s;
  char *pcVar7;
  int local_28;
  uint local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1282d;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (1 < param_2) {
    iVar6 = 1;
    do {
      __s = *(char **)(param_3 + iVar6 * 4);
      sVar1 = strlen(__s);
      if (sVar1 != 0) {
        if (*__s == '-') {
          iVar2 = sVar1 - 1;
          if (iVar2 != 0) {
            do {
              __s2 = __s + 1;
              switch(*__s2) {
              case '?':
                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;
                break;
              default:
LAB_000129b6:
                iVar2 = strncmp("raw=",__s2,4);
                if (iVar2 == 0) {
                  param_1[5] = 1;
                  *(char **)(param_1 + 0x2c) = __s + 5;
                }
                else {
                  iVar2 = strncmp("s=",__s2,2);
                  if (iVar2 == 0) {
                    iVar2 = __isoc99_sscanf(__s + 3,&DAT_0001302f,&local_24,0);
                    if ((iVar2 != 1) || (7 < local_24)) {
                      puts("Bad page code after \'-s=\' option");
                      goto LAB_00012a3d;
                    }
                    *(uint *)(param_1 + 0x1c) = local_24;
                  }
                  else {
                    iVar2 = strncmp("T=",__s2,2);
                    if (iVar2 == 0) {
                      iVar2 = __isoc99_sscanf(__s + 3,&DAT_00013035,&local_28,0);
                      if ((iVar2 != 1) || (local_28 < 0)) {
                        puts("Bad page code after \'-T=SECS\' option");
                        goto LAB_00012a3d;
                      }
                      *(int *)(param_1 + 0x20) = local_28;
                    }
                    else {
                      iVar2 = strcmp("-old",__s2);
                      if (iVar2 != 0) {
                        pcVar4 = "Unrecognized option: %s\n";
                        __s = extraout_ECX;
                        pcVar7 = extraout_ECX;
                        goto LAB_00012a37;
                      }
                    }
                  }
                }
                goto LAB_00012876;
              case 'H':
              case 'h':
                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;
                break;
              case 'N':
                param_1[7] = 1;
                puVar5 = (undefined4 *)0x0;
                goto LAB_00012923;
              case 'O':
                break;
              case 'V':
                param_1[9] = 1;
                break;
              case 'd':
                iVar3 = strncmp("doff",__s2,4);
                if (iVar3 != 0) goto LAB_000129b6;
                param_1[1] = 1;
                __s2 = __s + 4;
                iVar2 = iVar2 + -3;
                break;
              case 'e':
                param_1[2] = 1;
                break;
              case 'l':
                param_1[3] = 1;
                break;
              case 'p':
                iVar3 = strncmp("pf",__s2,2);
                if (iVar3 != 0) goto LAB_000129b6;
                param_1[4] = 1;
                __s2 = __s + 2;
                iVar2 = iVar2 + -1;
                break;
              case 't':
                *param_1 = 1;
                break;
              case 'u':
                iVar3 = strncmp("uoff",__s2,4);
                if (iVar3 != 0) goto LAB_000129b6;
                param_1[6] = 1;
                __s2 = __s + 4;
                iVar2 = iVar2 + -3;
                break;
              case 'v':
                param_1[8] = 1;
                *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + 1;
              }
              iVar2 = iVar2 + -1;
              __s = __s2;
            } while (0 < iVar2);
          }
        }
        else {
          __s2 = *(char **)(param_1 + 0x28);
          if (__s2 != (char *)0x0) {
            pcVar4 = "too many arguments, got: %s, not expecting: %s\n";
            pcVar7 = extraout_EDX;
LAB_00012a37:
            pr2serr(pcVar4,__s2,__s,pcVar7);
LAB_00012a3d:
            puts(
                "Usage: sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...]\n                   [-s=SF] [-t] [-T=SECS] [-uoff] [-v] [-V] [DEVICE]\n  where:\n    -doff   device online (def: 0, only with \'-t\')\n    -e      duration of an extended self-test (from mode page 0xa)\n    -h      output in hex\n    -H      output in hex (same as \'-h\')\n    -l      list supported page codes\n    -pf     set PF bit (def: 0)\n    -raw=H,H...    sequence of bytes to form diag page to send\n    -raw=-  read stdin for sequence of bytes to send\n    -s=SF   self-test code (def: 0)\n            1->background short, 2->background extended, 4->abort test\n            5->foreground short, 6->foreground extended\n    -t      default self-test\n    -T SECS    timeout for foreground self tests\n    -uoff   unit offline (def: 0, only with \'-t\')\n    -v      increase verbosity (print issued SCSI cmds)\n    -V      output version string\n    -N|--new   use new interface\n    -?      output this usage message\n\nPerforms a SCSI SEND DIAGNOSTIC (and/or a RECEIVE DIAGNOSTIC RESULTS) command"
                );
            puVar5 = (undefined4 *)0x1;
            goto LAB_00012923;
          }
          *(char **)(param_1 + 0x28) = __s;
        }
      }
LAB_00012876:
      iVar6 = iVar6 + 1;
    } while (param_2 != iVar6);
  }
  puVar5 = (undefined4 *)0x0;
LAB_00012923:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
    FUN_00012b70();
    _DT_INIT();
    return &DAT_00015e6c;
  }
  return puVar5;
}

