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

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

{
  byte bVar1;
  ushort uVar2;
  size_t sVar3;
  int iVar4;
  char *pcVar5;
  ushort **ppuVar6;
  uint *puVar7;
  uint *extraout_ECX;
  uint *puVar8;
  uint *__s2;
  byte *pbVar9;
  uint *puVar10;
  int in_GS_OFFSET;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  int n;
  uint u;
  uint uu;
  int local_20;
  undefined4 uStack_14;
  uint *puVar11;
  
  bVar14 = 0;
  uStack_14 = 0x13b99;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (1 < argc) {
    puVar8 = (uint *)0x1;
    do {
      puVar11 = (uint *)argv[(int)puVar8];
      sVar3 = strlen((char *)puVar11);
      if (sVar3 != 0) {
        if ((byte)*puVar11 == 0x2d) {
          __s2 = (uint *)((int)puVar11 + 1);
          iVar4 = sVar3 - 1;
          if (iVar4 != 0) {
            bVar1 = *(byte *)__s2;
            while( true ) {
              bVar1 = bVar1 - 0x36;
              bVar13 = bVar1 == 0x40;
              bVar12 = bVar1 < 0x40;
              if (0x40 < bVar1) break;
              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];
              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;
              switch(bVar1) {
              case 0:
                op->do_six = true;
                break;
              default:
                goto _L10;
              case 9:
                op->do_help = op->do_help + 1;
                break;
              case 0xb:
                op->do_all = op->do_all + 2;
                break;
              case 0xe:
                op->do_dbout = true;
                break;
              case 0x12:
              case 0x32:
                op->do_hex = op->do_hex + 2;
                break;
              case 0x16:
                op->do_llbaa = true;
                break;
              case 0x18:
                op->opt_new = true;
                iVar4 = 0;
                goto LAB_00013d37;
              case 0x19:
                break;
              case 0x20:
                op->version_given = true;
                break;
              case 0x2b:
                op->do_all = op->do_all + 1;
                break;
              case 0x2e:
                op->do_dbd = true;
                break;
              case 0x2f:
                op->do_examine = true;
                break;
              case 0x30:
                op->do_flexible = true;
                break;
              case 0x36:
                op->do_list = true;
                break;
              case 0x3c:
                op->do_raw = op->do_raw + 2;
                break;
              case 0x40:
                op->verbose_given = true;
                op->verbose = op->verbose + 1;
              }
              __s2 = (uint *)((int)__s2 + 1);
              iVar4 = iVar4 + -1;
              if (iVar4 == 0) goto LAB_00013bf2;
              bVar1 = *(byte *)__s2;
            }
_L10:
            puVar7 = (uint *)0x2;
            pbVar9 = &DAT_00017bd4;
            puVar11 = __s2;
            do {
              puVar10 = puVar11;
              if (puVar7 == (uint *)0x0) break;
              puVar7 = (uint *)((int)puVar7 + -1);
              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);
              bVar12 = *pbVar9 < (byte)*puVar11;
              bVar13 = *pbVar9 == (byte)*puVar11;
              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;
              puVar11 = puVar10;
            } while (bVar13);
            if ((!bVar12 && !bVar13) == bVar12) {
              pbVar9 = (byte *)((int)__s2 + 2);
              puVar11 = &u;
              __s2 = (uint *)&DAT_00017be0;
              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);
              if ((iVar4 == 1) && (u < 4)) {
                op->page_control = u;
                goto LAB_00013bf2;
              }
              pcVar5 = "Bad page control after \'c=\' option\n";
              puVar8 = puVar7;
            }
            else {
              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);
              if (puVar7 == (uint *)0x0) {
                pbVar9 = (byte *)((int)__s2 + 2);
                puVar11 = (uint *)&n;
                __s2 = (uint *)&DAT_00017bda;
                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);
                if ((iVar4 == 1) && ((uint)n < 0x10000)) {
                  op->maxlen = n;
                  goto LAB_00013bf2;
                }
                pcVar5 = "Bad argument after \'m=\' option\n";
                puVar8 = puVar7;
              }
              else {
                iVar4 = strncmp("p=",(char *)__s2,2);
                if (iVar4 != 0) {
                  iVar4 = strncmp("subp=",(char *)__s2,5);
                  if (iVar4 == 0) {
                    pbVar9 = (byte *)((int)__s2 + 5);
                    puVar11 = &u;
                    __s2 = (uint *)&DAT_00017be0;
                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);
                    if ((iVar4 != 1) || (0xff < u)) {
                      pcVar5 = "Bad sub page code after \'subp=\' option\n";
                      puVar8 = puVar10;
                      goto LAB_00013d18;
                    }
                    op->subpg_code = u;
                    op->subpg_code_given = true;
                    if (op->pg_code == -1) {
                      op->pg_code = 0;
                    }
                  }
                  else {
                    iVar4 = strncmp("-old",(char *)__s2,4);
                    if (iVar4 != 0) {
                      pcVar5 = "Unrecognized option: %s\n";
                      puVar11 = extraout_ECX;
                      puVar8 = extraout_ECX;
                      goto LAB_00013d18;
                    }
                  }
                  goto LAB_00013bf2;
                }
                ppuVar6 = __ctype_b_loc();
                bVar1 = *(byte *)((int)__s2 + 2);
                uVar2 = (*ppuVar6)[(char)bVar1];
                if (((uVar2 & 0x400) != 0) &&
                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||
                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {
                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",
                          (byte *)((int)__s2 + 2),uVar2,uVar2);
                  iVar4 = 1;
                  goto LAB_00013d37;
                }
                pbVar9 = (byte *)((int)__s2 + 2);
                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);
                if (puVar7 == (uint *)0x0) {
                  puVar11 = &u;
                  __s2 = (uint *)&DAT_00017be0;
                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);
                  if ((iVar4 == 1) && (u < 0x40)) {
                    op->pg_code = u;
                    goto LAB_00013bf2;
                  }
                  pcVar5 = "Bad page code value after \'p=\' option\n";
                  puVar8 = puVar7;
                }
                else {
                  puVar7 = &uu;
                  puVar11 = &u;
                  __s2 = (uint *)&DAT_00017bdd;
                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);
                  if (iVar4 == 2) {
                    if (uu < 0x100) {
                      op->subpg_code = uu;
                      op->pg_code = u;
                      op->subpg_code_given = true;
                      goto LAB_00013bf2;
                    }
                    pcVar5 = "Bad subpage code value after \'p=\' option\n";
                    puVar8 = puVar7;
                  }
                  else {
                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";
                    puVar8 = puVar7;
                  }
                }
              }
            }
LAB_00013d18:
            pr2serr(pcVar5,__s2,puVar11,puVar8);
            usage_old();
            iVar4 = 1;
            goto LAB_00013d37;
          }
        }
        else {
          __s2 = (uint *)op->device_name;
          if (__s2 != (uint *)0x0) {
            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";
            goto LAB_00013d18;
          }
          op->device_name = (char *)puVar11;
        }
      }
LAB_00013bf2:
      puVar8 = (uint *)((int)puVar8 + 1);
    } while ((uint *)argc != puVar8);
  }
  iVar4 = 0;
LAB_00013d37:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar4;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



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

undefined4 __regparm3 FUN_00013b90(undefined1 *param_1,uint *param_2,int param_3)

{
  byte bVar1;
  ushort uVar2;
  size_t sVar3;
  int iVar4;
  char *pcVar5;
  undefined4 uVar6;
  ushort **ppuVar7;
  uint *puVar8;
  uint *extraout_ECX;
  uint *puVar9;
  uint *__s2;
  byte *pbVar10;
  uint *puVar11;
  int in_GS_OFFSET;
  bool bVar13;
  bool bVar14;
  byte bVar15;
  uint local_2c;
  uint local_28;
  uint local_24;
  int local_20;
  undefined4 uStack_14;
  uint *puVar12;
  
  bVar15 = 0;
  uStack_14 = 0x13b99;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (1 < (int)param_2) {
    puVar9 = (uint *)0x1;
    do {
      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);
      sVar3 = strlen((char *)puVar12);
      if (sVar3 != 0) {
        if ((byte)*puVar12 == 0x2d) {
          __s2 = (uint *)((int)puVar12 + 1);
          iVar4 = sVar3 - 1;
          if (iVar4 != 0) {
            bVar1 = *(byte *)__s2;
            while( true ) {
              bVar1 = bVar1 - 0x36;
              bVar14 = bVar1 == 0x40;
              bVar13 = bVar1 < 0x40;
              if (0x40 < bVar1) break;
              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);
              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;
              switch(bVar1) {
              case 0:
                param_1[6] = 1;
                break;
              default:
                goto LAB_00013c6c;
              case 9:
                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;
                break;
              case 0xb:
                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;
                break;
              case 0xe:
                param_1[1] = 1;
                break;
              case 0x12:
              case 0x32:
                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;
                break;
              case 0x16:
                param_1[5] = 1;
                break;
              case 0x18:
                param_1[9] = 1;
                uVar6 = 0;
                goto LAB_00013d37;
              case 0x19:
                break;
              case 0x20:
                param_1[0xb] = 1;
                break;
              case 0x2b:
                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;
                break;
              case 0x2e:
                *param_1 = 1;
                break;
              case 0x2f:
                param_1[2] = 1;
                break;
              case 0x30:
                param_1[3] = 1;
                break;
              case 0x36:
                param_1[4] = 1;
                break;
              case 0x3c:
                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;
                break;
              case 0x40:
                param_1[10] = 1;
                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;
              }
              __s2 = (uint *)((int)__s2 + 1);
              iVar4 = iVar4 + -1;
              if (iVar4 == 0) goto LAB_00013bf2;
              bVar1 = *(byte *)__s2;
            }
LAB_00013c6c:
            puVar8 = (uint *)0x2;
            pbVar10 = &DAT_00017bd4;
            puVar12 = __s2;
            do {
              puVar11 = puVar12;
              if (puVar8 == (uint *)0x0) break;
              puVar8 = (uint *)((int)puVar8 + -1);
              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);
              bVar13 = *pbVar10 < (byte)*puVar12;
              bVar14 = *pbVar10 == (byte)*puVar12;
              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
              puVar12 = puVar11;
            } while (bVar14);
            if ((!bVar13 && !bVar14) == bVar13) {
              pbVar10 = (byte *)((int)__s2 + 2);
              puVar12 = &local_28;
              __s2 = (uint *)&DAT_00017be0;
              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);
              if ((iVar4 == 1) && (local_28 < 4)) {
                *(uint *)(param_1 + 0x24) = local_28;
                goto LAB_00013bf2;
              }
              pcVar5 = "Bad page control after \'c=\' option\n";
              puVar9 = puVar8;
            }
            else {
              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);
              if (puVar8 == (uint *)0x0) {
                pbVar10 = (byte *)((int)__s2 + 2);
                puVar12 = &local_2c;
                __s2 = (uint *)&DAT_00017bda;
                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);
                if ((iVar4 == 1) && (local_2c < 0x10000)) {
                  *(uint *)(param_1 + 0x18) = local_2c;
                  goto LAB_00013bf2;
                }
                pcVar5 = "Bad argument after \'m=\' option\n";
                puVar9 = puVar8;
              }
              else {
                iVar4 = strncmp("p=",(char *)__s2,2);
                if (iVar4 != 0) {
                  iVar4 = strncmp("subp=",(char *)__s2,5);
                  if (iVar4 == 0) {
                    pbVar10 = (byte *)((int)__s2 + 5);
                    puVar12 = &local_28;
                    __s2 = (uint *)&DAT_00017be0;
                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);
                    if ((iVar4 != 1) || (0xff < local_28)) {
                      pcVar5 = "Bad sub page code after \'subp=\' option\n";
                      puVar9 = puVar11;
                      goto LAB_00013d18;
                    }
                    *(uint *)(param_1 + 0x2c) = local_28;
                    param_1[8] = 1;
                    if (*(int *)(param_1 + 0x28) == -1) {
                      *(undefined4 *)(param_1 + 0x28) = 0;
                    }
                  }
                  else {
                    iVar4 = strncmp("-old",(char *)__s2,4);
                    if (iVar4 != 0) {
                      pcVar5 = "Unrecognized option: %s\n";
                      puVar12 = extraout_ECX;
                      puVar9 = extraout_ECX;
                      goto LAB_00013d18;
                    }
                  }
                  goto LAB_00013bf2;
                }
                ppuVar7 = __ctype_b_loc();
                bVar1 = *(byte *)((int)__s2 + 2);
                uVar2 = (*ppuVar7)[(char)bVar1];
                if (((uVar2 & 0x400) != 0) &&
                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||
                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {
                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",
                          (byte *)((int)__s2 + 2),uVar2,uVar2);
                  uVar6 = 1;
                  goto LAB_00013d37;
                }
                pbVar10 = (byte *)((int)__s2 + 2);
                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);
                if (puVar8 == (uint *)0x0) {
                  puVar12 = &local_28;
                  __s2 = (uint *)&DAT_00017be0;
                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);
                  if ((iVar4 == 1) && (local_28 < 0x40)) {
                    *(uint *)(param_1 + 0x28) = local_28;
                    goto LAB_00013bf2;
                  }
                  pcVar5 = "Bad page code value after \'p=\' option\n";
                  puVar9 = puVar8;
                }
                else {
                  puVar8 = &local_24;
                  puVar12 = &local_28;
                  __s2 = (uint *)&DAT_00017bdd;
                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);
                  if (iVar4 == 2) {
                    if (local_24 < 0x100) {
                      *(uint *)(param_1 + 0x2c) = local_24;
                      *(uint *)(param_1 + 0x28) = local_28;
                      param_1[8] = 1;
                      goto LAB_00013bf2;
                    }
                    pcVar5 = "Bad subpage code value after \'p=\' option\n";
                    puVar9 = puVar8;
                  }
                  else {
                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";
                    puVar9 = puVar8;
                  }
                }
              }
            }
LAB_00013d18:
            pr2serr(pcVar5,__s2,puVar12,puVar9);
            FUN_00013b60();
            uVar6 = 1;
            goto LAB_00013d37;
          }
        }
        else {
          __s2 = *(uint **)(param_1 + 0x30);
          if (__s2 != (uint *)0x0) {
            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";
            goto LAB_00013d18;
          }
          *(uint **)(param_1 + 0x30) = puVar12;
        }
      }
LAB_00013bf2:
      puVar9 = (uint *)((int)puVar9 + 1);
    } while (param_2 != puVar9);
  }
  uVar6 = 0;
LAB_00013d37:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar6;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00014fb0();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000139f0
ADD EBX,0x73b3
SUB ESP,0x3c
MOV dword ptr [ESP + 0x14],EAX
MOV dword ptr [ESP + 0x10],EDX
MOV dword ptr [ESP + 0xc],ECX
MOV EDI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x2c],EDI
XOR EDI,EDI
CMP EDX,0x1
JLE 0x00013e07
LEA EAX,[EBX + 0xffffcc88]
MOV EDX,0x1
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xffffcc8b]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00013bff
MOV ESI,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESI + 0x30]
TEST EAX,EAX
JNZ 0x00013ed2
MOV dword ptr [ESI + 0x30],EBP
ADD EDX,0x1
CMP dword ptr [ESP + 0x10],EDX
JZ 0x00013e07
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0xc
MOV EBP,dword ptr [EAX + EDX*0x4]
PUSH EBP
CALL 0x00012150
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x00013bf2
CMP byte ptr [EBP],0x2d
JNZ 0x00013be0
ADD EBP,0x1
SUB EAX,0x1
JZ 0x00013bf2
MOVZX EDI,byte ptr [EBP]
MOV ESI,dword ptr [ESP + 0x14]
LEA ECX,[EDI + -0x36]
CMP CL,0x40
JA 0x00013c6c
LEA ESI,[ESI]
MOVZX ECX,CL
MOV EDI,dword ptr [EBX + ECX*0x4 + 0xffffd684]
ADD EDI,EBX
JMP EDI
MOV ESI,dword ptr [ESP + 0x18]
MOV ECX,0x2
MOV EDI,EBP
MOV dword ptr [ESP + 0x8],EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00013dc8
PUSH EDX
PUSH 0x2
PUSH EBP
PUSH dword ptr [ESP + 0x28]
CALL 0x00012240
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x00013ee0
MOV dword ptr [ESP + 0x8],EDX
PUSH EAX
LEA EAX,[EBX + 0xffffcc9a]
PUSH 0x2
PUSH EBP
PUSH EAX
CALL 0x00012240
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x00013e0e
MOV dword ptr [ESP + 0x8],EDX
PUSH EAX
LEA EAX,[EBX + 0xffffcc97]
PUSH 0x5
PUSH EBP
PUSH EAX
CALL 0x00012240
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x00013f21
LEA EAX,[EBX + 0xffffcc9d]
MOV dword ptr [ESP + 0x8],EDX
PUSH ESI
PUSH 0x4
PUSH EBP
PUSH EAX
CALL 0x00012240
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x00013bf2
PUSH ECX
LEA EAX,[EBX + 0xffffcca2]
PUSH ECX
PUSH EBP
PUSH EAX
CALL 0x000120c0
CALL 0x00013b60
ADD ESP,0x10
MOV EAX,0x1
JMP 0x00013d37
MOV EDI,dword ptr [ESP + 0x2c]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x00013ff7
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
PUSH ECX
ADD EBP,0x2
LEA EAX,[ESP + 0x28]
PUSH EAX
LEA EAX,[EBX + 0xffffcc94]
PUSH EAX
PUSH EBP
CALL 0x00012190
ADD ESP,0x10
SUB EAX,0x1
JNZ 0x00013fb1
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [ESP + 0x8]
CMP EAX,0x3
JA 0x00013fb1
MOV EDI,dword ptr [ESP + 0x14]
MOV dword ptr [EDI + 0x24],EAX
JMP 0x00013bf2
XOR EAX,EAX
JMP 0x00013d37
CALL 0x00012260
MOVZX ESI,byte ptr [EBP + 0x2]
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX]
MOV ECX,ESI
MOVSX ECX,CL
MOVZX EAX,word ptr [EAX + ECX*0x2]
TEST AH,0x4
JZ 0x00013e61
TEST AH,0x2
JZ 0x00013e56
MOV ECX,ESI
CMP CL,0x66
JLE 0x00013e56
ADD EBP,0x2
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xffffbf04]
PUSH EBP
PUSH EAX
CALL 0x000120c0
ADD ESP,0x10
MOV EAX,0x1
JMP 0x00013d37
TEST AH,0x1
JZ 0x00013e61
MOV EAX,ESI
CMP AL,0x46
JG 0x00013e37
ADD EBP,0x2
MOV dword ptr [ESP + 0x8],EDX
PUSH EAX
PUSH EAX
PUSH 0x2c
PUSH EBP
CALL 0x00012130
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x00013f7d
LEA EAX,[ESP + 0x28]
MOV dword ptr [ESP + 0x8],EDX
PUSH EAX
LEA EAX,[ESP + 0x28]
PUSH EAX
LEA EAX,[EBX + 0xffffcc91]
PUSH EAX
PUSH EBP
CALL 0x00012190
ADD ESP,0x10
CMP EAX,0x2
JNZ 0x00013fcd
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x8]
CMP EAX,0xff
JA 0x00013fdb
MOV EDI,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x24]
MOV dword ptr [EDI + 0x2c],EAX
MOV dword ptr [EDI + 0x28],ECX
MOV byte ptr [EDI + 0x8],0x1
JMP 0x00013bf2
PUSH EDX
PUSH EBP
PUSH EAX
LEA EAX,[EBX + 0xffffbfec]
JMP 0x00013d18
PUSH EAX
ADD EBP,0x2
LEA EAX,[ESP + 0x24]
PUSH EAX
LEA EAX,[EBX + 0xffffcc8e]
PUSH EAX
PUSH EBP
CALL 0x00012190
ADD ESP,0x10
SUB EAX,0x1
JNZ 0x00013fbf
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x8]
CMP EAX,0xffff
JA 0x00013fbf
MOV EDI,dword ptr [ESP + 0x14]
MOV dword ptr [EDI + 0x18],EAX
JMP 0x00013bf2
PUSH EDI
ADD EBP,0x5
LEA EAX,[ESP + 0x28]
PUSH EAX
LEA EAX,[EBX + 0xffffcc94]
PUSH EAX
PUSH EBP
CALL 0x00012190
ADD ESP,0x10
SUB EAX,0x1
JNZ 0x00013f6f
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [ESP + 0x8]
CMP EAX,0xff
JA 0x00013f6f
MOV EDI,dword ptr [ESP + 0x14]
CMP dword ptr [EDI + 0x28],-0x1
MOV dword ptr [EDI + 0x2c],EAX
MOV byte ptr [EDI + 0x8],0x1
JNZ 0x00013bf2
MOV dword ptr [EDI + 0x28],0x0
JMP 0x00013bf2
SUB ESP,0xc
LEA EAX,[EBX + 0xffffbfc4]
JMP 0x00013d18
PUSH EAX
LEA EAX,[ESP + 0x28]
PUSH EAX
LEA EAX,[EBX + 0xffffcc94]
PUSH EAX
PUSH EBP
CALL 0x00012190
ADD ESP,0x10
SUB EAX,0x1
JNZ 0x00013fe9
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [ESP + 0x8]
CMP EAX,0x3f
JA 0x00013fe9
MOV EDI,dword ptr [ESP + 0x14]
MOV dword ptr [EDI + 0x28],EAX
JMP 0x00013bf2
SUB ESP,0xc
LEA EAX,[EBX + 0xffffbec0]
JMP 0x00013d18
SUB ESP,0xc
LEA EAX,[EBX + 0xffffbee4]
JMP 0x00013d18
SUB ESP,0xc
LEA EAX,[EBX + 0xffffbf8c]
JMP 0x00013d18
SUB ESP,0xc
LEA EAX,[EBX + 0xffffbf60]
JMP 0x00013d18
SUB ESP,0xc
LEA EAX,[EBX + 0xffffbf38]
JMP 0x00013d18
CALL 0x00014fb0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_00013b90(undefined1 *param_1,uint *param_2,int param_3)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  ushort **ppuVar7;\n  uint *puVar8;\n  uint *extraout_ECX;\n  uint *puVar9;\n  uint *__s2;\n  byte *pbVar10;\n  uint *puVar11;\n  int in_GS_OFFSET;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar12;\n  \n  bVar15 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }\n  uVar6 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00014fb0();\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_00013b90(undefined1 *param_1,uint *param_2,int param_3)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  ushort **ppuVar7;\n  uint *puVar8;\n  uint *extraout_ECX;\n  uint *puVar9;\n  uint *__s2;\n  byte *pbVar10;\n  uint *puVar11;\n  int in_GS_OFFSET;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar12;\n  \n  bVar15 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }\n  uVar6 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00014fb0();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00013b90(undefined1 *param_1,uint *param_2,int param_3)" identifier (parameter_list "(undefined1 *param_1,uint *param_2,int param_3)" ( (parameter_declaration "undefined1 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  ushort **ppuVar7;\n  uint *puVar8;\n  uint *extraout_ECX;\n  uint *puVar9;\n  uint *__s2;\n  byte *pbVar10;\n  uint *puVar11;\n  int in_GS_OFFSET;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar12;\n  \n  bVar15 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }\n  uVar6 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00014fb0();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "ushort **ppuVar7;" type_identifier (pointer_declarator "**ppuVar7" * (pointer_declarator "*ppuVar7" * identifier)) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *__s2;" type_identifier (pointer_declarator "*__s2" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x13b99;" (assignment_expression "uStack_14 = 0x13b99" 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 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }" if (parenthesized_expression "(1 < (int)param_2)" ( (binary_expression "1 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }" { (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);" do (compound_statement "{\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    }" { (expression_statement "puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);" (assignment_expression "puVar12 = *(uint **)(param_3 + (int)puVar9 * 4)" identifier = (pointer_expression "*(uint **)(param_3 + (int)puVar9 * 4)" * (cast_expression "(uint **)(param_3 + (int)puVar9 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + (int)puVar9 * 4)" ( (binary_expression "param_3 + (int)puVar9 * 4" identifier + (binary_expression "(int)puVar9 * 4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "sVar3 = strlen((char *)puVar12);" (assignment_expression "sVar3 = strlen((char *)puVar12)" identifier = (call_expression "strlen((char *)puVar12)" identifier (argument_list "((char *)puVar12)" ( (cast_expression "(char *)puVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }" if (parenthesized_expression "(sVar3 != 0)" ( (binary_expression "sVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }" { (if_statement "if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }" if (parenthesized_expression "((byte)*puVar12 == 0x2d)" ( (binary_expression "(byte)*puVar12 == 0x2d" (binary_expression "(byte)*puVar12" (parenthesized_expression "(byte)" ( identifier )) * identifier) == number_literal) )) (compound_statement "{\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }" { (expression_statement "__s2 = (uint *)((int)puVar12 + 1);" (assignment_expression "__s2 = (uint *)((int)puVar12 + 1)" identifier = (cast_expression "(uint *)((int)puVar12 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 1)" ( (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar4 = sVar3 - 1;" (assignment_expression "iVar4 = sVar3 - 1" identifier = (binary_expression "sVar3 - 1" identifier - number_literal)) ;) (if_statement "if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }" { (expression_statement "bVar1 = *(byte *)__s2;" (assignment_expression "bVar1 = *(byte *)__s2" identifier = (pointer_expression "*(byte *)__s2" * (cast_expression "(byte *)__s2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (while_statement "while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }" { (expression_statement "bVar1 = bVar1 - 0x36;" (assignment_expression "bVar1 = bVar1 - 0x36" identifier = (binary_expression "bVar1 - 0x36" identifier - number_literal)) ;) (expression_statement "bVar14 = bVar1 == 0x40;" (assignment_expression "bVar14 = bVar1 == 0x40" identifier = (binary_expression "bVar1 == 0x40" identifier == number_literal)) ;) (expression_statement "bVar13 = bVar1 < 0x40;" (assignment_expression "bVar13 = bVar1 < 0x40" identifier = (binary_expression "bVar1 < 0x40" identifier < number_literal)) ;) (if_statement "if (0x40 < bVar1) break;" if (parenthesized_expression "(0x40 < bVar1)" ( (binary_expression "0x40 < bVar1" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);" (assignment_expression "bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" identifier = (binary_expression "0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" number_literal < (pointer_expression "*(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" * (cast_expression "(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000185d0 + (uint)bVar1 * 4)" ( (binary_expression "&DAT_000185d0 + (uint)bVar1 * 4" (pointer_expression "&DAT_000185d0" & identifier) + (binary_expression "(uint)bVar1 * 4" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))))) ;) (expression_statement "bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;" (assignment_expression "bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4" identifier = (binary_expression "*(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4" (pointer_expression "*(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" * (cast_expression "(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000185d0 + (uint)bVar1 * 4)" ( (binary_expression "&DAT_000185d0 + (uint)bVar1 * 4" (pointer_expression "&DAT_000185d0" & identifier) + (binary_expression "(uint)bVar1 * 4" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) == number_literal)) ;) (switch_statement "switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }" switch (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }" { (case_statement "case 0:\n                param_1[6] = 1;\n                break;" case number_literal : (expression_statement "param_1[6] = 1;" (assignment_expression "param_1[6] = 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto LAB_00013c6c;" default : (goto_statement "goto LAB_00013c6c;" goto statement_identifier ;)) (case_statement "case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;" case number_literal : (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 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;" case number_literal : (expression_statement "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;" (assignment_expression "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2" (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) + 2" (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 "case 0xe:\n                param_1[1] = 1;\n                break;" case number_literal : (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:" case number_literal :) (case_statement "case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;" case number_literal : (expression_statement "*(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;" (assignment_expression "*(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x14) + 2" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x16:\n                param_1[5] = 1;\n                break;" case number_literal : (expression_statement "param_1[5] = 1;" (assignment_expression "param_1[5] = 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;" case number_literal : (expression_statement "param_1[9] = 1;" (assignment_expression "param_1[9] = 1" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00013d37;" goto statement_identifier ;)) (case_statement "case 0x19:\n                break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0x20:\n                param_1[0xb] = 1;\n                break;" case number_literal : (expression_statement "param_1[0xb] = 1;" (assignment_expression "param_1[0xb] = 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;" case number_literal : (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 "case 0x2e:\n                *param_1 = 1;\n                break;" case number_literal : (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x2f:\n                param_1[2] = 1;\n                break;" case number_literal : (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 0x30:\n                param_1[3] = 1;\n                break;" case number_literal : (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 0x36:\n                param_1[4] = 1;\n                break;" case number_literal : (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;" case number_literal : (expression_statement "*(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;" (assignment_expression "*(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x1c) + 2" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;" case number_literal : (expression_statement "param_1[10] = 1;" (assignment_expression "param_1[10] = 1" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1" (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) )))) = (binary_expression "*(int *)(param_1 + 0x20) + 1" (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) )))) + number_literal)) ;)) })) (expression_statement "__s2 = (uint *)((int)__s2 + 1);" (assignment_expression "__s2 = (uint *)((int)__s2 + 1)" identifier = (cast_expression "(uint *)((int)__s2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 1)" ( (binary_expression "(int)__s2 + 1" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (if_statement "if (iVar4 == 0) goto LAB_00013bf2;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)__s2;" (assignment_expression "bVar1 = *(byte *)__s2" identifier = (pointer_expression "*(byte *)__s2" * (cast_expression "(byte *)__s2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (labeled_statement "LAB_00013c6c:\n            puVar8 = (uint *)0x2;" statement_identifier : (expression_statement "puVar8 = (uint *)0x2;" (assignment_expression "puVar8 = (uint *)0x2" identifier = (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar10 = &DAT_00017bd4;" (assignment_expression "pbVar10 = &DAT_00017bd4" identifier = (pointer_expression "&DAT_00017bd4" & identifier)) ;) (expression_statement "puVar12 = __s2;" (assignment_expression "puVar12 = __s2" identifier = identifier) ;) (do_statement "do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);" do (compound_statement "{\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            }" { (expression_statement "puVar11 = puVar12;" (assignment_expression "puVar11 = puVar12" identifier = identifier) ;) (if_statement "if (puVar8 == (uint *)0x0) break;" if (parenthesized_expression "(puVar8 == (uint *)0x0)" ( (binary_expression "puVar8 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar8 = (uint *)((int)puVar8 + -1);" (assignment_expression "puVar8 = (uint *)((int)puVar8 + -1)" identifier = (cast_expression "(uint *)((int)puVar8 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + -1)" ( (binary_expression "(int)puVar8 + -1" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);" (assignment_expression "puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar12 + (uint)bVar15 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + (uint)bVar15 * -2 + 1)" ( (binary_expression "(int)puVar12 + (uint)bVar15 * -2 + 1" (binary_expression "(int)puVar12 + (uint)bVar15 * -2" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "bVar13 = *pbVar10 < (byte)*puVar12;" (assignment_expression "bVar13 = *pbVar10 < (byte)*puVar12" identifier = (binary_expression "*pbVar10 < (byte)*puVar12" (pointer_expression "*pbVar10" * identifier) < (binary_expression "(byte)*puVar12" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar14 = *pbVar10 == (byte)*puVar12;" (assignment_expression "bVar14 = *pbVar10 == (byte)*puVar12" identifier = (binary_expression "*pbVar10 == (byte)*puVar12" (pointer_expression "*pbVar10" * identifier) == (binary_expression "(byte)*puVar12" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "((!bVar13 && !bVar14) == bVar13)" ( (binary_expression "(!bVar13 && !bVar14) == bVar13" (parenthesized_expression "(!bVar13 && !bVar14)" ( (binary_expression "!bVar13 && !bVar14" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (compound_statement "{\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }" { (expression_statement "pbVar10 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 2)" identifier = (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" identifier = (cast_expression "(uint *)&DAT_00017be0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017be0" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8)" identifier = (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8)" identifier (argument_list "(pbVar10,&DAT_00017be0,puVar12,puVar8)" ( identifier , (pointer_expression "&DAT_00017be0" & identifier) , identifier , identifier )))) ;) (if_statement "if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }" if (parenthesized_expression "((iVar4 == 1) && (local_28 < 4))" ( (binary_expression "(iVar4 == 1) && (local_28 < 4)" (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_28 < 4)" ( (binary_expression "local_28 < 4" identifier < number_literal) ))) )) (compound_statement "{\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }" { (expression_statement "*(uint *)(param_1 + 0x24) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x24) = local_28" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad page control after \'c=\' option\n";" (assignment_expression "pcVar5 = "Bad page control after \'c=\' option\n"" identifier = (string_literal ""Bad page control after \'c=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }) (else_clause "else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }" { (expression_statement "puVar8 = (uint *)strncmp("m=",(char *)__s2,2);" (assignment_expression "puVar8 = (uint *)strncmp("m=",(char *)__s2,2)" identifier = (cast_expression "(uint *)strncmp("m=",(char *)__s2,2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strncmp("m=",(char *)__s2,2)" identifier (argument_list "("m=",(char *)__s2,2)" ( (string_literal ""m="" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }" if (parenthesized_expression "(puVar8 == (uint *)0x0)" ( (binary_expression "puVar8 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }" { (expression_statement "pbVar10 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 2)" identifier = (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar12 = &local_2c;" (assignment_expression "puVar12 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017bda;" (assignment_expression "__s2 = (uint *)&DAT_00017bda" identifier = (cast_expression "(uint *)&DAT_00017bda" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017bda" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0)" identifier = (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0)" identifier (argument_list "(pbVar10,&DAT_00017bda,puVar12,0)" ( identifier , (pointer_expression "&DAT_00017bda" & identifier) , identifier , number_literal )))) ;) (if_statement "if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }" if (parenthesized_expression "((iVar4 == 1) && (local_2c < 0x10000))" ( (binary_expression "(iVar4 == 1) && (local_2c < 0x10000)" (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_2c < 0x10000)" ( (binary_expression "local_2c < 0x10000" identifier < number_literal) ))) )) (compound_statement "{\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }" { (expression_statement "*(uint *)(param_1 + 0x18) = local_2c;" (assignment_expression "*(uint *)(param_1 + 0x18) = local_2c" (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad argument after \'m=\' option\n";" (assignment_expression "pcVar5 = "Bad argument after \'m=\' option\n"" identifier = (string_literal ""Bad argument after \'m=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }) (else_clause "else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }" else (compound_statement "{\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }" { (expression_statement "iVar4 = strncmp("p=",(char *)__s2,2);" (assignment_expression "iVar4 = strncmp("p=",(char *)__s2,2)" identifier = (call_expression "strncmp("p=",(char *)__s2,2)" identifier (argument_list "("p=",(char *)__s2,2)" ( (string_literal ""p="" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }" { (expression_statement "iVar4 = strncmp("subp=",(char *)__s2,5);" (assignment_expression "iVar4 = strncmp("subp=",(char *)__s2,5)" identifier = (call_expression "strncmp("subp=",(char *)__s2,5)" identifier (argument_list "("subp=",(char *)__s2,5)" ( (string_literal ""subp="" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }" { (expression_statement "pbVar10 = (byte *)((int)__s2 + 5);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 5)" identifier = (cast_expression "(byte *)((int)__s2 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 5)" ( (binary_expression "(int)__s2 + 5" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" identifier = (cast_expression "(uint *)&DAT_00017be0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017be0" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11)" identifier = (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11)" identifier (argument_list "(pbVar10,&DAT_00017be0,puVar12,puVar11)" ( identifier , (pointer_expression "&DAT_00017be0" & identifier) , identifier , identifier )))) ;) (if_statement "if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }" if (parenthesized_expression "((iVar4 != 1) || (0xff < local_28))" ( (binary_expression "(iVar4 != 1) || (0xff < local_28)" (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) || (parenthesized_expression "(0xff < local_28)" ( (binary_expression "0xff < local_28" number_literal < identifier) ))) )) (compound_statement "{\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }" { (expression_statement "pcVar5 = "Bad sub page code after \'subp=\' option\n";" (assignment_expression "pcVar5 = "Bad sub page code after \'subp=\' option\n"" identifier = (string_literal ""Bad sub page code after \'subp=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar11;" (assignment_expression "puVar9 = puVar11" identifier = identifier) ;) (goto_statement "goto LAB_00013d18;" goto statement_identifier ;) })) (expression_statement "*(uint *)(param_1 + 0x2c) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x2c) = local_28" (pointer_expression "*(uint *)(param_1 + 0x2c)" * (cast_expression "(uint *)(param_1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[8] = 1;" (assignment_expression "param_1[8] = 1" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }" if (parenthesized_expression "(*(int *)(param_1 + 0x28) == -1)" ( (binary_expression "*(int *)(param_1 + 0x28) == -1" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }" { (expression_statement "*(undefined4 *)(param_1 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" else (compound_statement "{\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" { (expression_statement "iVar4 = strncmp("-old",(char *)__s2,4);" (assignment_expression "iVar4 = strncmp("-old",(char *)__s2,4)" identifier = (call_expression "strncmp("-old",(char *)__s2,4)" identifier (argument_list "("-old",(char *)__s2,4)" ( (string_literal ""-old"" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }" { (expression_statement "pcVar5 = "Unrecognized option: %s\n";" (assignment_expression "pcVar5 = "Unrecognized option: %s\n"" identifier = (string_literal ""Unrecognized option: %s\n"" " string_content escape_sequence ")) ;) (expression_statement "puVar12 = extraout_ECX;" (assignment_expression "puVar12 = extraout_ECX" identifier = identifier) ;) (expression_statement "puVar9 = extraout_ECX;" (assignment_expression "puVar9 = extraout_ECX" identifier = identifier) ;) (goto_statement "goto LAB_00013d18;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "ppuVar7 = __ctype_b_loc();" (assignment_expression "ppuVar7 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar1 = *(byte *)((int)__s2 + 2);" (assignment_expression "bVar1 = *(byte *)((int)__s2 + 2)" identifier = (pointer_expression "*(byte *)((int)__s2 + 2)" * (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = (*ppuVar7)[(char)bVar1];" (assignment_expression "uVar2 = (*ppuVar7)[(char)bVar1]" identifier = (subscript_expression "(*ppuVar7)[(char)bVar1]" (parenthesized_expression "(*ppuVar7)" ( (pointer_expression "*ppuVar7" * identifier) )) [ (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) ])) ;) (if_statement "if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }" if (parenthesized_expression "(((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))))))" ( (binary_expression "((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))" (parenthesized_expression "((uVar2 & 0x400) != 0)" ( (binary_expression "(uVar2 & 0x400) != 0" (parenthesized_expression "(uVar2 & 0x400)" ( (binary_expression "uVar2 & 0x400" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))" ( (parenthesized_expression "(((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))))" ( (binary_expression "((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))" (parenthesized_expression "((uVar2 & 0x200) != 0 && ('f' < (char)bVar1))" ( (binary_expression "(uVar2 & 0x200) != 0 && ('f' < (char)bVar1)" (binary_expression "(uVar2 & 0x200) != 0" (parenthesized_expression "(uVar2 & 0x200)" ( (binary_expression "uVar2 & 0x200" identifier & number_literal) )) != number_literal) && (parenthesized_expression "('f' < (char)bVar1)" ( (binary_expression "'f' < (char)bVar1" (char_literal "'f'" ' character ') < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) )) || (parenthesized_expression "(((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))" ( (parenthesized_expression "((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))" ( (binary_expression "(uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)" (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(uVar2 = (ushort)bVar1, 'F' < (char)bVar1)" ( (comma_expression "uVar2 = (ushort)bVar1, 'F' < (char)bVar1" (assignment_expression "uVar2 = (ushort)bVar1" identifier = (cast_expression "(ushort)bVar1" ( (type_descriptor "ushort" type_identifier) ) identifier)) , (binary_expression "'F' < (char)bVar1" (char_literal "'F'" ' character ') < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ))) )) ))) )) ))) )) (compound_statement "{\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }" { (expression_statement "pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);" (call_expression "pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2)" identifier (argument_list "("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2)" ( (string_literal ""Old format doesn\'t accept mode page acronyms: %s\n"" " string_content escape_sequence string_content escape_sequence ") , (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00013d37;" goto statement_identifier ;) })) (expression_statement "pbVar10 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 2)" identifier = (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar8 = (uint *)strchr((char *)pbVar10,0x2c);" (assignment_expression "puVar8 = (uint *)strchr((char *)pbVar10,0x2c)" identifier = (cast_expression "(uint *)strchr((char *)pbVar10,0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)pbVar10,0x2c)" identifier (argument_list "((char *)pbVar10,0x2c)" ( (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }" if (parenthesized_expression "(puVar8 == (uint *)0x0)" ( (binary_expression "puVar8 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }" { (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" identifier = (cast_expression "(uint *)&DAT_00017be0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017be0" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0)" identifier = (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0)" identifier (argument_list "(pbVar10,&DAT_00017be0,puVar12,0)" ( identifier , (pointer_expression "&DAT_00017be0" & identifier) , identifier , number_literal )))) ;) (if_statement "if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }" if (parenthesized_expression "((iVar4 == 1) && (local_28 < 0x40))" ( (binary_expression "(iVar4 == 1) && (local_28 < 0x40)" (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_28 < 0x40)" ( (binary_expression "local_28 < 0x40" identifier < number_literal) ))) )) (compound_statement "{\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }" { (expression_statement "*(uint *)(param_1 + 0x28) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x28) = local_28" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad page code value after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad page code value after \'p=\' option\n"" identifier = (string_literal ""Bad page code value after \'p=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }) (else_clause "else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }" else (compound_statement "{\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }" { (expression_statement "puVar8 = &local_24;" (assignment_expression "puVar8 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017bdd;" (assignment_expression "__s2 = (uint *)&DAT_00017bdd" identifier = (cast_expression "(uint *)&DAT_00017bdd" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017bdd" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8)" identifier = (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8)" identifier (argument_list "(pbVar10,&DAT_00017bdd,puVar12,puVar8)" ( identifier , (pointer_expression "&DAT_00017bdd" & identifier) , identifier , identifier )))) ;) (if_statement "if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" { (if_statement "if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }" if (parenthesized_expression "(local_24 < 0x100)" ( (binary_expression "local_24 < 0x100" identifier < number_literal) )) (compound_statement "{\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }" { (expression_statement "*(uint *)(param_1 + 0x2c) = local_24;" (assignment_expression "*(uint *)(param_1 + 0x2c) = local_24" (pointer_expression "*(uint *)(param_1 + 0x2c)" * (cast_expression "(uint *)(param_1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x28) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x28) = local_28" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[8] = 1;" (assignment_expression "param_1[8] = 1" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad subpage code value after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad subpage code value after \'p=\' option\n"" identifier = (string_literal ""Bad subpage code value after \'p=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }) (else_clause "else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" else (compound_statement "{\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" { (expression_statement "pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n"" identifier = (string_literal ""Bad page code, subpage code sequence after \'p=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }))) }))) }))) }))) (labeled_statement "LAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);" statement_identifier : (expression_statement "pr2serr(pcVar5,__s2,puVar12,puVar9);" (call_expression "pr2serr(pcVar5,__s2,puVar12,puVar9)" identifier (argument_list "(pcVar5,__s2,puVar12,puVar9)" ( identifier , identifier , identifier , identifier ))) ;)) (expression_statement "FUN_00013b60();" (call_expression "FUN_00013b60()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00013d37;" goto statement_identifier ;) })) }) (else_clause "else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }" else (compound_statement "{\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }" { (expression_statement "__s2 = *(uint **)(param_1 + 0x30);" (assignment_expression "__s2 = *(uint **)(param_1 + 0x30)" identifier = (pointer_expression "*(uint **)(param_1 + 0x30)" * (cast_expression "(uint **)(param_1 + 0x30)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }" if (parenthesized_expression "(__s2 != (uint *)0x0)" ( (binary_expression "__s2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }" { (expression_statement "pcVar5 = "too many arguments, got: %s, not expecting: %s\n";" (assignment_expression "pcVar5 = "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 ")) ;) (goto_statement "goto LAB_00013d18;" goto statement_identifier ;) })) (expression_statement "*(uint **)(param_1 + 0x30) = puVar12;" (assignment_expression "*(uint **)(param_1 + 0x30) = puVar12" (pointer_expression "*(uint **)(param_1 + 0x30)" * (cast_expression "(uint **)(param_1 + 0x30)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) })) (labeled_statement "LAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);" statement_identifier : (expression_statement "puVar9 = (uint *)((int)puVar9 + 1);" (assignment_expression "puVar9 = (uint *)((int)puVar9 + 1)" identifier = (cast_expression "(uint *)((int)puVar9 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 1)" ( (binary_expression "(int)puVar9 + 1" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "(param_2 != puVar9)" ( (binary_expression "param_2 != puVar9" identifier != identifier) )) ;) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) }))) comment (expression_statement "FUN_00014fb0();" (call_expression "FUN_00014fb0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 old_parse_cmd_line(opts_t *op,int argc,char **argv)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  ushort **ppuVar6;\n  uint *puVar7;\n  uint *extraout_ECX;\n  uint *puVar8;\n  uint *__s2;\n  byte *pbVar9;\n  uint *puVar10;\n  int in_GS_OFFSET;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  int n;\n  uint u;\n  uint uu;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar11;\n  \n  bVar14 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < argc) {\n    puVar8 = (uint *)0x1;\n    do {\n      puVar11 = (uint *)argv[(int)puVar8];\n      sVar3 = strlen((char *)puVar11);\n      if (sVar3 != 0) {\n        if ((byte)*puVar11 == 0x2d) {\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }\n      }\nLAB_00013bf2:\n      puVar8 = (uint *)((int)puVar8 + 1);\n    } while ((uint *)argc != puVar8);\n  }\n  iVar4 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment (function_definition "int __regparm3 old_parse_cmd_line(opts_t *op,int argc,char **argv)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  ushort **ppuVar6;\n  uint *puVar7;\n  uint *extraout_ECX;\n  uint *puVar8;\n  uint *__s2;\n  byte *pbVar9;\n  uint *puVar10;\n  int in_GS_OFFSET;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  int n;\n  uint u;\n  uint uu;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar11;\n  \n  bVar14 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < argc) {\n    puVar8 = (uint *)0x1;\n    do {\n      puVar11 = (uint *)argv[(int)puVar8];\n      sVar3 = strlen((char *)puVar11);\n      if (sVar3 != 0) {\n        if ((byte)*puVar11 == 0x2d) {\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }\n      }\nLAB_00013bf2:\n      puVar8 = (uint *)((int)puVar8 + 1);\n    } while ((uint *)argc != puVar8);\n  }\n  iVar4 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\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  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  ushort **ppuVar6;\n  uint *puVar7;\n  uint *extraout_ECX;\n  uint *puVar8;\n  uint *__s2;\n  byte *pbVar9;\n  uint *puVar10;\n  int in_GS_OFFSET;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  int n;\n  uint u;\n  uint uu;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar11;\n  \n  bVar14 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < argc) {\n    puVar8 = (uint *)0x1;\n    do {\n      puVar11 = (uint *)argv[(int)puVar8];\n      sVar3 = strlen((char *)puVar11);\n      if (sVar3 != 0) {\n        if ((byte)*puVar11 == 0x2d) {\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }\n      }\nLAB_00013bf2:\n      puVar8 = (uint *)((int)puVar8 + 1);\n    } while ((uint *)argc != puVar8);\n  }\n  iVar4 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "ushort **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint *__s2;" type_identifier (pointer_declarator "*__s2" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "int n;" primitive_type identifier ;) (declaration "uint u;" type_identifier identifier ;) (declaration "uint uu;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x13b99;" (assignment_expression "uStack_14 = 0x13b99" 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    puVar8 = (uint *)0x1;\n    do {\n      puVar11 = (uint *)argv[(int)puVar8];\n      sVar3 = strlen((char *)puVar11);\n      if (sVar3 != 0) {\n        if ((byte)*puVar11 == 0x2d) {\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }\n      }\nLAB_00013bf2:\n      puVar8 = (uint *)((int)puVar8 + 1);\n    } while ((uint *)argc != puVar8);\n  }" if (parenthesized_expression "(1 < argc)" ( (binary_expression "1 < argc" number_literal < identifier) )) (compound_statement "{\n    puVar8 = (uint *)0x1;\n    do {\n      puVar11 = (uint *)argv[(int)puVar8];\n      sVar3 = strlen((char *)puVar11);\n      if (sVar3 != 0) {\n        if ((byte)*puVar11 == 0x2d) {\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }\n      }\nLAB_00013bf2:\n      puVar8 = (uint *)((int)puVar8 + 1);\n    } while ((uint *)argc != puVar8);\n  }" { (expression_statement "puVar8 = (uint *)0x1;" (assignment_expression "puVar8 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      puVar11 = (uint *)argv[(int)puVar8];\n      sVar3 = strlen((char *)puVar11);\n      if (sVar3 != 0) {\n        if ((byte)*puVar11 == 0x2d) {\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }\n      }\nLAB_00013bf2:\n      puVar8 = (uint *)((int)puVar8 + 1);\n    } while ((uint *)argc != puVar8);" do (compound_statement "{\n      puVar11 = (uint *)argv[(int)puVar8];\n      sVar3 = strlen((char *)puVar11);\n      if (sVar3 != 0) {\n        if ((byte)*puVar11 == 0x2d) {\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }\n      }\nLAB_00013bf2:\n      puVar8 = (uint *)((int)puVar8 + 1);\n    }" { (expression_statement "puVar11 = (uint *)argv[(int)puVar8];" (assignment_expression "puVar11 = (uint *)argv[(int)puVar8]" identifier = (cast_expression "(uint *)argv[(int)puVar8]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "argv[(int)puVar8]" identifier [ (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "sVar3 = strlen((char *)puVar11);" (assignment_expression "sVar3 = strlen((char *)puVar11)" identifier = (call_expression "strlen((char *)puVar11)" identifier (argument_list "((char *)puVar11)" ( (cast_expression "(char *)puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (sVar3 != 0) {\n        if ((byte)*puVar11 == 0x2d) {\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }\n      }" if (parenthesized_expression "(sVar3 != 0)" ( (binary_expression "sVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((byte)*puVar11 == 0x2d) {\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }\n      }" { (if_statement "if ((byte)*puVar11 == 0x2d) {\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }" if (parenthesized_expression "((byte)*puVar11 == 0x2d)" ( (binary_expression "(byte)*puVar11 == 0x2d" (binary_expression "(byte)*puVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier) == number_literal) )) (compound_statement "{\n          __s2 = (uint *)((int)puVar11 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }\n        }" { (expression_statement "__s2 = (uint *)((int)puVar11 + 1);" (assignment_expression "__s2 = (uint *)((int)puVar11 + 1)" identifier = (cast_expression "(uint *)((int)puVar11 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar4 = sVar3 - 1;" (assignment_expression "iVar4 = sVar3 - 1" identifier = (binary_expression "sVar3 - 1" identifier - number_literal)) ;) (if_statement "if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\n_L10:\n            puVar7 = (uint *)0x2;\n            pbVar9 = &DAT_00017bd4;\n            puVar11 = __s2;\n            do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);\n            usage_old();\n            iVar4 = 1;\n            goto LAB_00013d37;\n          }" { (expression_statement "bVar1 = *(byte *)__s2;" (assignment_expression "bVar1 = *(byte *)__s2" identifier = (pointer_expression "*(byte *)__s2" * (cast_expression "(byte *)__s2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (while_statement "while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              bVar1 = bVar1 - 0x36;\n              bVar13 = bVar1 == 0x40;\n              bVar12 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];\n              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }" { (expression_statement "bVar1 = bVar1 - 0x36;" (assignment_expression "bVar1 = bVar1 - 0x36" identifier = (binary_expression "bVar1 - 0x36" identifier - number_literal)) ;) (expression_statement "bVar13 = bVar1 == 0x40;" (assignment_expression "bVar13 = bVar1 == 0x40" identifier = (binary_expression "bVar1 == 0x40" identifier == number_literal)) ;) (expression_statement "bVar12 = bVar1 < 0x40;" (assignment_expression "bVar12 = bVar1 < 0x40" identifier = (binary_expression "bVar1 < 0x40" identifier < number_literal)) ;) (if_statement "if (0x40 < bVar1) break;" if (parenthesized_expression "(0x40 < bVar1)" ( (binary_expression "0x40 < bVar1" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1];" (assignment_expression "bVar12 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1]" identifier = (binary_expression "0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[bVar1]" number_literal < (subscript_expression "(&switchD_00013c4c::switchdataD_000185d0)[bVar1]" (parenthesized_expression "(&switchD_00013c4c::switchdataD_000185d0)" ( (ERROR "&switchD_00013c4c::" (pointer_expression "&switchD_00013c4c" & identifier) : :) identifier )) [ identifier ]))) ;) (expression_statement "bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4;" (assignment_expression "bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4" identifier = (binary_expression "(&switchD_00013c4c::switchdataD_000185d0)[bVar1] == 0xfffe50b4" (subscript_expression "(&switchD_00013c4c::switchdataD_000185d0)[bVar1]" (parenthesized_expression "(&switchD_00013c4c::switchdataD_000185d0)" ( (ERROR "&switchD_00013c4c::" (pointer_expression "&switchD_00013c4c" & identifier) : :) identifier )) [ identifier ]) == number_literal)) ;) (switch_statement "switch(bVar1) {\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }" switch (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n              case 0:\n                op->do_six = true;\n                break;\n              default:\n                goto _L10;\n              case 9:\n                op->do_help = op->do_help + 1;\n                break;\n              case 0xb:\n                op->do_all = op->do_all + 2;\n                break;\n              case 0xe:\n                op->do_dbout = true;\n                break;\n              case 0x12:\n              case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;\n              case 0x16:\n                op->do_llbaa = true;\n                break;\n              case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                op->version_given = true;\n                break;\n              case 0x2b:\n                op->do_all = op->do_all + 1;\n                break;\n              case 0x2e:\n                op->do_dbd = true;\n                break;\n              case 0x2f:\n                op->do_examine = true;\n                break;\n              case 0x30:\n                op->do_flexible = true;\n                break;\n              case 0x36:\n                op->do_list = true;\n                break;\n              case 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;\n              case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;\n              }" { (case_statement "case 0:\n                op->do_six = true;\n                break;" case number_literal : (expression_statement "op->do_six = true;" (assignment_expression "op->do_six = true" (field_expression "op->do_six" identifier -> field_identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto _L10;" default : (goto_statement "goto _L10;" goto statement_identifier ;)) (case_statement "case 9:\n                op->do_help = op->do_help + 1;\n                break;" case number_literal : (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 "case 0xb:\n                op->do_all = op->do_all + 2;\n                break;" case number_literal : (expression_statement "op->do_all = op->do_all + 2;" (assignment_expression "op->do_all = op->do_all + 2" (field_expression "op->do_all" identifier -> field_identifier) = (binary_expression "op->do_all + 2" (field_expression "op->do_all" identifier -> field_identifier) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n                op->do_dbout = true;\n                break;" case number_literal : (expression_statement "op->do_dbout = true;" (assignment_expression "op->do_dbout = true" (field_expression "op->do_dbout" identifier -> field_identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:" case number_literal :) (case_statement "case 0x32:\n                op->do_hex = op->do_hex + 2;\n                break;" case number_literal : (expression_statement "op->do_hex = op->do_hex + 2;" (assignment_expression "op->do_hex = op->do_hex + 2" (field_expression "op->do_hex" identifier -> field_identifier) = (binary_expression "op->do_hex + 2" (field_expression "op->do_hex" identifier -> field_identifier) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x16:\n                op->do_llbaa = true;\n                break;" case number_literal : (expression_statement "op->do_llbaa = true;" (assignment_expression "op->do_llbaa = true" (field_expression "op->do_llbaa" identifier -> field_identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x18:\n                op->opt_new = true;\n                iVar4 = 0;\n                goto LAB_00013d37;" case number_literal : (expression_statement "op->opt_new = true;" (assignment_expression "op->opt_new = true" (field_expression "op->opt_new" identifier -> field_identifier) = true) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00013d37;" goto statement_identifier ;)) (case_statement "case 0x19:\n                break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0x20:\n                op->version_given = true;\n                break;" case number_literal : (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 0x2b:\n                op->do_all = op->do_all + 1;\n                break;" case number_literal : (expression_statement "op->do_all = op->do_all + 1;" (assignment_expression "op->do_all = op->do_all + 1" (field_expression "op->do_all" identifier -> field_identifier) = (binary_expression "op->do_all + 1" (field_expression "op->do_all" identifier -> field_identifier) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x2e:\n                op->do_dbd = true;\n                break;" case number_literal : (expression_statement "op->do_dbd = true;" (assignment_expression "op->do_dbd = true" (field_expression "op->do_dbd" identifier -> field_identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x2f:\n                op->do_examine = true;\n                break;" case number_literal : (expression_statement "op->do_examine = true;" (assignment_expression "op->do_examine = true" (field_expression "op->do_examine" identifier -> field_identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x30:\n                op->do_flexible = true;\n                break;" case number_literal : (expression_statement "op->do_flexible = true;" (assignment_expression "op->do_flexible = true" (field_expression "op->do_flexible" identifier -> field_identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x36:\n                op->do_list = true;\n                break;" case number_literal : (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 0x3c:\n                op->do_raw = op->do_raw + 2;\n                break;" case number_literal : (expression_statement "op->do_raw = op->do_raw + 2;" (assignment_expression "op->do_raw = op->do_raw + 2" (field_expression "op->do_raw" identifier -> field_identifier) = (binary_expression "op->do_raw + 2" (field_expression "op->do_raw" identifier -> field_identifier) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x40:\n                op->verbose_given = true;\n                op->verbose = op->verbose + 1;" case number_literal : (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 "__s2 = (uint *)((int)__s2 + 1);" (assignment_expression "__s2 = (uint *)((int)__s2 + 1)" identifier = (cast_expression "(uint *)((int)__s2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 1)" ( (binary_expression "(int)__s2 + 1" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (if_statement "if (iVar4 == 0) goto LAB_00013bf2;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)__s2;" (assignment_expression "bVar1 = *(byte *)__s2" identifier = (pointer_expression "*(byte *)__s2" * (cast_expression "(byte *)__s2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (labeled_statement "_L10:\n            puVar7 = (uint *)0x2;" statement_identifier : (expression_statement "puVar7 = (uint *)0x2;" (assignment_expression "puVar7 = (uint *)0x2" identifier = (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar9 = &DAT_00017bd4;" (assignment_expression "pbVar9 = &DAT_00017bd4" identifier = (pointer_expression "&DAT_00017bd4" & identifier)) ;) (expression_statement "puVar11 = __s2;" (assignment_expression "puVar11 = __s2" identifier = identifier) ;) (do_statement "do {\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            } while (bVar13);" do (compound_statement "{\n              puVar10 = puVar11;\n              if (puVar7 == (uint *)0x0) break;\n              puVar7 = (uint *)((int)puVar7 + -1);\n              puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);\n              bVar12 = *pbVar9 < (byte)*puVar11;\n              bVar13 = *pbVar9 == (byte)*puVar11;\n              pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n              puVar11 = puVar10;\n            }" { (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" identifier = identifier) ;) (if_statement "if (puVar7 == (uint *)0x0) break;" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar7 = (uint *)((int)puVar7 + -1);" (assignment_expression "puVar7 = (uint *)((int)puVar7 + -1)" identifier = (cast_expression "(uint *)((int)puVar7 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + -1)" ( (binary_expression "(int)puVar7 + -1" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1);" (assignment_expression "puVar10 = (uint *)((int)puVar11 + (uint)bVar14 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar11 + (uint)bVar14 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + (uint)bVar14 * -2 + 1)" ( (binary_expression "(int)puVar11 + (uint)bVar14 * -2 + 1" (binary_expression "(int)puVar11 + (uint)bVar14 * -2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "bVar12 = *pbVar9 < (byte)*puVar11;" (assignment_expression "bVar12 = *pbVar9 < (byte)*puVar11" identifier = (binary_expression "*pbVar9 < (byte)*puVar11" (pointer_expression "*pbVar9" * identifier) < (binary_expression "(byte)*puVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar13 = *pbVar9 == (byte)*puVar11;" (assignment_expression "bVar13 = *pbVar9 == (byte)*puVar11" identifier = (binary_expression "*pbVar9 == (byte)*puVar11" (pointer_expression "*pbVar9" * identifier) == (binary_expression "(byte)*puVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar13) == bVar12) {\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }\n            else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" ( (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (compound_statement "{\n              pbVar9 = (byte *)((int)__s2 + 2);\n              puVar11 = &u;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);\n              if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar8 = puVar7;\n            }" { (expression_statement "pbVar9 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar9 = (byte *)((int)__s2 + 2)" identifier = (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar11 = &u;" (assignment_expression "puVar11 = &u" identifier = (pointer_expression "&u" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" identifier = (cast_expression "(uint *)&DAT_00017be0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017be0" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7)" identifier = (call_expression "__isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar7)" identifier (argument_list "(pbVar9,&DAT_00017be0,puVar11,puVar7)" ( identifier , (pointer_expression "&DAT_00017be0" & identifier) , identifier , identifier )))) ;) (if_statement "if ((iVar4 == 1) && (u < 4)) {\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }" if (parenthesized_expression "((iVar4 == 1) && (u < 4))" ( (binary_expression "(iVar4 == 1) && (u < 4)" (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) && (parenthesized_expression "(u < 4)" ( (binary_expression "u < 4" identifier < number_literal) ))) )) (compound_statement "{\n                op->page_control = u;\n                goto LAB_00013bf2;\n              }" { (expression_statement "op->page_control = u;" (assignment_expression "op->page_control = u" (field_expression "op->page_control" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad page control after \'c=\' option\n";" (assignment_expression "pcVar5 = "Bad page control after \'c=\' option\n"" identifier = (string_literal ""Bad page control after \'c=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar8 = puVar7;" (assignment_expression "puVar8 = puVar7" identifier = identifier) ;) }) (else_clause "else {\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              puVar7 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }\n            }" { (expression_statement "puVar7 = (uint *)strncmp("m=",(char *)__s2,2);" (assignment_expression "puVar7 = (uint *)strncmp("m=",(char *)__s2,2)" identifier = (cast_expression "(uint *)strncmp("m=",(char *)__s2,2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strncmp("m=",(char *)__s2,2)" identifier (argument_list "("m=",(char *)__s2,2)" ( (string_literal ""m="" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (puVar7 == (uint *)0x0) {\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar11 = (uint *)&n;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);\n                if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar8 = puVar7;\n              }" { (expression_statement "pbVar9 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar9 = (byte *)((int)__s2 + 2)" identifier = (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar11 = (uint *)&n;" (assignment_expression "puVar11 = (uint *)&n" identifier = (cast_expression "(uint *)&n" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&n" & identifier))) ;) (expression_statement "__s2 = (uint *)&DAT_00017bda;" (assignment_expression "__s2 = (uint *)&DAT_00017bda" identifier = (cast_expression "(uint *)&DAT_00017bda" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017bda" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0)" identifier = (call_expression "__isoc99_sscanf(pbVar9,&DAT_00017bda,puVar11,0)" identifier (argument_list "(pbVar9,&DAT_00017bda,puVar11,0)" ( identifier , (pointer_expression "&DAT_00017bda" & identifier) , identifier , number_literal )))) ;) (if_statement "if ((iVar4 == 1) && ((uint)n < 0x10000)) {\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }" if (parenthesized_expression "((iVar4 == 1) && ((uint)n < 0x10000))" ( (binary_expression "(iVar4 == 1) && ((uint)n < 0x10000)" (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) && (parenthesized_expression "((uint)n < 0x10000)" ( (binary_expression "(uint)n < 0x10000" (cast_expression "(uint)n" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n                  op->maxlen = n;\n                  goto LAB_00013bf2;\n                }" { (expression_statement "op->maxlen = n;" (assignment_expression "op->maxlen = n" (field_expression "op->maxlen" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad argument after \'m=\' option\n";" (assignment_expression "pcVar5 = "Bad argument after \'m=\' option\n"" identifier = (string_literal ""Bad argument after \'m=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar8 = puVar7;" (assignment_expression "puVar8 = puVar7" identifier = identifier) ;) }) (else_clause "else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }" else (compound_statement "{\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar6 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar6)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar9 = (byte *)((int)__s2 + 2);\n                puVar7 = (uint *)strchr((char *)pbVar9,0x2c);\n                if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }\n              }" { (expression_statement "iVar4 = strncmp("p=",(char *)__s2,2);" (assignment_expression "iVar4 = strncmp("p=",(char *)__s2,2)" identifier = (call_expression "strncmp("p=",(char *)__s2,2)" identifier (argument_list "("p=",(char *)__s2,2)" ( (string_literal ""p="" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }" { (expression_statement "iVar4 = strncmp("subp=",(char *)__s2,5);" (assignment_expression "iVar4 = strncmp("subp=",(char *)__s2,5)" identifier = (call_expression "strncmp("subp=",(char *)__s2,5)" identifier (argument_list "("subp=",(char *)__s2,5)" ( (string_literal ""subp="" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    pbVar9 = (byte *)((int)__s2 + 5);\n                    puVar11 = &u;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);\n                    if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }\n                    op->subpg_code = u;\n                    op->subpg_code_given = true;\n                    if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }\n                  }" { (expression_statement "pbVar9 = (byte *)((int)__s2 + 5);" (assignment_expression "pbVar9 = (byte *)((int)__s2 + 5)" identifier = (cast_expression "(byte *)((int)__s2 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 5)" ( (binary_expression "(int)__s2 + 5" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar11 = &u;" (assignment_expression "puVar11 = &u" identifier = (pointer_expression "&u" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" identifier = (cast_expression "(uint *)&DAT_00017be0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017be0" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10)" identifier = (call_expression "__isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,puVar10)" identifier (argument_list "(pbVar9,&DAT_00017be0,puVar11,puVar10)" ( identifier , (pointer_expression "&DAT_00017be0" & identifier) , identifier , identifier )))) ;) (if_statement "if ((iVar4 != 1) || (0xff < u)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }" if (parenthesized_expression "((iVar4 != 1) || (0xff < u))" ( (binary_expression "(iVar4 != 1) || (0xff < u)" (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) || (parenthesized_expression "(0xff < u)" ( (binary_expression "0xff < u" number_literal < identifier) ))) )) (compound_statement "{\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar8 = puVar10;\n                      goto LAB_00013d18;\n                    }" { (expression_statement "pcVar5 = "Bad sub page code after \'subp=\' option\n";" (assignment_expression "pcVar5 = "Bad sub page code after \'subp=\' option\n"" identifier = (string_literal ""Bad sub page code after \'subp=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar8 = puVar10;" (assignment_expression "puVar8 = puVar10" identifier = identifier) ;) (goto_statement "goto LAB_00013d18;" goto statement_identifier ;) })) (expression_statement "op->subpg_code = u;" (assignment_expression "op->subpg_code = u" (field_expression "op->subpg_code" identifier -> field_identifier) = identifier) ;) (expression_statement "op->subpg_code_given = true;" (assignment_expression "op->subpg_code_given = true" (field_expression "op->subpg_code_given" identifier -> field_identifier) = true) ;) (if_statement "if (op->pg_code == -1) {\n                      op->pg_code = 0;\n                    }" if (parenthesized_expression "(op->pg_code == -1)" ( (binary_expression "op->pg_code == -1" (field_expression "op->pg_code" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                      op->pg_code = 0;\n                    }" { (expression_statement "op->pg_code = 0;" (assignment_expression "op->pg_code = 0" (field_expression "op->pg_code" identifier -> field_identifier) = number_literal) ;) })) }) (else_clause "else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" else (compound_statement "{\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" { (expression_statement "iVar4 = strncmp("-old",(char *)__s2,4);" (assignment_expression "iVar4 = strncmp("-old",(char *)__s2,4)" identifier = (call_expression "strncmp("-old",(char *)__s2,4)" identifier (argument_list "("-old",(char *)__s2,4)" ( (string_literal ""-old"" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar11 = extraout_ECX;\n                      puVar8 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }" { (expression_statement "pcVar5 = "Unrecognized option: %s\n";" (assignment_expression "pcVar5 = "Unrecognized option: %s\n"" identifier = (string_literal ""Unrecognized option: %s\n"" " string_content escape_sequence ")) ;) (expression_statement "puVar11 = extraout_ECX;" (assignment_expression "puVar11 = extraout_ECX" identifier = identifier) ;) (expression_statement "puVar8 = extraout_ECX;" (assignment_expression "puVar8 = extraout_ECX" identifier = identifier) ;) (goto_statement "goto LAB_00013d18;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar1 = *(byte *)((int)__s2 + 2);" (assignment_expression "bVar1 = *(byte *)((int)__s2 + 2)" identifier = (pointer_expression "*(byte *)((int)__s2 + 2)" * (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = (*ppuVar6)[(char)bVar1];" (assignment_expression "uVar2 = (*ppuVar6)[(char)bVar1]" identifier = (subscript_expression "(*ppuVar6)[(char)bVar1]" (parenthesized_expression "(*ppuVar6)" ( (pointer_expression "*ppuVar6" * identifier) )) [ (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) ])) ;) (if_statement "if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }" if (parenthesized_expression "(((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))))))" ( (binary_expression "((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))" (parenthesized_expression "((uVar2 & 0x400) != 0)" ( (binary_expression "(uVar2 & 0x400) != 0" (parenthesized_expression "(uVar2 & 0x400)" ( (binary_expression "uVar2 & 0x400" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))" ( (parenthesized_expression "(((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))))" ( (binary_expression "((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))" (parenthesized_expression "((uVar2 & 0x200) != 0 && ('f' < (char)bVar1))" ( (binary_expression "(uVar2 & 0x200) != 0 && ('f' < (char)bVar1)" (binary_expression "(uVar2 & 0x200) != 0" (parenthesized_expression "(uVar2 & 0x200)" ( (binary_expression "uVar2 & 0x200" identifier & number_literal) )) != number_literal) && (parenthesized_expression "('f' < (char)bVar1)" ( (binary_expression "'f' < (char)bVar1" (char_literal "'f'" ' character ') < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) )) || (parenthesized_expression "(((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))" ( (parenthesized_expression "((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))" ( (binary_expression "(uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)" (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(uVar2 = (ushort)bVar1, 'F' < (char)bVar1)" ( (comma_expression "uVar2 = (ushort)bVar1, 'F' < (char)bVar1" (assignment_expression "uVar2 = (ushort)bVar1" identifier = (cast_expression "(ushort)bVar1" ( (type_descriptor "ushort" type_identifier) ) identifier)) , (binary_expression "'F' < (char)bVar1" (char_literal "'F'" ' character ') < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ))) )) ))) )) ))) )) (compound_statement "{\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  iVar4 = 1;\n                  goto LAB_00013d37;\n                }" { (expression_statement "pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);" (call_expression "pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2)" identifier (argument_list "("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2)" ( (string_literal ""Old format doesn\'t accept mode page acronyms: %s\n"" " string_content escape_sequence string_content escape_sequence ") , (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00013d37;" goto statement_identifier ;) })) (expression_statement "pbVar9 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar9 = (byte *)((int)__s2 + 2)" identifier = (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar7 = (uint *)strchr((char *)pbVar9,0x2c);" (assignment_expression "puVar7 = (uint *)strchr((char *)pbVar9,0x2c)" identifier = (cast_expression "(uint *)strchr((char *)pbVar9,0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)pbVar9,0x2c)" identifier (argument_list "((char *)pbVar9,0x2c)" ( (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (puVar7 == (uint *)0x0) {\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }\n                else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);\n                  if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar8 = puVar7;\n                }" { (expression_statement "puVar11 = &u;" (assignment_expression "puVar11 = &u" identifier = (pointer_expression "&u" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" identifier = (cast_expression "(uint *)&DAT_00017be0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017be0" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0)" identifier = (call_expression "__isoc99_sscanf(pbVar9,&DAT_00017be0,puVar11,0)" identifier (argument_list "(pbVar9,&DAT_00017be0,puVar11,0)" ( identifier , (pointer_expression "&DAT_00017be0" & identifier) , identifier , number_literal )))) ;) (if_statement "if ((iVar4 == 1) && (u < 0x40)) {\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }" if (parenthesized_expression "((iVar4 == 1) && (u < 0x40))" ( (binary_expression "(iVar4 == 1) && (u < 0x40)" (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) && (parenthesized_expression "(u < 0x40)" ( (binary_expression "u < 0x40" identifier < number_literal) ))) )) (compound_statement "{\n                    op->pg_code = u;\n                    goto LAB_00013bf2;\n                  }" { (expression_statement "op->pg_code = u;" (assignment_expression "op->pg_code = u" (field_expression "op->pg_code" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad page code value after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad page code value after \'p=\' option\n"" identifier = (string_literal ""Bad page code value after \'p=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar8 = puVar7;" (assignment_expression "puVar8 = puVar7" identifier = identifier) ;) }) (else_clause "else {\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }" else (compound_statement "{\n                  puVar7 = &uu;\n                  puVar11 = &u;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);\n                  if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                }" { (expression_statement "puVar7 = &uu;" (assignment_expression "puVar7 = &uu" identifier = (pointer_expression "&uu" & identifier)) ;) (expression_statement "puVar11 = &u;" (assignment_expression "puVar11 = &u" identifier = (pointer_expression "&u" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017bdd;" (assignment_expression "__s2 = (uint *)&DAT_00017bdd" identifier = (cast_expression "(uint *)&DAT_00017bdd" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017bdd" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7)" identifier = (call_expression "__isoc99_sscanf(pbVar9,&DAT_00017bdd,puVar11,puVar7)" identifier (argument_list "(pbVar9,&DAT_00017bdd,puVar11,puVar7)" ( identifier , (pointer_expression "&DAT_00017bdd" & identifier) , identifier , identifier )))) ;) (if_statement "if (iVar4 == 2) {\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n                    if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }" { (if_statement "if (uu < 0x100) {\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }" if (parenthesized_expression "(uu < 0x100)" ( (binary_expression "uu < 0x100" identifier < number_literal) )) (compound_statement "{\n                      op->subpg_code = uu;\n                      op->pg_code = u;\n                      op->subpg_code_given = true;\n                      goto LAB_00013bf2;\n                    }" { (expression_statement "op->subpg_code = uu;" (assignment_expression "op->subpg_code = uu" (field_expression "op->subpg_code" identifier -> field_identifier) = identifier) ;) (expression_statement "op->pg_code = u;" (assignment_expression "op->pg_code = u" (field_expression "op->pg_code" identifier -> field_identifier) = identifier) ;) (expression_statement "op->subpg_code_given = true;" (assignment_expression "op->subpg_code_given = true" (field_expression "op->subpg_code_given" identifier -> field_identifier) = true) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad subpage code value after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad subpage code value after \'p=\' option\n"" identifier = (string_literal ""Bad subpage code value after \'p=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar8 = puVar7;" (assignment_expression "puVar8 = puVar7" identifier = identifier) ;) }) (else_clause "else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }" else (compound_statement "{\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar8 = puVar7;\n                  }" { (expression_statement "pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n"" identifier = (string_literal ""Bad page code, subpage code sequence after \'p=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar8 = puVar7;" (assignment_expression "puVar8 = puVar7" identifier = identifier) ;) }))) }))) }))) }))) (labeled_statement "LAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar11,puVar8);" statement_identifier : (expression_statement "pr2serr(pcVar5,__s2,puVar11,puVar8);" (call_expression "pr2serr(pcVar5,__s2,puVar11,puVar8)" identifier (argument_list "(pcVar5,__s2,puVar11,puVar8)" ( identifier , identifier , identifier , identifier ))) ;)) (expression_statement "usage_old();" (call_expression "usage_old()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00013d37;" goto statement_identifier ;) })) }) (else_clause "else {\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }" else (compound_statement "{\n          __s2 = (uint *)op->device_name;\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          op->device_name = (char *)puVar11;\n        }" { (expression_statement "__s2 = (uint *)op->device_name;" (assignment_expression "__s2 = (uint *)op->device_name" identifier = (cast_expression "(uint *)op->device_name" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "op->device_name" identifier -> field_identifier))) ;) (if_statement "if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }" if (parenthesized_expression "(__s2 != (uint *)0x0)" ( (binary_expression "__s2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }" { (expression_statement "pcVar5 = "too many arguments, got: %s, not expecting: %s\n";" (assignment_expression "pcVar5 = "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 ")) ;) (goto_statement "goto LAB_00013d18;" goto statement_identifier ;) })) (expression_statement "op->device_name = (char *)puVar11;" (assignment_expression "op->device_name = (char *)puVar11" (field_expression "op->device_name" identifier -> field_identifier) = (cast_expression "(char *)puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) })) (labeled_statement "LAB_00013bf2:\n      puVar8 = (uint *)((int)puVar8 + 1);" statement_identifier : (expression_statement "puVar8 = (uint *)((int)puVar8 + 1);" (assignment_expression "puVar8 = (uint *)((int)puVar8 + 1)" identifier = (cast_expression "(uint *)((int)puVar8 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 1)" ( (binary_expression "(int)puVar8 + 1" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((uint *)argc != puVar8)" ( (binary_expression "(uint *)argc != puVar8" (cast_expression "(uint *)argc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) })) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar4;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar4;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined4 __regparm3 FUN_00013b90(undefined1 *param_1,uint *param_2,int param_3)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  ushort **ppuVar7;\n  uint *puVar8;\n  uint *extraout_ECX;\n  uint *puVar9;\n  uint *__s2;\n  byte *pbVar10;\n  uint *puVar11;\n  int in_GS_OFFSET;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar12;\n  \n  bVar15 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }\n  uVar6 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }\n                    \n  FUN_00014fb0();\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00013b90(undefined1 *param_1,uint *param_2,int param_3)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  ushort **ppuVar7;\n  uint *puVar8;\n  uint *extraout_ECX;\n  uint *puVar9;\n  uint *__s2;\n  byte *pbVar10;\n  uint *puVar11;\n  int in_GS_OFFSET;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar12;\n  \n  bVar15 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }\n  uVar6 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }\n                    \n  FUN_00014fb0();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00013b90(undefined1 *param_1,uint *param_2,int param_3)" identifier (parameter_list "(undefined1 *param_1,uint *param_2,int param_3)" ( (parameter_declaration "undefined1 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  ushort **ppuVar7;\n  uint *puVar8;\n  uint *extraout_ECX;\n  uint *puVar9;\n  uint *__s2;\n  byte *pbVar10;\n  uint *puVar11;\n  int in_GS_OFFSET;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar12;\n  \n  bVar15 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }\n  uVar6 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }\n                    \n  FUN_00014fb0();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "ushort **ppuVar7;" type_identifier (pointer_declarator "**ppuVar7" * (pointer_declarator "*ppuVar7" * identifier)) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *__s2;" type_identifier (pointer_declarator "*__s2" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x13b99;" (assignment_expression "uStack_14 = 0x13b99" 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 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }" if (parenthesized_expression "(1 < (int)param_2)" ( (binary_expression "1 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }" { (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);" do (compound_statement "{\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    }" { (expression_statement "puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);" (assignment_expression "puVar12 = *(uint **)(param_3 + (int)puVar9 * 4)" identifier = (pointer_expression "*(uint **)(param_3 + (int)puVar9 * 4)" * (cast_expression "(uint **)(param_3 + (int)puVar9 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + (int)puVar9 * 4)" ( (binary_expression "param_3 + (int)puVar9 * 4" identifier + (binary_expression "(int)puVar9 * 4" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "sVar3 = strlen((char *)puVar12);" (assignment_expression "sVar3 = strlen((char *)puVar12)" identifier = (call_expression "strlen((char *)puVar12)" identifier (argument_list "((char *)puVar12)" ( (cast_expression "(char *)puVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }" if (parenthesized_expression "(sVar3 != 0)" ( (binary_expression "sVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }" { (if_statement "if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }" if (parenthesized_expression "((byte)*puVar12 == 0x2d)" ( (binary_expression "(byte)*puVar12 == 0x2d" (binary_expression "(byte)*puVar12" (parenthesized_expression "(byte)" ( identifier )) * identifier) == number_literal) )) (compound_statement "{\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }" { (expression_statement "__s2 = (uint *)((int)puVar12 + 1);" (assignment_expression "__s2 = (uint *)((int)puVar12 + 1)" identifier = (cast_expression "(uint *)((int)puVar12 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 1)" ( (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar4 = sVar3 - 1;" (assignment_expression "iVar4 = sVar3 - 1" identifier = (binary_expression "sVar3 - 1" identifier - number_literal)) ;) (if_statement "if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }" { (expression_statement "bVar1 = *(byte *)__s2;" (assignment_expression "bVar1 = *(byte *)__s2" identifier = (pointer_expression "*(byte *)__s2" * (cast_expression "(byte *)__s2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (while_statement "while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }" { (expression_statement "bVar1 = bVar1 - 0x36;" (assignment_expression "bVar1 = bVar1 - 0x36" identifier = (binary_expression "bVar1 - 0x36" identifier - number_literal)) ;) (expression_statement "bVar14 = bVar1 == 0x40;" (assignment_expression "bVar14 = bVar1 == 0x40" identifier = (binary_expression "bVar1 == 0x40" identifier == number_literal)) ;) (expression_statement "bVar13 = bVar1 < 0x40;" (assignment_expression "bVar13 = bVar1 < 0x40" identifier = (binary_expression "bVar1 < 0x40" identifier < number_literal)) ;) (if_statement "if (0x40 < bVar1) break;" if (parenthesized_expression "(0x40 < bVar1)" ( (binary_expression "0x40 < bVar1" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);" (assignment_expression "bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" identifier = (binary_expression "0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" number_literal < (pointer_expression "*(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" * (cast_expression "(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000185d0 + (uint)bVar1 * 4)" ( (binary_expression "&DAT_000185d0 + (uint)bVar1 * 4" (pointer_expression "&DAT_000185d0" & identifier) + (binary_expression "(uint)bVar1 * 4" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))))) ;) (expression_statement "bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;" (assignment_expression "bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4" identifier = (binary_expression "*(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4" (pointer_expression "*(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" * (cast_expression "(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000185d0 + (uint)bVar1 * 4)" ( (binary_expression "&DAT_000185d0 + (uint)bVar1 * 4" (pointer_expression "&DAT_000185d0" & identifier) + (binary_expression "(uint)bVar1 * 4" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) == number_literal)) ;) (switch_statement "switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }" switch (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }" { (case_statement "case 0:\n                param_1[6] = 1;\n                break;" case number_literal : (expression_statement "param_1[6] = 1;" (assignment_expression "param_1[6] = 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto LAB_00013c6c;" default : (goto_statement "goto LAB_00013c6c;" goto statement_identifier ;)) (case_statement "case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;" case number_literal : (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 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;" case number_literal : (expression_statement "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;" (assignment_expression "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2" (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) + 2" (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 "case 0xe:\n                param_1[1] = 1;\n                break;" case number_literal : (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:" case number_literal :) (case_statement "case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;" case number_literal : (expression_statement "*(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;" (assignment_expression "*(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x14) + 2" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x16:\n                param_1[5] = 1;\n                break;" case number_literal : (expression_statement "param_1[5] = 1;" (assignment_expression "param_1[5] = 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;" case number_literal : (expression_statement "param_1[9] = 1;" (assignment_expression "param_1[9] = 1" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00013d37;" goto statement_identifier ;)) (case_statement "case 0x19:\n                break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0x20:\n                param_1[0xb] = 1;\n                break;" case number_literal : (expression_statement "param_1[0xb] = 1;" (assignment_expression "param_1[0xb] = 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;" case number_literal : (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 "case 0x2e:\n                *param_1 = 1;\n                break;" case number_literal : (expression_statement "*param_1 = 1;" (assignment_expression "*param_1 = 1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x2f:\n                param_1[2] = 1;\n                break;" case number_literal : (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 0x30:\n                param_1[3] = 1;\n                break;" case number_literal : (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 0x36:\n                param_1[4] = 1;\n                break;" case number_literal : (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;" case number_literal : (expression_statement "*(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;" (assignment_expression "*(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x1c) + 2" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;" case number_literal : (expression_statement "param_1[10] = 1;" (assignment_expression "param_1[10] = 1" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1" (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) )))) = (binary_expression "*(int *)(param_1 + 0x20) + 1" (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) )))) + number_literal)) ;)) })) (expression_statement "__s2 = (uint *)((int)__s2 + 1);" (assignment_expression "__s2 = (uint *)((int)__s2 + 1)" identifier = (cast_expression "(uint *)((int)__s2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 1)" ( (binary_expression "(int)__s2 + 1" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (if_statement "if (iVar4 == 0) goto LAB_00013bf2;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)__s2;" (assignment_expression "bVar1 = *(byte *)__s2" identifier = (pointer_expression "*(byte *)__s2" * (cast_expression "(byte *)__s2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (labeled_statement "LAB_00013c6c:\n            puVar8 = (uint *)0x2;" statement_identifier : (expression_statement "puVar8 = (uint *)0x2;" (assignment_expression "puVar8 = (uint *)0x2" identifier = (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar10 = &DAT_00017bd4;" (assignment_expression "pbVar10 = &DAT_00017bd4" identifier = (pointer_expression "&DAT_00017bd4" & identifier)) ;) (expression_statement "puVar12 = __s2;" (assignment_expression "puVar12 = __s2" identifier = identifier) ;) (do_statement "do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);" do (compound_statement "{\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            }" { (expression_statement "puVar11 = puVar12;" (assignment_expression "puVar11 = puVar12" identifier = identifier) ;) (if_statement "if (puVar8 == (uint *)0x0) break;" if (parenthesized_expression "(puVar8 == (uint *)0x0)" ( (binary_expression "puVar8 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar8 = (uint *)((int)puVar8 + -1);" (assignment_expression "puVar8 = (uint *)((int)puVar8 + -1)" identifier = (cast_expression "(uint *)((int)puVar8 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + -1)" ( (binary_expression "(int)puVar8 + -1" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);" (assignment_expression "puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar12 + (uint)bVar15 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + (uint)bVar15 * -2 + 1)" ( (binary_expression "(int)puVar12 + (uint)bVar15 * -2 + 1" (binary_expression "(int)puVar12 + (uint)bVar15 * -2" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "bVar13 = *pbVar10 < (byte)*puVar12;" (assignment_expression "bVar13 = *pbVar10 < (byte)*puVar12" identifier = (binary_expression "*pbVar10 < (byte)*puVar12" (pointer_expression "*pbVar10" * identifier) < (binary_expression "(byte)*puVar12" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar14 = *pbVar10 == (byte)*puVar12;" (assignment_expression "bVar14 = *pbVar10 == (byte)*puVar12" identifier = (binary_expression "*pbVar10 == (byte)*puVar12" (pointer_expression "*pbVar10" * identifier) == (binary_expression "(byte)*puVar12" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "((!bVar13 && !bVar14) == bVar13)" ( (binary_expression "(!bVar13 && !bVar14) == bVar13" (parenthesized_expression "(!bVar13 && !bVar14)" ( (binary_expression "!bVar13 && !bVar14" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (compound_statement "{\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }" { (expression_statement "pbVar10 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 2)" identifier = (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" identifier = (cast_expression "(uint *)&DAT_00017be0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017be0" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8)" identifier = (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8)" identifier (argument_list "(pbVar10,&DAT_00017be0,puVar12,puVar8)" ( identifier , (pointer_expression "&DAT_00017be0" & identifier) , identifier , identifier )))) ;) (if_statement "if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }" if (parenthesized_expression "((iVar4 == 1) && (local_28 < 4))" ( (binary_expression "(iVar4 == 1) && (local_28 < 4)" (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_28 < 4)" ( (binary_expression "local_28 < 4" identifier < number_literal) ))) )) (compound_statement "{\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }" { (expression_statement "*(uint *)(param_1 + 0x24) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x24) = local_28" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad page control after \'c=\' option\n";" (assignment_expression "pcVar5 = "Bad page control after \'c=\' option\n"" identifier = (string_literal ""Bad page control after \'c=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }) (else_clause "else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }" { (expression_statement "puVar8 = (uint *)strncmp("m=",(char *)__s2,2);" (assignment_expression "puVar8 = (uint *)strncmp("m=",(char *)__s2,2)" identifier = (cast_expression "(uint *)strncmp("m=",(char *)__s2,2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strncmp("m=",(char *)__s2,2)" identifier (argument_list "("m=",(char *)__s2,2)" ( (string_literal ""m="" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }" if (parenthesized_expression "(puVar8 == (uint *)0x0)" ( (binary_expression "puVar8 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }" { (expression_statement "pbVar10 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 2)" identifier = (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar12 = &local_2c;" (assignment_expression "puVar12 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017bda;" (assignment_expression "__s2 = (uint *)&DAT_00017bda" identifier = (cast_expression "(uint *)&DAT_00017bda" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017bda" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0)" identifier = (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0)" identifier (argument_list "(pbVar10,&DAT_00017bda,puVar12,0)" ( identifier , (pointer_expression "&DAT_00017bda" & identifier) , identifier , number_literal )))) ;) (if_statement "if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }" if (parenthesized_expression "((iVar4 == 1) && (local_2c < 0x10000))" ( (binary_expression "(iVar4 == 1) && (local_2c < 0x10000)" (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_2c < 0x10000)" ( (binary_expression "local_2c < 0x10000" identifier < number_literal) ))) )) (compound_statement "{\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }" { (expression_statement "*(uint *)(param_1 + 0x18) = local_2c;" (assignment_expression "*(uint *)(param_1 + 0x18) = local_2c" (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad argument after \'m=\' option\n";" (assignment_expression "pcVar5 = "Bad argument after \'m=\' option\n"" identifier = (string_literal ""Bad argument after \'m=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }) (else_clause "else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }" else (compound_statement "{\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }" { (expression_statement "iVar4 = strncmp("p=",(char *)__s2,2);" (assignment_expression "iVar4 = strncmp("p=",(char *)__s2,2)" identifier = (call_expression "strncmp("p=",(char *)__s2,2)" identifier (argument_list "("p=",(char *)__s2,2)" ( (string_literal ""p="" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }" { (expression_statement "iVar4 = strncmp("subp=",(char *)__s2,5);" (assignment_expression "iVar4 = strncmp("subp=",(char *)__s2,5)" identifier = (call_expression "strncmp("subp=",(char *)__s2,5)" identifier (argument_list "("subp=",(char *)__s2,5)" ( (string_literal ""subp="" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }" { (expression_statement "pbVar10 = (byte *)((int)__s2 + 5);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 5)" identifier = (cast_expression "(byte *)((int)__s2 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 5)" ( (binary_expression "(int)__s2 + 5" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" identifier = (cast_expression "(uint *)&DAT_00017be0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017be0" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11)" identifier = (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11)" identifier (argument_list "(pbVar10,&DAT_00017be0,puVar12,puVar11)" ( identifier , (pointer_expression "&DAT_00017be0" & identifier) , identifier , identifier )))) ;) (if_statement "if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }" if (parenthesized_expression "((iVar4 != 1) || (0xff < local_28))" ( (binary_expression "(iVar4 != 1) || (0xff < local_28)" (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) || (parenthesized_expression "(0xff < local_28)" ( (binary_expression "0xff < local_28" number_literal < identifier) ))) )) (compound_statement "{\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }" { (expression_statement "pcVar5 = "Bad sub page code after \'subp=\' option\n";" (assignment_expression "pcVar5 = "Bad sub page code after \'subp=\' option\n"" identifier = (string_literal ""Bad sub page code after \'subp=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar11;" (assignment_expression "puVar9 = puVar11" identifier = identifier) ;) (goto_statement "goto LAB_00013d18;" goto statement_identifier ;) })) (expression_statement "*(uint *)(param_1 + 0x2c) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x2c) = local_28" (pointer_expression "*(uint *)(param_1 + 0x2c)" * (cast_expression "(uint *)(param_1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[8] = 1;" (assignment_expression "param_1[8] = 1" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }" if (parenthesized_expression "(*(int *)(param_1 + 0x28) == -1)" ( (binary_expression "*(int *)(param_1 + 0x28) == -1" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }" { (expression_statement "*(undefined4 *)(param_1 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" else (compound_statement "{\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" { (expression_statement "iVar4 = strncmp("-old",(char *)__s2,4);" (assignment_expression "iVar4 = strncmp("-old",(char *)__s2,4)" identifier = (call_expression "strncmp("-old",(char *)__s2,4)" identifier (argument_list "("-old",(char *)__s2,4)" ( (string_literal ""-old"" " string_content ") , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }" { (expression_statement "pcVar5 = "Unrecognized option: %s\n";" (assignment_expression "pcVar5 = "Unrecognized option: %s\n"" identifier = (string_literal ""Unrecognized option: %s\n"" " string_content escape_sequence ")) ;) (expression_statement "puVar12 = extraout_ECX;" (assignment_expression "puVar12 = extraout_ECX" identifier = identifier) ;) (expression_statement "puVar9 = extraout_ECX;" (assignment_expression "puVar9 = extraout_ECX" identifier = identifier) ;) (goto_statement "goto LAB_00013d18;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "ppuVar7 = __ctype_b_loc();" (assignment_expression "ppuVar7 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar1 = *(byte *)((int)__s2 + 2);" (assignment_expression "bVar1 = *(byte *)((int)__s2 + 2)" identifier = (pointer_expression "*(byte *)((int)__s2 + 2)" * (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = (*ppuVar7)[(char)bVar1];" (assignment_expression "uVar2 = (*ppuVar7)[(char)bVar1]" identifier = (subscript_expression "(*ppuVar7)[(char)bVar1]" (parenthesized_expression "(*ppuVar7)" ( (pointer_expression "*ppuVar7" * identifier) )) [ (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) ])) ;) (if_statement "if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }" if (parenthesized_expression "(((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))))))" ( (binary_expression "((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))" (parenthesized_expression "((uVar2 & 0x400) != 0)" ( (binary_expression "(uVar2 & 0x400) != 0" (parenthesized_expression "(uVar2 & 0x400)" ( (binary_expression "uVar2 & 0x400" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))" ( (parenthesized_expression "(((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))))" ( (binary_expression "((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))" (parenthesized_expression "((uVar2 & 0x200) != 0 && ('f' < (char)bVar1))" ( (binary_expression "(uVar2 & 0x200) != 0 && ('f' < (char)bVar1)" (binary_expression "(uVar2 & 0x200) != 0" (parenthesized_expression "(uVar2 & 0x200)" ( (binary_expression "uVar2 & 0x200" identifier & number_literal) )) != number_literal) && (parenthesized_expression "('f' < (char)bVar1)" ( (binary_expression "'f' < (char)bVar1" (char_literal "'f'" ' character ') < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) )) || (parenthesized_expression "(((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))" ( (parenthesized_expression "((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))" ( (binary_expression "(uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)" (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(uVar2 = (ushort)bVar1, 'F' < (char)bVar1)" ( (comma_expression "uVar2 = (ushort)bVar1, 'F' < (char)bVar1" (assignment_expression "uVar2 = (ushort)bVar1" identifier = (cast_expression "(ushort)bVar1" ( (type_descriptor "ushort" type_identifier) ) identifier)) , (binary_expression "'F' < (char)bVar1" (char_literal "'F'" ' character ') < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ))) )) ))) )) ))) )) (compound_statement "{\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }" { (expression_statement "pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);" (call_expression "pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2)" identifier (argument_list "("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2)" ( (string_literal ""Old format doesn\'t accept mode page acronyms: %s\n"" " string_content escape_sequence string_content escape_sequence ") , (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00013d37;" goto statement_identifier ;) })) (expression_statement "pbVar10 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 2)" identifier = (cast_expression "(byte *)((int)__s2 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s2 + 2)" ( (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar8 = (uint *)strchr((char *)pbVar10,0x2c);" (assignment_expression "puVar8 = (uint *)strchr((char *)pbVar10,0x2c)" identifier = (cast_expression "(uint *)strchr((char *)pbVar10,0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)pbVar10,0x2c)" identifier (argument_list "((char *)pbVar10,0x2c)" ( (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }" if (parenthesized_expression "(puVar8 == (uint *)0x0)" ( (binary_expression "puVar8 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }" { (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" identifier = (cast_expression "(uint *)&DAT_00017be0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017be0" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0)" identifier = (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0)" identifier (argument_list "(pbVar10,&DAT_00017be0,puVar12,0)" ( identifier , (pointer_expression "&DAT_00017be0" & identifier) , identifier , number_literal )))) ;) (if_statement "if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }" if (parenthesized_expression "((iVar4 == 1) && (local_28 < 0x40))" ( (binary_expression "(iVar4 == 1) && (local_28 < 0x40)" (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_28 < 0x40)" ( (binary_expression "local_28 < 0x40" identifier < number_literal) ))) )) (compound_statement "{\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }" { (expression_statement "*(uint *)(param_1 + 0x28) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x28) = local_28" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad page code value after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad page code value after \'p=\' option\n"" identifier = (string_literal ""Bad page code value after \'p=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }) (else_clause "else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }" else (compound_statement "{\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }" { (expression_statement "puVar8 = &local_24;" (assignment_expression "puVar8 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "__s2 = (uint *)&DAT_00017bdd;" (assignment_expression "__s2 = (uint *)&DAT_00017bdd" identifier = (cast_expression "(uint *)&DAT_00017bdd" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00017bdd" & identifier))) ;) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8)" identifier = (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8)" identifier (argument_list "(pbVar10,&DAT_00017bdd,puVar12,puVar8)" ( identifier , (pointer_expression "&DAT_00017bdd" & identifier) , identifier , identifier )))) ;) (if_statement "if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" { (if_statement "if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }" if (parenthesized_expression "(local_24 < 0x100)" ( (binary_expression "local_24 < 0x100" identifier < number_literal) )) (compound_statement "{\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }" { (expression_statement "*(uint *)(param_1 + 0x2c) = local_24;" (assignment_expression "*(uint *)(param_1 + 0x2c) = local_24" (pointer_expression "*(uint *)(param_1 + 0x2c)" * (cast_expression "(uint *)(param_1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x28) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x28) = local_28" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[8] = 1;" (assignment_expression "param_1[8] = 1" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00013bf2;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "Bad subpage code value after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad subpage code value after \'p=\' option\n"" identifier = (string_literal ""Bad subpage code value after \'p=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }) (else_clause "else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" else (compound_statement "{\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" { (expression_statement "pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n"" identifier = (string_literal ""Bad page code, subpage code sequence after \'p=\' option\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }))) }))) }))) }))) (labeled_statement "LAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);" statement_identifier : (expression_statement "pr2serr(pcVar5,__s2,puVar12,puVar9);" (call_expression "pr2serr(pcVar5,__s2,puVar12,puVar9)" identifier (argument_list "(pcVar5,__s2,puVar12,puVar9)" ( identifier , identifier , identifier , identifier ))) ;)) (expression_statement "FUN_00013b60();" (call_expression "FUN_00013b60()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00013d37;" goto statement_identifier ;) })) }) (else_clause "else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }" else (compound_statement "{\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }" { (expression_statement "__s2 = *(uint **)(param_1 + 0x30);" (assignment_expression "__s2 = *(uint **)(param_1 + 0x30)" identifier = (pointer_expression "*(uint **)(param_1 + 0x30)" * (cast_expression "(uint **)(param_1 + 0x30)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }" if (parenthesized_expression "(__s2 != (uint *)0x0)" ( (binary_expression "__s2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }" { (expression_statement "pcVar5 = "too many arguments, got: %s, not expecting: %s\n";" (assignment_expression "pcVar5 = "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 ")) ;) (goto_statement "goto LAB_00013d18;" goto statement_identifier ;) })) (expression_statement "*(uint **)(param_1 + 0x30) = puVar12;" (assignment_expression "*(uint **)(param_1 + 0x30) = puVar12" (pointer_expression "*(uint **)(param_1 + 0x30)" * (cast_expression "(uint **)(param_1 + 0x30)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) })) (labeled_statement "LAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);" statement_identifier : (expression_statement "puVar9 = (uint *)((int)puVar9 + 1);" (assignment_expression "puVar9 = (uint *)((int)puVar9 + 1)" identifier = (cast_expression "(uint *)((int)puVar9 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 1)" ( (binary_expression "(int)puVar9 + 1" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "(param_2 != puVar9)" ( (binary_expression "param_2 != puVar9" identifier != identifier) )) ;) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) }))) (expression_statement "FUN_00014fb0();" (call_expression "FUN_00014fb0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) == LIT)) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case 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)) ;) (break_statement break ;)) (case_statement case 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)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case 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)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;)) (case_statement case 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)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;)) (case_statement case 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)) ;) (break_statement break ;)) (case_statement case LIT : (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , 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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (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 ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression (char_literal ' character ') < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression (char_literal ' character ') < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , 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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence 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 ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (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 ")) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = 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 { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined4 __regparm3 FUN_00013b90(undefined1 *param_1,uint *param_2,int param_3)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  ushort **ppuVar7;\n  uint *puVar8;\n  uint *extraout_ECX;\n  uint *puVar9;\n  uint *__s2;\n  byte *pbVar10;\n  uint *puVar11;\n  int in_GS_OFFSET;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar12;\n  \n  bVar15 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }\n  uVar6 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }\n                    \n  FUN_00014fb0();\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00013b90(undefined1 *param_1,uint *param_2,int param_3)" (identifier "FUN_00013b90") (parameter_list "(undefined1 *param_1,uint *param_2,int param_3)" (( "(") (parameter_declaration "undefined1 *param_1" (type_identifier "undefined1") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  byte bVar1;\n  ushort uVar2;\n  size_t sVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  ushort **ppuVar7;\n  uint *puVar8;\n  uint *extraout_ECX;\n  uint *puVar9;\n  uint *__s2;\n  byte *pbVar10;\n  uint *puVar11;\n  int in_GS_OFFSET;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  uint *puVar12;\n  \n  bVar15 = 0;\n  uStack_14 = 0x13b99;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (1 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }\n  uVar6 = 0;\nLAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }\n                    \n  FUN_00014fb0();\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "ushort **ppuVar7;" (type_identifier "ushort") (pointer_declarator "**ppuVar7" (* "*") (pointer_declarator "*ppuVar7" (* "*") (identifier "ppuVar7"))) (; ";")) (declaration "uint *puVar8;" (type_identifier "uint") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "uint *extraout_ECX;" (type_identifier "uint") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint *__s2;" (type_identifier "uint") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (declaration "byte bVar15;" (type_identifier "byte") (identifier "bVar15") (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (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") (; ";")) (declaration "uint *puVar12;" (type_identifier "uint") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" (identifier "bVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x13b99;" (assignment_expression "uStack_14 = 0x13b99" (identifier "uStack_14") (= "=") (number_literal "0x13b99")) (; ";")) (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 < (int)param_2) {\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }" (if "if") (parenthesized_expression "(1 < (int)param_2)" (( "(") (binary_expression "1 < (int)param_2" (number_literal "1") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (compound_statement "{\n    puVar9 = (uint *)0x1;\n    do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);\n  }" ({ "{") (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" (identifier "puVar9") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (do_statement "do {\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    } while (param_2 != puVar9);" (do "do") (compound_statement "{\n      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);\n      sVar3 = strlen((char *)puVar12);\n      if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }\nLAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);\n    }" ({ "{") (expression_statement "puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);" (assignment_expression "puVar12 = *(uint **)(param_3 + (int)puVar9 * 4)" (identifier "puVar12") (= "=") (pointer_expression "*(uint **)(param_3 + (int)puVar9 * 4)" (* "*") (cast_expression "(uint **)(param_3 + (int)puVar9 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + (int)puVar9 * 4)" (( "(") (binary_expression "param_3 + (int)puVar9 * 4" (identifier "param_3") (+ "+") (binary_expression "(int)puVar9 * 4" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "sVar3 = strlen((char *)puVar12);" (assignment_expression "sVar3 = strlen((char *)puVar12)" (identifier "sVar3") (= "=") (call_expression "strlen((char *)puVar12)" (identifier "strlen") (argument_list "((char *)puVar12)" (( "(") (cast_expression "(char *)puVar12" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12")) () ")")))) (; ";")) (if_statement "if (sVar3 != 0) {\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }" (if "if") (parenthesized_expression "(sVar3 != 0)" (( "(") (binary_expression "sVar3 != 0" (identifier "sVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }\n      }" ({ "{") (if_statement "if ((byte)*puVar12 == 0x2d) {\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }\n        else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }" (if "if") (parenthesized_expression "((byte)*puVar12 == 0x2d)" (( "(") (binary_expression "(byte)*puVar12 == 0x2d" (binary_expression "(byte)*puVar12" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar12")) (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\n          __s2 = (uint *)((int)puVar12 + 1);\n          iVar4 = sVar3 - 1;\n          if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }\n        }" ({ "{") (expression_statement "__s2 = (uint *)((int)puVar12 + 1);" (assignment_expression "__s2 = (uint *)((int)puVar12 + 1)" (identifier "__s2") (= "=") (cast_expression "(uint *)((int)puVar12 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 1)" (( "(") (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar4 = sVar3 - 1;" (assignment_expression "iVar4 = sVar3 - 1" (identifier "iVar4") (= "=") (binary_expression "sVar3 - 1" (identifier "sVar3") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (iVar4 != 0) {\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar1 = *(byte *)__s2;\n            while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }\nLAB_00013c6c:\n            puVar8 = (uint *)0x2;\n            pbVar10 = &DAT_00017bd4;\n            puVar12 = __s2;\n            do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);\n            if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }\nLAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);\n            FUN_00013b60();\n            uVar6 = 1;\n            goto LAB_00013d37;\n          }" ({ "{") (expression_statement "bVar1 = *(byte *)__s2;" (assignment_expression "bVar1 = *(byte *)__s2" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)__s2" (* "*") (cast_expression "(byte *)__s2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s2")))) (; ";")) (while_statement "while( true ) {\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              bVar1 = bVar1 - 0x36;\n              bVar14 = bVar1 == 0x40;\n              bVar13 = bVar1 < 0x40;\n              if (0x40 < bVar1) break;\n              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);\n              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;\n              switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }\n              __s2 = (uint *)((int)__s2 + 1);\n              iVar4 = iVar4 + -1;\n              if (iVar4 == 0) goto LAB_00013bf2;\n              bVar1 = *(byte *)__s2;\n            }" ({ "{") (expression_statement "bVar1 = bVar1 - 0x36;" (assignment_expression "bVar1 = bVar1 - 0x36" (identifier "bVar1") (= "=") (binary_expression "bVar1 - 0x36" (identifier "bVar1") (- "-") (number_literal "0x36"))) (; ";")) (expression_statement "bVar14 = bVar1 == 0x40;" (assignment_expression "bVar14 = bVar1 == 0x40" (identifier "bVar14") (= "=") (binary_expression "bVar1 == 0x40" (identifier "bVar1") (== "==") (number_literal "0x40"))) (; ";")) (expression_statement "bVar13 = bVar1 < 0x40;" (assignment_expression "bVar13 = bVar1 < 0x40" (identifier "bVar13") (= "=") (binary_expression "bVar1 < 0x40" (identifier "bVar1") (< "<") (number_literal "0x40"))) (; ";")) (if_statement "if (0x40 < bVar1) break;" (if "if") (parenthesized_expression "(0x40 < bVar1)" (( "(") (binary_expression "0x40 < bVar1" (number_literal "0x40") (< "<") (identifier "bVar1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);" (assignment_expression "bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" (identifier "bVar13") (= "=") (binary_expression "0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" (number_literal "0xfffe50b3") (< "<") (pointer_expression "*(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" (* "*") (cast_expression "(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000185d0 + (uint)bVar1 * 4)" (( "(") (binary_expression "&DAT_000185d0 + (uint)bVar1 * 4" (pointer_expression "&DAT_000185d0" (& "&") (identifier "DAT_000185d0")) (+ "+") (binary_expression "(uint)bVar1 * 4" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;" (assignment_expression "bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4" (identifier "bVar14") (= "=") (binary_expression "*(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4" (pointer_expression "*(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" (* "*") (cast_expression "(uint *)(&DAT_000185d0 + (uint)bVar1 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000185d0 + (uint)bVar1 * 4)" (( "(") (binary_expression "&DAT_000185d0 + (uint)bVar1 * 4" (pointer_expression "&DAT_000185d0" (& "&") (identifier "DAT_000185d0")) (+ "+") (binary_expression "(uint)bVar1 * 4" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "4"))) () ")")))) (== "==") (number_literal "0xfffe50b4"))) (; ";")) (switch_statement "switch(bVar1) {\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }" (switch "switch") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n              case 0:\n                param_1[6] = 1;\n                break;\n              default:\n                goto LAB_00013c6c;\n              case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;\n              case 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;\n              case 0xe:\n                param_1[1] = 1;\n                break;\n              case 0x12:\n              case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;\n              case 0x16:\n                param_1[5] = 1;\n                break;\n              case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;\n              case 0x19:\n                break;\n              case 0x20:\n                param_1[0xb] = 1;\n                break;\n              case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;\n              case 0x2e:\n                *param_1 = 1;\n                break;\n              case 0x2f:\n                param_1[2] = 1;\n                break;\n              case 0x30:\n                param_1[3] = 1;\n                break;\n              case 0x36:\n                param_1[4] = 1;\n                break;\n              case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;\n              case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;\n              }" ({ "{") (case_statement "case 0:\n                param_1[6] = 1;\n                break;" (case "case") (number_literal "0") (: ":") (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")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                goto LAB_00013c6c;" (default "default") (: ":") (goto_statement "goto LAB_00013c6c;" (goto "goto") (statement_identifier "LAB_00013c6c") (; ";"))) (case_statement "case 9:\n                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n                break;" (case "case") (number_literal "9") (: ":") (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 0xb:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;\n                break;" (case "case") (number_literal "0xb") (: ":") (expression_statement "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;" (assignment_expression "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2" (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) + 2" (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 "2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xe:\n                param_1[1] = 1;\n                break;" (case "case") (number_literal "0xe") (: ":") (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")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x12:" (case "case") (number_literal "0x12") (: ":")) (case_statement "case 0x32:\n                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;\n                break;" (case "case") (number_literal "0x32") (: ":") (expression_statement "*(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;" (assignment_expression "*(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x14) + 2" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x16:\n                param_1[5] = 1;\n                break;" (case "case") (number_literal "0x16") (: ":") (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")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x18:\n                param_1[9] = 1;\n                uVar6 = 0;\n                goto LAB_00013d37;" (case "case") (number_literal "0x18") (: ":") (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")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00013d37;" (goto "goto") (statement_identifier "LAB_00013d37") (; ";"))) (case_statement "case 0x19:\n                break;" (case "case") (number_literal "0x19") (: ":") (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x20:\n                param_1[0xb] = 1;\n                break;" (case "case") (number_literal "0x20") (: ":") (expression_statement "param_1[0xb] = 1;" (assignment_expression "param_1[0xb] = 1" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x2b:\n                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n                break;" (case "case") (number_literal "0x2b") (: ":") (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 "case 0x2e:\n                *param_1 = 1;\n                break;" (case "case") (number_literal "0x2e") (: ":") (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 0x2f:\n                param_1[2] = 1;\n                break;" (case "case") (number_literal "0x2f") (: ":") (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 0x30:\n                param_1[3] = 1;\n                break;" (case "case") (number_literal "0x30") (: ":") (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 0x36:\n                param_1[4] = 1;\n                break;" (case "case") (number_literal "0x36") (: ":") (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")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x3c:\n                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;\n                break;" (case "case") (number_literal "0x3c") (: ":") (expression_statement "*(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;" (assignment_expression "*(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x1c) + 2" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x40:\n                param_1[10] = 1;\n                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;" (case "case") (number_literal "0x40") (: ":") (expression_statement "param_1[10] = 1;" (assignment_expression "param_1[10] = 1" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1" (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")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x20) + 1" (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")) () ")")))) (+ "+") (number_literal "1"))) (; ";"))) (} "}"))) (expression_statement "__s2 = (uint *)((int)__s2 + 1);" (assignment_expression "__s2 = (uint *)((int)__s2 + 1)" (identifier "__s2") (= "=") (cast_expression "(uint *)((int)__s2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__s2 + 1)" (( "(") (binary_expression "(int)__s2 + 1" (cast_expression "(int)__s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s2")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_00013bf2;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00013bf2;" (goto "goto") (statement_identifier "LAB_00013bf2") (; ";"))) (expression_statement "bVar1 = *(byte *)__s2;" (assignment_expression "bVar1 = *(byte *)__s2" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)__s2" (* "*") (cast_expression "(byte *)__s2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s2")))) (; ";")) (} "}"))) (labeled_statement "LAB_00013c6c:\n            puVar8 = (uint *)0x2;" (statement_identifier "LAB_00013c6c") (: ":") (expression_statement "puVar8 = (uint *)0x2;" (assignment_expression "puVar8 = (uint *)0x2" (identifier "puVar8") (= "=") (cast_expression "(uint *)0x2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";"))) (expression_statement "pbVar10 = &DAT_00017bd4;" (assignment_expression "pbVar10 = &DAT_00017bd4" (identifier "pbVar10") (= "=") (pointer_expression "&DAT_00017bd4" (& "&") (identifier "DAT_00017bd4"))) (; ";")) (expression_statement "puVar12 = __s2;" (assignment_expression "puVar12 = __s2" (identifier "puVar12") (= "=") (identifier "__s2")) (; ";")) (do_statement "do {\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            } while (bVar14);" (do "do") (compound_statement "{\n              puVar11 = puVar12;\n              if (puVar8 == (uint *)0x0) break;\n              puVar8 = (uint *)((int)puVar8 + -1);\n              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);\n              bVar13 = *pbVar10 < (byte)*puVar12;\n              bVar14 = *pbVar10 == (byte)*puVar12;\n              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n              puVar12 = puVar11;\n            }" ({ "{") (expression_statement "puVar11 = puVar12;" (assignment_expression "puVar11 = puVar12" (identifier "puVar11") (= "=") (identifier "puVar12")) (; ";")) (if_statement "if (puVar8 == (uint *)0x0) break;" (if "if") (parenthesized_expression "(puVar8 == (uint *)0x0)" (( "(") (binary_expression "puVar8 == (uint *)0x0" (identifier "puVar8") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar8 = (uint *)((int)puVar8 + -1);" (assignment_expression "puVar8 = (uint *)((int)puVar8 + -1)" (identifier "puVar8") (= "=") (cast_expression "(uint *)((int)puVar8 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + -1)" (( "(") (binary_expression "(int)puVar8 + -1" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);" (assignment_expression "puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1)" (identifier "puVar11") (= "=") (cast_expression "(uint *)((int)puVar12 + (uint)bVar15 * -2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + (uint)bVar15 * -2 + 1)" (( "(") (binary_expression "(int)puVar12 + (uint)bVar15 * -2 + 1" (binary_expression "(int)puVar12 + (uint)bVar15 * -2" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar13 = *pbVar10 < (byte)*puVar12;" (assignment_expression "bVar13 = *pbVar10 < (byte)*puVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar10 < (byte)*puVar12" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (binary_expression "(byte)*puVar12" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar12")))) (; ";")) (expression_statement "bVar14 = *pbVar10 == (byte)*puVar12;" (assignment_expression "bVar14 = *pbVar10 == (byte)*puVar12" (identifier "bVar14") (= "=") (binary_expression "*pbVar10 == (byte)*puVar12" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (binary_expression "(byte)*puVar12" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar12")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" (identifier "puVar12") (= "=") (identifier "puVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (; ";")) (if_statement "if ((!bVar13 && !bVar14) == bVar13) {\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }\n            else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "((!bVar13 && !bVar14) == bVar13)" (( "(") (binary_expression "(!bVar13 && !bVar14) == bVar13" (parenthesized_expression "(!bVar13 && !bVar14)" (( "(") (binary_expression "!bVar13 && !bVar14" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar14" (! "!") (identifier "bVar14"))) () ")")) (== "==") (identifier "bVar13")) () ")")) (compound_statement "{\n              pbVar10 = (byte *)((int)__s2 + 2);\n              puVar12 = &local_28;\n              __s2 = (uint *)&DAT_00017be0;\n              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);\n              if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }\n              pcVar5 = "Bad page control after \'c=\' option\n";\n              puVar9 = puVar8;\n            }" ({ "{") (expression_statement "pbVar10 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 2)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)((int)__s2 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__s2 + 2)" (( "(") (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s2")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" (identifier "puVar12") (= "=") (pointer_expression "&local_28" (& "&") (identifier "local_28"))) (; ";")) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" (identifier "__s2") (= "=") (cast_expression "(uint *)&DAT_00017be0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00017be0" (& "&") (identifier "DAT_00017be0")))) (; ";")) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8)" (identifier "iVar4") (= "=") (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8)" (identifier "__isoc99_sscanf") (argument_list "(pbVar10,&DAT_00017be0,puVar12,puVar8)" (( "(") (identifier "pbVar10") (, ",") (pointer_expression "&DAT_00017be0" (& "&") (identifier "DAT_00017be0")) (, ",") (identifier "puVar12") (, ",") (identifier "puVar8") () ")")))) (; ";")) (if_statement "if ((iVar4 == 1) && (local_28 < 4)) {\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }" (if "if") (parenthesized_expression "((iVar4 == 1) && (local_28 < 4))" (( "(") (binary_expression "(iVar4 == 1) && (local_28 < 4)" (parenthesized_expression "(iVar4 == 1)" (( "(") (binary_expression "iVar4 == 1" (identifier "iVar4") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(local_28 < 4)" (( "(") (binary_expression "local_28 < 4" (identifier "local_28") (< "<") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n                *(uint *)(param_1 + 0x24) = local_28;\n                goto LAB_00013bf2;\n              }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x24) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x24) = local_28" (pointer_expression "*(uint *)(param_1 + 0x24)" (* "*") (cast_expression "(uint *)(param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (goto_statement "goto LAB_00013bf2;" (goto "goto") (statement_identifier "LAB_00013bf2") (; ";")) (} "}"))) (expression_statement "pcVar5 = "Bad page control after \'c=\' option\n";" (assignment_expression "pcVar5 = "Bad page control after \'c=\' option\n"" (identifier "pcVar5") (= "=") (string_literal ""Bad page control after \'c=\' option\n"" (" """) (string_content "Bad page control after ") (escape_sequence "\'") (string_content "c=") (escape_sequence "\'") (string_content " option") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" (identifier "puVar9") (= "=") (identifier "puVar8")) (; ";")) (} "}")) (else_clause "else {\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }" (else "else") (compound_statement "{\n              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);\n              if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "puVar8 = (uint *)strncmp("m=",(char *)__s2,2);" (assignment_expression "puVar8 = (uint *)strncmp("m=",(char *)__s2,2)" (identifier "puVar8") (= "=") (cast_expression "(uint *)strncmp("m=",(char *)__s2,2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strncmp("m=",(char *)__s2,2)" (identifier "strncmp") (argument_list "("m=",(char *)__s2,2)" (( "(") (string_literal ""m="" (" """) (string_content "m=") (" """)) (, ",") (cast_expression "(char *)__s2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s2")) (, ",") (number_literal "2") () ")"))))) (; ";")) (if_statement "if (puVar8 == (uint *)0x0) {\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }\n              else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(puVar8 == (uint *)0x0)" (( "(") (binary_expression "puVar8 == (uint *)0x0" (identifier "puVar8") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar12 = &local_2c;\n                __s2 = (uint *)&DAT_00017bda;\n                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);\n                if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }\n                pcVar5 = "Bad argument after \'m=\' option\n";\n                puVar9 = puVar8;\n              }" ({ "{") (expression_statement "pbVar10 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 2)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)((int)__s2 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__s2 + 2)" (( "(") (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s2")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puVar12 = &local_2c;" (assignment_expression "puVar12 = &local_2c" (identifier "puVar12") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (expression_statement "__s2 = (uint *)&DAT_00017bda;" (assignment_expression "__s2 = (uint *)&DAT_00017bda" (identifier "__s2") (= "=") (cast_expression "(uint *)&DAT_00017bda" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00017bda" (& "&") (identifier "DAT_00017bda")))) (; ";")) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0)" (identifier "iVar4") (= "=") (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0)" (identifier "__isoc99_sscanf") (argument_list "(pbVar10,&DAT_00017bda,puVar12,0)" (( "(") (identifier "pbVar10") (, ",") (pointer_expression "&DAT_00017bda" (& "&") (identifier "DAT_00017bda")) (, ",") (identifier "puVar12") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar4 == 1) && (local_2c < 0x10000)) {\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }" (if "if") (parenthesized_expression "((iVar4 == 1) && (local_2c < 0x10000))" (( "(") (binary_expression "(iVar4 == 1) && (local_2c < 0x10000)" (parenthesized_expression "(iVar4 == 1)" (( "(") (binary_expression "iVar4 == 1" (identifier "iVar4") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(local_2c < 0x10000)" (( "(") (binary_expression "local_2c < 0x10000" (identifier "local_2c") (< "<") (number_literal "0x10000")) () ")"))) () ")")) (compound_statement "{\n                  *(uint *)(param_1 + 0x18) = local_2c;\n                  goto LAB_00013bf2;\n                }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x18) = local_2c;" (assignment_expression "*(uint *)(param_1 + 0x18) = local_2c" (pointer_expression "*(uint *)(param_1 + 0x18)" (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "local_2c")) (; ";")) (goto_statement "goto LAB_00013bf2;" (goto "goto") (statement_identifier "LAB_00013bf2") (; ";")) (} "}"))) (expression_statement "pcVar5 = "Bad argument after \'m=\' option\n";" (assignment_expression "pcVar5 = "Bad argument after \'m=\' option\n"" (identifier "pcVar5") (= "=") (string_literal ""Bad argument after \'m=\' option\n"" (" """) (string_content "Bad argument after ") (escape_sequence "\'") (string_content "m=") (escape_sequence "\'") (string_content " option") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" (identifier "puVar9") (= "=") (identifier "puVar8")) (; ";")) (} "}")) (else_clause "else {\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }" (else "else") (compound_statement "{\n                iVar4 = strncmp("p=",(char *)__s2,2);\n                if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }\n                ppuVar7 = __ctype_b_loc();\n                bVar1 = *(byte *)((int)__s2 + 2);\n                uVar2 = (*ppuVar7)[(char)bVar1];\n                if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }\n                pbVar10 = (byte *)((int)__s2 + 2);\n                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);\n                if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }\n              }" ({ "{") (expression_statement "iVar4 = strncmp("p=",(char *)__s2,2);" (assignment_expression "iVar4 = strncmp("p=",(char *)__s2,2)" (identifier "iVar4") (= "=") (call_expression "strncmp("p=",(char *)__s2,2)" (identifier "strncmp") (argument_list "("p=",(char *)__s2,2)" (( "(") (string_literal ""p="" (" """) (string_content "p=") (" """)) (, ",") (cast_expression "(char *)__s2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s2")) (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar4 = strncmp("subp=",(char *)__s2,5);\n                  if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }\n                  goto LAB_00013bf2;\n                }" ({ "{") (expression_statement "iVar4 = strncmp("subp=",(char *)__s2,5);" (assignment_expression "iVar4 = strncmp("subp=",(char *)__s2,5)" (identifier "iVar4") (= "=") (call_expression "strncmp("subp=",(char *)__s2,5)" (identifier "strncmp") (argument_list "("subp=",(char *)__s2,5)" (( "(") (string_literal ""subp="" (" """) (string_content "subp=") (" """)) (, ",") (cast_expression "(char *)__s2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s2")) (, ",") (number_literal "5") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    pbVar10 = (byte *)((int)__s2 + 5);\n                    puVar12 = &local_28;\n                    __s2 = (uint *)&DAT_00017be0;\n                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);\n                    if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }\n                    *(uint *)(param_1 + 0x2c) = local_28;\n                    param_1[8] = 1;\n                    if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }\n                  }" ({ "{") (expression_statement "pbVar10 = (byte *)((int)__s2 + 5);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 5)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)((int)__s2 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__s2 + 5)" (( "(") (binary_expression "(int)__s2 + 5" (cast_expression "(int)__s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s2")) (+ "+") (number_literal "5")) () ")")))) (; ";")) (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" (identifier "puVar12") (= "=") (pointer_expression "&local_28" (& "&") (identifier "local_28"))) (; ";")) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" (identifier "__s2") (= "=") (cast_expression "(uint *)&DAT_00017be0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00017be0" (& "&") (identifier "DAT_00017be0")))) (; ";")) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11)" (identifier "iVar4") (= "=") (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11)" (identifier "__isoc99_sscanf") (argument_list "(pbVar10,&DAT_00017be0,puVar12,puVar11)" (( "(") (identifier "pbVar10") (, ",") (pointer_expression "&DAT_00017be0" (& "&") (identifier "DAT_00017be0")) (, ",") (identifier "puVar12") (, ",") (identifier "puVar11") () ")")))) (; ";")) (if_statement "if ((iVar4 != 1) || (0xff < local_28)) {\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }" (if "if") (parenthesized_expression "((iVar4 != 1) || (0xff < local_28))" (( "(") (binary_expression "(iVar4 != 1) || (0xff < local_28)" (parenthesized_expression "(iVar4 != 1)" (( "(") (binary_expression "iVar4 != 1" (identifier "iVar4") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(0xff < local_28)" (( "(") (binary_expression "0xff < local_28" (number_literal "0xff") (< "<") (identifier "local_28")) () ")"))) () ")")) (compound_statement "{\n                      pcVar5 = "Bad sub page code after \'subp=\' option\n";\n                      puVar9 = puVar11;\n                      goto LAB_00013d18;\n                    }" ({ "{") (expression_statement "pcVar5 = "Bad sub page code after \'subp=\' option\n";" (assignment_expression "pcVar5 = "Bad sub page code after \'subp=\' option\n"" (identifier "pcVar5") (= "=") (string_literal ""Bad sub page code after \'subp=\' option\n"" (" """) (string_content "Bad sub page code after ") (escape_sequence "\'") (string_content "subp=") (escape_sequence "\'") (string_content " option") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "puVar9 = puVar11;" (assignment_expression "puVar9 = puVar11" (identifier "puVar9") (= "=") (identifier "puVar11")) (; ";")) (goto_statement "goto LAB_00013d18;" (goto "goto") (statement_identifier "LAB_00013d18") (; ";")) (} "}"))) (expression_statement "*(uint *)(param_1 + 0x2c) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x2c) = local_28" (pointer_expression "*(uint *)(param_1 + 0x2c)" (* "*") (cast_expression "(uint *)(param_1 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (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")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x28) == -1) {\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x28) == -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x28) == -1" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                      *(undefined4 *)(param_1 + 0x28) = 0;\n                    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" (else "else") (compound_statement "{\n                    iVar4 = strncmp("-old",(char *)__s2,4);\n                    if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }\n                  }" ({ "{") (expression_statement "iVar4 = strncmp("-old",(char *)__s2,4);" (assignment_expression "iVar4 = strncmp("-old",(char *)__s2,4)" (identifier "iVar4") (= "=") (call_expression "strncmp("-old",(char *)__s2,4)" (identifier "strncmp") (argument_list "("-old",(char *)__s2,4)" (( "(") (string_literal ""-old"" (" """) (string_content "-old") (" """)) (, ",") (cast_expression "(char *)__s2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s2")) (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      pcVar5 = "Unrecognized option: %s\n";\n                      puVar12 = extraout_ECX;\n                      puVar9 = extraout_ECX;\n                      goto LAB_00013d18;\n                    }" ({ "{") (expression_statement "pcVar5 = "Unrecognized option: %s\n";" (assignment_expression "pcVar5 = "Unrecognized option: %s\n"" (identifier "pcVar5") (= "=") (string_literal ""Unrecognized option: %s\n"" (" """) (string_content "Unrecognized option: %s") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "puVar12 = extraout_ECX;" (assignment_expression "puVar12 = extraout_ECX" (identifier "puVar12") (= "=") (identifier "extraout_ECX")) (; ";")) (expression_statement "puVar9 = extraout_ECX;" (assignment_expression "puVar9 = extraout_ECX" (identifier "puVar9") (= "=") (identifier "extraout_ECX")) (; ";")) (goto_statement "goto LAB_00013d18;" (goto "goto") (statement_identifier "LAB_00013d18") (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_00013bf2;" (goto "goto") (statement_identifier "LAB_00013bf2") (; ";")) (} "}"))) (expression_statement "ppuVar7 = __ctype_b_loc();" (assignment_expression "ppuVar7 = __ctype_b_loc()" (identifier "ppuVar7") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar1 = *(byte *)((int)__s2 + 2);" (assignment_expression "bVar1 = *(byte *)((int)__s2 + 2)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((int)__s2 + 2)" (* "*") (cast_expression "(byte *)((int)__s2 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__s2 + 2)" (( "(") (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s2")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uVar2 = (*ppuVar7)[(char)bVar1];" (assignment_expression "uVar2 = (*ppuVar7)[(char)bVar1]" (identifier "uVar2") (= "=") (subscript_expression "(*ppuVar7)[(char)bVar1]" (parenthesized_expression "(*ppuVar7)" (( "(") (pointer_expression "*ppuVar7" (* "*") (identifier "ppuVar7")) () ")")) ([ "[") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")) (] "]"))) (; ";")) (if_statement "if (((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }" (if "if") (parenthesized_expression "(((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))))))" (( "(") (binary_expression "((uVar2 & 0x400) != 0) &&\n                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))" (parenthesized_expression "((uVar2 & 0x400) != 0)" (( "(") (binary_expression "(uVar2 & 0x400) != 0" (parenthesized_expression "(uVar2 & 0x400)" (( "(") (binary_expression "uVar2 & 0x400" (identifier "uVar2") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))" (( "(") (parenthesized_expression "(((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))))" (( "(") (binary_expression "((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||\n                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))" (parenthesized_expression "((uVar2 & 0x200) != 0 && ('f' < (char)bVar1))" (( "(") (binary_expression "(uVar2 & 0x200) != 0 && ('f' < (char)bVar1)" (binary_expression "(uVar2 & 0x200) != 0" (parenthesized_expression "(uVar2 & 0x200)" (( "(") (binary_expression "uVar2 & 0x200" (identifier "uVar2") (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "('f' < (char)bVar1)" (( "(") (binary_expression "'f' < (char)bVar1" (char_literal "'f'" (' "'") (character "f") (' "'")) (< "<") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))" (( "(") (parenthesized_expression "((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1))" (( "(") (binary_expression "(uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)" (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" (( "(") (binary_expression "uVar2 & 0x100" (identifier "uVar2") (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(uVar2 = (ushort)bVar1, 'F' < (char)bVar1)" (( "(") (comma_expression "uVar2 = (ushort)bVar1, 'F' < (char)bVar1" (assignment_expression "uVar2 = (ushort)bVar1" (identifier "uVar2") (= "=") (cast_expression "(ushort)bVar1" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "bVar1"))) (, ",") (binary_expression "'F' < (char)bVar1" (char_literal "'F'" (' "'") (character "F") (' "'")) (< "<") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);\n                  uVar6 = 1;\n                  goto LAB_00013d37;\n                }" ({ "{") (expression_statement "pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2);" (call_expression "pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2)" (identifier "pr2serr") (argument_list "("Old format doesn\'t accept mode page acronyms: %s\n",\n                          (byte *)((int)__s2 + 2),uVar2,uVar2)" (( "(") (string_literal ""Old format doesn\'t accept mode page acronyms: %s\n"" (" """) (string_content "Old format doesn") (escape_sequence "\'") (string_content "t accept mode page acronyms: %s") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(byte *)((int)__s2 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__s2 + 2)" (( "(") (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s2")) (+ "+") (number_literal "2")) () ")"))) (, ",") (identifier "uVar2") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00013d37;" (goto "goto") (statement_identifier "LAB_00013d37") (; ";")) (} "}"))) (expression_statement "pbVar10 = (byte *)((int)__s2 + 2);" (assignment_expression "pbVar10 = (byte *)((int)__s2 + 2)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)((int)__s2 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__s2 + 2)" (( "(") (binary_expression "(int)__s2 + 2" (cast_expression "(int)__s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s2")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puVar8 = (uint *)strchr((char *)pbVar10,0x2c);" (assignment_expression "puVar8 = (uint *)strchr((char *)pbVar10,0x2c)" (identifier "puVar8") (= "=") (cast_expression "(uint *)strchr((char *)pbVar10,0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strchr((char *)pbVar10,0x2c)" (identifier "strchr") (argument_list "((char *)pbVar10,0x2c)" (( "(") (cast_expression "(char *)pbVar10" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar10")) (, ",") (number_literal "0x2c") () ")"))))) (; ";")) (if_statement "if (puVar8 == (uint *)0x0) {\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }\n                else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }" (if "if") (parenthesized_expression "(puVar8 == (uint *)0x0)" (( "(") (binary_expression "puVar8 == (uint *)0x0" (identifier "puVar8") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017be0;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);\n                  if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }\n                  pcVar5 = "Bad page code value after \'p=\' option\n";\n                  puVar9 = puVar8;\n                }" ({ "{") (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" (identifier "puVar12") (= "=") (pointer_expression "&local_28" (& "&") (identifier "local_28"))) (; ";")) (expression_statement "__s2 = (uint *)&DAT_00017be0;" (assignment_expression "__s2 = (uint *)&DAT_00017be0" (identifier "__s2") (= "=") (cast_expression "(uint *)&DAT_00017be0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00017be0" (& "&") (identifier "DAT_00017be0")))) (; ";")) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0)" (identifier "iVar4") (= "=") (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0)" (identifier "__isoc99_sscanf") (argument_list "(pbVar10,&DAT_00017be0,puVar12,0)" (( "(") (identifier "pbVar10") (, ",") (pointer_expression "&DAT_00017be0" (& "&") (identifier "DAT_00017be0")) (, ",") (identifier "puVar12") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar4 == 1) && (local_28 < 0x40)) {\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }" (if "if") (parenthesized_expression "((iVar4 == 1) && (local_28 < 0x40))" (( "(") (binary_expression "(iVar4 == 1) && (local_28 < 0x40)" (parenthesized_expression "(iVar4 == 1)" (( "(") (binary_expression "iVar4 == 1" (identifier "iVar4") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(local_28 < 0x40)" (( "(") (binary_expression "local_28 < 0x40" (identifier "local_28") (< "<") (number_literal "0x40")) () ")"))) () ")")) (compound_statement "{\n                    *(uint *)(param_1 + 0x28) = local_28;\n                    goto LAB_00013bf2;\n                  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x28) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x28) = local_28" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (goto_statement "goto LAB_00013bf2;" (goto "goto") (statement_identifier "LAB_00013bf2") (; ";")) (} "}"))) (expression_statement "pcVar5 = "Bad page code value after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad page code value after \'p=\' option\n"" (identifier "pcVar5") (= "=") (string_literal ""Bad page code value after \'p=\' option\n"" (" """) (string_content "Bad page code value after ") (escape_sequence "\'") (string_content "p=") (escape_sequence "\'") (string_content " option") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" (identifier "puVar9") (= "=") (identifier "puVar8")) (; ";")) (} "}")) (else_clause "else {\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }" (else "else") (compound_statement "{\n                  puVar8 = &local_24;\n                  puVar12 = &local_28;\n                  __s2 = (uint *)&DAT_00017bdd;\n                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);\n                  if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                }" ({ "{") (expression_statement "puVar8 = &local_24;" (assignment_expression "puVar8 = &local_24" (identifier "puVar8") (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (expression_statement "puVar12 = &local_28;" (assignment_expression "puVar12 = &local_28" (identifier "puVar12") (= "=") (pointer_expression "&local_28" (& "&") (identifier "local_28"))) (; ";")) (expression_statement "__s2 = (uint *)&DAT_00017bdd;" (assignment_expression "__s2 = (uint *)&DAT_00017bdd" (identifier "__s2") (= "=") (cast_expression "(uint *)&DAT_00017bdd" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00017bdd" (& "&") (identifier "DAT_00017bdd")))) (; ";")) (expression_statement "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);" (assignment_expression "iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8)" (identifier "iVar4") (= "=") (call_expression "__isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8)" (identifier "__isoc99_sscanf") (argument_list "(pbVar10,&DAT_00017bdd,puVar12,puVar8)" (( "(") (identifier "pbVar10") (, ",") (pointer_expression "&DAT_00017bdd" (& "&") (identifier "DAT_00017bdd")) (, ",") (identifier "puVar12") (, ",") (identifier "puVar8") () ")")))) (; ";")) (if_statement "if (iVar4 == 2) {\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }\n                  else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" (if "if") (parenthesized_expression "(iVar4 == 2)" (( "(") (binary_expression "iVar4 == 2" (identifier "iVar4") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                    if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }\n                    pcVar5 = "Bad subpage code value after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" ({ "{") (if_statement "if (local_24 < 0x100) {\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }" (if "if") (parenthesized_expression "(local_24 < 0x100)" (( "(") (binary_expression "local_24 < 0x100" (identifier "local_24") (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n                      *(uint *)(param_1 + 0x2c) = local_24;\n                      *(uint *)(param_1 + 0x28) = local_28;\n                      param_1[8] = 1;\n                      goto LAB_00013bf2;\n                    }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x2c) = local_24;" (assignment_expression "*(uint *)(param_1 + 0x2c) = local_24" (pointer_expression "*(uint *)(param_1 + 0x2c)" (* "*") (cast_expression "(uint *)(param_1 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x28) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x28) = local_28" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (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")) (; ";")) (goto_statement "goto LAB_00013bf2;" (goto "goto") (statement_identifier "LAB_00013bf2") (; ";")) (} "}"))) (expression_statement "pcVar5 = "Bad subpage code value after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad subpage code value after \'p=\' option\n"" (identifier "pcVar5") (= "=") (string_literal ""Bad subpage code value after \'p=\' option\n"" (" """) (string_content "Bad subpage code value after ") (escape_sequence "\'") (string_content "p=") (escape_sequence "\'") (string_content " option") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" (identifier "puVar9") (= "=") (identifier "puVar8")) (; ";")) (} "}")) (else_clause "else {\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" (else "else") (compound_statement "{\n                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";\n                    puVar9 = puVar8;\n                  }" ({ "{") (expression_statement "pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";" (assignment_expression "pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n"" (identifier "pcVar5") (= "=") (string_literal ""Bad page code, subpage code sequence after \'p=\' option\n"" (" """) (string_content "Bad page code, subpage code sequence after ") (escape_sequence "\'") (string_content "p=") (escape_sequence "\'") (string_content " option") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" (identifier "puVar9") (= "=") (identifier "puVar8")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (labeled_statement "LAB_00013d18:\n            pr2serr(pcVar5,__s2,puVar12,puVar9);" (statement_identifier "LAB_00013d18") (: ":") (expression_statement "pr2serr(pcVar5,__s2,puVar12,puVar9);" (call_expression "pr2serr(pcVar5,__s2,puVar12,puVar9)" (identifier "pr2serr") (argument_list "(pcVar5,__s2,puVar12,puVar9)" (( "(") (identifier "pcVar5") (, ",") (identifier "__s2") (, ",") (identifier "puVar12") (, ",") (identifier "puVar9") () ")"))) (; ";"))) (expression_statement "FUN_00013b60();" (call_expression "FUN_00013b60()" (identifier "FUN_00013b60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00013d37;" (goto "goto") (statement_identifier "LAB_00013d37") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }" (else "else") (compound_statement "{\n          __s2 = *(uint **)(param_1 + 0x30);\n          if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }\n          *(uint **)(param_1 + 0x30) = puVar12;\n        }" ({ "{") (expression_statement "__s2 = *(uint **)(param_1 + 0x30);" (assignment_expression "__s2 = *(uint **)(param_1 + 0x30)" (identifier "__s2") (= "=") (pointer_expression "*(uint **)(param_1 + 0x30)" (* "*") (cast_expression "(uint **)(param_1 + 0x30)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (__s2 != (uint *)0x0) {\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }" (if "if") (parenthesized_expression "(__s2 != (uint *)0x0)" (( "(") (binary_expression "__s2 != (uint *)0x0" (identifier "__s2") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";\n            goto LAB_00013d18;\n          }" ({ "{") (expression_statement "pcVar5 = "too many arguments, got: %s, not expecting: %s\n";" (assignment_expression "pcVar5 = "too many arguments, got: %s, not expecting: %s\n"" (identifier "pcVar5") (= "=") (string_literal ""too many arguments, got: %s, not expecting: %s\n"" (" """) (string_content "too many arguments, got: %s, not expecting: %s") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_00013d18;" (goto "goto") (statement_identifier "LAB_00013d18") (; ";")) (} "}"))) (expression_statement "*(uint **)(param_1 + 0x30) = puVar12;" (assignment_expression "*(uint **)(param_1 + 0x30) = puVar12" (pointer_expression "*(uint **)(param_1 + 0x30)" (* "*") (cast_expression "(uint **)(param_1 + 0x30)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar12")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_00013bf2:\n      puVar9 = (uint *)((int)puVar9 + 1);" (statement_identifier "LAB_00013bf2") (: ":") (expression_statement "puVar9 = (uint *)((int)puVar9 + 1);" (assignment_expression "puVar9 = (uint *)((int)puVar9 + 1)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)puVar9 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + 1)" (( "(") (binary_expression "(int)puVar9 + 1" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(param_2 != puVar9)" (( "(") (binary_expression "param_2 != puVar9" (identifier "param_2") (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00013d37:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }" (statement_identifier "LAB_00013d37") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar6;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return uVar6;\n  }" ({ "{") (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}")))) (expression_statement "FUN_00014fb0();" (call_expression "FUN_00014fb0()" (identifier "FUN_00014fb0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

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

{
  type_2 var_7;
  type_3 var_15;
  size_t var_4;
  int var_6;
  char *pcVar5;
  type_3 **ppuVar6;
  type_4 *var_8;
  type_4 *extraout_ECX;
  type_4 *var_21;
  type_4 *var_20;
  type_2 *var_9;
  type_4 *puVar10;
  int var_1;
  bool var_10;
  bool bVar13;
  type_2 bVar14;
  int n;
  type_4 var_12;
  type_4 var_18;
  int var_22;
  type_5 uStack_14;
  type_4 *var_5;
  
  bVar14 = 0;
  uStack_14 = 0x13b99;
  var_22 = *(int *)(var_1 + 0x14);
  if (1 < var_2) {
    var_21 = (type_4 *)0x1;
    do {
      var_5 = (type_4 *)argv[(int)var_21];
      var_4 = var_3((char *)var_5);
      if (var_4 != 0) {
        if ((type_2)*var_5 == 0x2d) {
          var_20 = (type_4 *)((int)var_5 + 1);
          var_6 = var_4 - 1;
          if (var_6 != 0) {
            var_7 = *(type_2 *)var_20;
            while( true ) {
              var_7 = var_7 - 0x36;
              bVar13 = var_7 == 0x40;
              var_10 = var_7 < 0x40;
              if (0x40 < var_7) break;
              var_10 = 0xfffe50b3 < (&switchD_00013c4c::switchdataD_000185d0)[var_7];
              bVar13 = (&switchD_00013c4c::switchdataD_000185d0)[var_7] == 0xfffe50b4;
              switch(var_7) {
              case 0:
                op->do_six = true;
                break;
              default:
                goto _L10;
              case 9:
                op->do_help = op->do_help + 1;
                break;
              case 0xb:
                op->do_all = op->do_all + 2;
                break;
              case 0xe:
                op->do_dbout = true;
                break;
              case 0x12:
              case 0x32:
                op->do_hex = op->do_hex + 2;
                break;
              case 0x16:
                op->do_llbaa = true;
                break;
              case 0x18:
                op->opt_new = true;
                var_6 = 0;
                goto LAB_00013d37;
              case 0x19:
                break;
              case 0x20:
                op->version_given = true;
                break;
              case 0x2b:
                op->do_all = op->do_all + 1;
                break;
              case 0x2e:
                op->do_dbd = true;
                break;
              case 0x2f:
                op->do_examine = true;
                break;
              case 0x30:
                op->do_flexible = true;
                break;
              case 0x36:
                op->do_list = true;
                break;
              case 0x3c:
                op->do_raw = op->do_raw + 2;
                break;
              case 0x40:
                op->verbose_given = true;
                op->verbose = op->verbose + 1;
              }
              var_20 = (type_4 *)((int)var_20 + 1);
              var_6 = var_6 + -1;
              if (var_6 == 0) goto LAB_00013bf2;
              var_7 = *(type_2 *)var_20;
            }
_L10:
            var_8 = (type_4 *)0x2;
            var_9 = &DAT_00017bd4;
            var_5 = var_20;
            do {
              puVar10 = var_5;
              if (var_8 == (type_4 *)0x0) break;
              var_8 = (type_4 *)((int)var_8 + -1);
              puVar10 = (type_4 *)((int)var_5 + (type_4)bVar14 * -2 + 1);
              var_10 = *var_9 < (type_2)*var_5;
              bVar13 = *var_9 == (type_2)*var_5;
              var_9 = var_9 + (type_4)bVar14 * -2 + 1;
              var_5 = puVar10;
            } while (bVar13);
            if ((!var_10 && !bVar13) == var_10) {
              var_9 = (type_2 *)((int)var_20 + 2);
              var_5 = &var_12;
              var_20 = (type_4 *)&DAT_00017be0;
              var_6 = var_11(var_9,&DAT_00017be0,var_5,var_8);
              if ((var_6 == 1) && (var_12 < 4)) {
                op->page_control = var_12;
                goto LAB_00013bf2;
              }
              pcVar5 = "Bad page control after \'c=\' option\n";
              var_21 = var_8;
            }
            else {
              var_8 = (type_4 *)var_13("m=",(char *)var_20,2);
              if (var_8 == (type_4 *)0x0) {
                var_9 = (type_2 *)((int)var_20 + 2);
                var_5 = (type_4 *)&n;
                var_20 = (type_4 *)&DAT_00017bda;
                var_6 = var_11(var_9,&DAT_00017bda,var_5,0);
                if ((var_6 == 1) && ((type_4)n < 0x10000)) {
                  op->maxlen = n;
                  goto LAB_00013bf2;
                }
                pcVar5 = "Bad argument after \'m=\' option\n";
                var_21 = var_8;
              }
              else {
                var_6 = var_13("p=",(char *)var_20,2);
                if (var_6 != 0) {
                  var_6 = var_13("subp=",(char *)var_20,5);
                  if (var_6 == 0) {
                    var_9 = (type_2 *)((int)var_20 + 5);
                    var_5 = &var_12;
                    var_20 = (type_4 *)&DAT_00017be0;
                    var_6 = var_11(var_9,&DAT_00017be0,var_5,puVar10);
                    if ((var_6 != 1) || (0xff < var_12)) {
                      pcVar5 = "Bad sub page code after \'subp=\' option\n";
                      var_21 = puVar10;
                      goto LAB_00013d18;
                    }
                    op->subpg_code = var_12;
                    op->subpg_code_given = true;
                    if (op->pg_code == -1) {
                      op->pg_code = 0;
                    }
                  }
                  else {
                    var_6 = var_13("-old",(char *)var_20,4);
                    if (var_6 != 0) {
                      pcVar5 = "Unrecognized option: %s\n";
                      var_5 = extraout_ECX;
                      var_21 = extraout_ECX;
                      goto LAB_00013d18;
                    }
                  }
                  goto LAB_00013bf2;
                }
                ppuVar6 = var_14();
                var_7 = *(type_2 *)((int)var_20 + 2);
                var_15 = (*ppuVar6)[(char)var_7];
                if (((var_15 & 0x400) != 0) &&
                   ((((var_15 & 0x200) != 0 && ('f' < (char)var_7)) ||
                    (((var_15 & 0x100) != 0 && (var_15 = (type_3)var_7, 'F' < (char)var_7)))))) {
                  var_16("Old format doesn\'t accept mode page acronyms: %s\n",
                          (type_2 *)((int)var_20 + 2),var_15,var_15);
                  var_6 = 1;
                  goto LAB_00013d37;
                }
                var_9 = (type_2 *)((int)var_20 + 2);
                var_8 = (type_4 *)var_17((char *)var_9,0x2c);
                if (var_8 == (type_4 *)0x0) {
                  var_5 = &var_12;
                  var_20 = (type_4 *)&DAT_00017be0;
                  var_6 = var_11(var_9,&DAT_00017be0,var_5,0);
                  if ((var_6 == 1) && (var_12 < 0x40)) {
                    op->pg_code = var_12;
                    goto LAB_00013bf2;
                  }
                  pcVar5 = "Bad page code value after \'p=\' option\n";
                  var_21 = var_8;
                }
                else {
                  var_8 = &var_18;
                  var_5 = &var_12;
                  var_20 = (type_4 *)&DAT_00017bdd;
                  var_6 = var_11(var_9,&DAT_00017bdd,var_5,var_8);
                  if (var_6 == 2) {
                    if (var_18 < 0x100) {
                      op->subpg_code = var_18;
                      op->pg_code = var_12;
                      op->subpg_code_given = true;
                      goto LAB_00013bf2;
                    }
                    pcVar5 = "Bad subpage code value after \'p=\' option\n";
                    var_21 = var_8;
                  }
                  else {
                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";
                    var_21 = var_8;
                  }
                }
              }
            }
LAB_00013d18:
            var_16(pcVar5,var_20,var_5,var_21);
            var_19();
            var_6 = 1;
            goto LAB_00013d37;
          }
        }
        else {
          var_20 = (type_4 *)op->device_name;
          if (var_20 != (type_4 *)0x0) {
            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";
            goto LAB_00013d18;
          }
          op->device_name = (char *)var_5;
        }
      }
LAB_00013bf2:
      var_21 = (type_4 *)((int)var_21 + 1);
    } while ((type_4 *)var_2 != var_21);
  }
  var_6 = 0;
LAB_00013d37:
  if (var_22 == *(int *)(var_1 + 0x14)) {
    return var_6;
  }
                    /* WARNING: Subroutine does not return */
  var_23();
}


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

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

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

{
  byte bVar1;
  ushort uVar2;
  size_t sVar3;
  int iVar4;
  char *pcVar5;
  undefined4 uVar6;
  ushort **ppuVar7;
  uint *puVar8;
  uint *extraout_ECX;
  uint *puVar9;
  uint *__s2;
  byte *pbVar10;
  uint *puVar11;
  int in_GS_OFFSET;
  bool bVar13;
  bool bVar14;
  byte bVar15;
  uint local_2c;
  uint local_28;
  uint local_24;
  int local_20;
  undefined4 uStack_14;
  uint *puVar12;
  
  bVar15 = 0;
  uStack_14 = 0x13b99;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (1 < (int)param_2) {
    puVar9 = (uint *)0x1;
    do {
      puVar12 = *(uint **)(param_3 + (int)puVar9 * 4);
      sVar3 = strlen((char *)puVar12);
      if (sVar3 != 0) {
        if ((byte)*puVar12 == 0x2d) {
          __s2 = (uint *)((int)puVar12 + 1);
          iVar4 = sVar3 - 1;
          if (iVar4 != 0) {
            bVar1 = *(byte *)__s2;
            while( true ) {
              bVar1 = bVar1 - 0x36;
              bVar14 = bVar1 == 0x40;
              bVar13 = bVar1 < 0x40;
              if (0x40 < bVar1) break;
              bVar13 = 0xfffe50b3 < *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4);
              bVar14 = *(uint *)(&DAT_000185d0 + (uint)bVar1 * 4) == 0xfffe50b4;
              switch(bVar1) {
              case 0:
                param_1[6] = 1;
                break;
              default:
                goto LAB_00013c6c;
              case 9:
                *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;
                break;
              case 0xb:
                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 2;
                break;
              case 0xe:
                param_1[1] = 1;
                break;
              case 0x12:
              case 0x32:
                *(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 2;
                break;
              case 0x16:
                param_1[5] = 1;
                break;
              case 0x18:
                param_1[9] = 1;
                uVar6 = 0;
                goto LAB_00013d37;
              case 0x19:
                break;
              case 0x20:
                param_1[0xb] = 1;
                break;
              case 0x2b:
                *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;
                break;
              case 0x2e:
                *param_1 = 1;
                break;
              case 0x2f:
                param_1[2] = 1;
                break;
              case 0x30:
                param_1[3] = 1;
                break;
              case 0x36:
                param_1[4] = 1;
                break;
              case 0x3c:
                *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 2;
                break;
              case 0x40:
                param_1[10] = 1;
                *(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;
              }
              __s2 = (uint *)((int)__s2 + 1);
              iVar4 = iVar4 + -1;
              if (iVar4 == 0) goto LAB_00013bf2;
              bVar1 = *(byte *)__s2;
            }
LAB_00013c6c:
            puVar8 = (uint *)0x2;
            pbVar10 = &DAT_00017bd4;
            puVar12 = __s2;
            do {
              puVar11 = puVar12;
              if (puVar8 == (uint *)0x0) break;
              puVar8 = (uint *)((int)puVar8 + -1);
              puVar11 = (uint *)((int)puVar12 + (uint)bVar15 * -2 + 1);
              bVar13 = *pbVar10 < (byte)*puVar12;
              bVar14 = *pbVar10 == (byte)*puVar12;
              pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
              puVar12 = puVar11;
            } while (bVar14);
            if ((!bVar13 && !bVar14) == bVar13) {
              pbVar10 = (byte *)((int)__s2 + 2);
              puVar12 = &local_28;
              __s2 = (uint *)&DAT_00017be0;
              iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar8);
              if ((iVar4 == 1) && (local_28 < 4)) {
                *(uint *)(param_1 + 0x24) = local_28;
                goto LAB_00013bf2;
              }
              pcVar5 = "Bad page control after \'c=\' option\n";
              puVar9 = puVar8;
            }
            else {
              puVar8 = (uint *)strncmp("m=",(char *)__s2,2);
              if (puVar8 == (uint *)0x0) {
                pbVar10 = (byte *)((int)__s2 + 2);
                puVar12 = &local_2c;
                __s2 = (uint *)&DAT_00017bda;
                iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bda,puVar12,0);
                if ((iVar4 == 1) && (local_2c < 0x10000)) {
                  *(uint *)(param_1 + 0x18) = local_2c;
                  goto LAB_00013bf2;
                }
                pcVar5 = "Bad argument after \'m=\' option\n";
                puVar9 = puVar8;
              }
              else {
                iVar4 = strncmp("p=",(char *)__s2,2);
                if (iVar4 != 0) {
                  iVar4 = strncmp("subp=",(char *)__s2,5);
                  if (iVar4 == 0) {
                    pbVar10 = (byte *)((int)__s2 + 5);
                    puVar12 = &local_28;
                    __s2 = (uint *)&DAT_00017be0;
                    iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,puVar11);
                    if ((iVar4 != 1) || (0xff < local_28)) {
                      pcVar5 = "Bad sub page code after \'subp=\' option\n";
                      puVar9 = puVar11;
                      goto LAB_00013d18;
                    }
                    *(uint *)(param_1 + 0x2c) = local_28;
                    param_1[8] = 1;
                    if (*(int *)(param_1 + 0x28) == -1) {
                      *(undefined4 *)(param_1 + 0x28) = 0;
                    }
                  }
                  else {
                    iVar4 = strncmp("-old",(char *)__s2,4);
                    if (iVar4 != 0) {
                      pcVar5 = "Unrecognized option: %s\n";
                      puVar12 = extraout_ECX;
                      puVar9 = extraout_ECX;
                      goto LAB_00013d18;
                    }
                  }
                  goto LAB_00013bf2;
                }
                ppuVar7 = __ctype_b_loc();
                bVar1 = *(byte *)((int)__s2 + 2);
                uVar2 = (*ppuVar7)[(char)bVar1];
                if (((uVar2 & 0x400) != 0) &&
                   ((((uVar2 & 0x200) != 0 && ('f' < (char)bVar1)) ||
                    (((uVar2 & 0x100) != 0 && (uVar2 = (ushort)bVar1, 'F' < (char)bVar1)))))) {
                  pr2serr("Old format doesn\'t accept mode page acronyms: %s\n",
                          (byte *)((int)__s2 + 2),uVar2,uVar2);
                  uVar6 = 1;
                  goto LAB_00013d37;
                }
                pbVar10 = (byte *)((int)__s2 + 2);
                puVar8 = (uint *)strchr((char *)pbVar10,0x2c);
                if (puVar8 == (uint *)0x0) {
                  puVar12 = &local_28;
                  __s2 = (uint *)&DAT_00017be0;
                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017be0,puVar12,0);
                  if ((iVar4 == 1) && (local_28 < 0x40)) {
                    *(uint *)(param_1 + 0x28) = local_28;
                    goto LAB_00013bf2;
                  }
                  pcVar5 = "Bad page code value after \'p=\' option\n";
                  puVar9 = puVar8;
                }
                else {
                  puVar8 = &local_24;
                  puVar12 = &local_28;
                  __s2 = (uint *)&DAT_00017bdd;
                  iVar4 = __isoc99_sscanf(pbVar10,&DAT_00017bdd,puVar12,puVar8);
                  if (iVar4 == 2) {
                    if (local_24 < 0x100) {
                      *(uint *)(param_1 + 0x2c) = local_24;
                      *(uint *)(param_1 + 0x28) = local_28;
                      param_1[8] = 1;
                      goto LAB_00013bf2;
                    }
                    pcVar5 = "Bad subpage code value after \'p=\' option\n";
                    puVar9 = puVar8;
                  }
                  else {
                    pcVar5 = "Bad page code, subpage code sequence after \'p=\' option\n";
                    puVar9 = puVar8;
                  }
                }
              }
            }
LAB_00013d18:
            pr2serr(pcVar5,__s2,puVar12,puVar9);
            FUN_00013b60();
            uVar6 = 1;
            goto LAB_00013d37;
          }
        }
        else {
          __s2 = *(uint **)(param_1 + 0x30);
          if (__s2 != (uint *)0x0) {
            pcVar5 = "too many arguments, got: %s, not expecting: %s\n";
            goto LAB_00013d18;
          }
          *(uint **)(param_1 + 0x30) = puVar12;
        }
      }
LAB_00013bf2:
      puVar9 = (uint *)((int)puVar9 + 1);
    } while (param_2 != puVar9);
  }
  uVar6 = 0;
LAB_00013d37:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar6;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00014fb0();
}

