
/* WARNING: Removing unreachable block (ram,0x000111e0) */
/* WARNING: Removing unreachable block (ram,0x000110a4) */
/* WARNING: Removing unreachable block (ram,0x000110d4) */
/* WARNING: Removing unreachable block (ram,0x000110fc) */
/* WARNING: Removing unreachable block (ram,0x00010d6c) */
/* WARNING: Removing unreachable block (ram,0x00011070) */
/* WARNING: Removing unreachable block (ram,0x00010d74) */
/* WARNING: Removing unreachable block (ram,0x00010fd4) */
/* WARNING: Removing unreachable block (ram,0x00010db0) */
/* WARNING: Removing unreachable block (ram,0x00010dfc) */
/* WARNING: Removing unreachable block (ram,0x00010e00) */
/* WARNING: Removing unreachable block (ram,0x00010e2c) */
/* WARNING: Removing unreachable block (ram,0x00010e44) */
/* WARNING: Removing unreachable block (ram,0x00011210) */
/* WARNING: Removing unreachable block (ram,0x00010ed0) */
/* WARNING: Removing unreachable block (ram,0x00011118) */
/* WARNING: Removing unreachable block (ram,0x00011128) */
/* WARNING: Removing unreachable block (ram,0x00011144) */
/* WARNING: Removing unreachable block (ram,0x00011238) */
/* WARNING: Removing unreachable block (ram,0x00010edc) */
/* WARNING: Removing unreachable block (ram,0x00010ee0) */
/* WARNING: Removing unreachable block (ram,0x00010eec) */
/* WARNING: Removing unreachable block (ram,0x00011254) */
/* WARNING: Removing unreachable block (ram,0x00010f00) */
/* WARNING: Removing unreachable block (ram,0x00010f74) */
/* WARNING: Removing unreachable block (ram,0x00010f7c) */
/* WARNING: Removing unreachable block (ram,0x00010f94) */

int main(int argc,char **argv)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  undefined *puVar6;
  undefined *puVar7;
  undefined *puVar8;
  int option_index;
  uint8_t zo_cdb [16];
  uint8_t sense_b [64];
  char b [80];
  
  puVar2 = PTR___stack_chk_guard_00022188;
  puVar1 = PTR_optarg_00022134;
  puVar6 = PTR_00022114;
  iVar3 = *(int *)PTR___stack_chk_guard_00022188;
  puVar7 = PTR_00022114 + 0x1764;
  option_index = 0;
  iVar4 = (*(code *)PTR_getopt_long_00022170)
                    (argc,argv,puVar7,PTR_DAT_00022108 + 0x2010,&option_index);
  puVar8 = PTR_optind_00022180;
  if (iVar4 == -1) {
    if (*(int *)PTR_optind_00022180 < argc) {
      iVar4 = *(int *)PTR_optind_00022180 + 1;
      *(int *)PTR_optind_00022180 = iVar4;
      if (iVar4 < argc) {
        puVar6 = PTR_00022114 + 0x1ba0;
        do {
          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);
          iVar4 = *(int *)puVar8 + 1;
          *(int *)puVar8 = iVar4;
        } while (iVar4 < argc);
        goto LAB_00010cec;
      }
    }
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);
    puVar6 = (undefined *)0x1f;
  }
  else {
    if (iVar4 - 0x3fU < 0x3c) {
                    /* WARNING: Could not emulate address calculation at 0x00010b94 */
                    /* WARNING: Treating indirect jump as call */
      iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))();
      return iVar3;
    }
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar4);
    puVar8 = puVar7;
LAB_00010cec:
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);
    puVar6 = (undefined *)0x1;
  }
  while (iVar3 != *(int *)puVar2) {
    (*(code *)PTR___stack_chk_fail_0002217c)();
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,argv);
    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,argv,0);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,argv);
    iVar4 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar8);
    if (iVar4 < 0) {
      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar4);
      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);
    }
    iVar4 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);
    if (iVar4 == 0) {
      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);
    }
    puVar6 = puVar1;
    if ((int)puVar1 < 0) {
      puVar6 = (undefined *)0x63;
    }
  }
  return (int)puVar6;
}



/* WARNING: Removing unreachable block (ram,0x000111e0) */
/* WARNING: Removing unreachable block (ram,0x000110a4) */
/* WARNING: Removing unreachable block (ram,0x000110d4) */
/* WARNING: Removing unreachable block (ram,0x000110fc) */
/* WARNING: Removing unreachable block (ram,0x00010d6c) */
/* WARNING: Removing unreachable block (ram,0x00011070) */
/* WARNING: Removing unreachable block (ram,0x00010d74) */
/* WARNING: Removing unreachable block (ram,0x00010fd4) */
/* WARNING: Removing unreachable block (ram,0x00010db0) */
/* WARNING: Removing unreachable block (ram,0x00010dfc) */
/* WARNING: Removing unreachable block (ram,0x00010e00) */
/* WARNING: Removing unreachable block (ram,0x00010e2c) */
/* WARNING: Removing unreachable block (ram,0x00010e44) */
/* WARNING: Removing unreachable block (ram,0x00011210) */
/* WARNING: Removing unreachable block (ram,0x00010ed0) */
/* WARNING: Removing unreachable block (ram,0x00011118) */
/* WARNING: Removing unreachable block (ram,0x00011128) */
/* WARNING: Removing unreachable block (ram,0x00011144) */
/* WARNING: Removing unreachable block (ram,0x00011238) */
/* WARNING: Removing unreachable block (ram,0x00010edc) */
/* WARNING: Removing unreachable block (ram,0x00010ee0) */
/* WARNING: Removing unreachable block (ram,0x00010eec) */
/* WARNING: Removing unreachable block (ram,0x00011254) */
/* WARNING: Removing unreachable block (ram,0x00010f00) */
/* WARNING: Removing unreachable block (ram,0x00010f74) */
/* WARNING: Removing unreachable block (ram,0x00010f7c) */
/* WARNING: Removing unreachable block (ram,0x00010f94) */

undefined * main(int param_1,int param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  undefined *puVar4;
  undefined4 uVar5;
  undefined *puVar6;
  undefined *puVar7;
  undefined4 local_d8 [43];
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_00022188;
  puVar1 = PTR_optarg_00022134;
  puVar4 = PTR_00022114;
  local_2c = *(int *)PTR___stack_chk_guard_00022188;
  puVar6 = PTR_00022114 + 0x1764;
  local_d8[0] = 0;
  iVar3 = (*(code *)PTR_getopt_long_00022170)
                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);
  puVar7 = PTR_optind_00022180;
  if (iVar3 == -1) {
    if (*(int *)PTR_optind_00022180 < param_1) {
      iVar3 = *(int *)PTR_optind_00022180 + 1;
      *(int *)PTR_optind_00022180 = iVar3;
      if (iVar3 < param_1) {
        puVar4 = PTR_00022114 + 0x1ba0;
        do {
          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));
          iVar3 = *(int *)puVar7 + 1;
          *(int *)puVar7 = iVar3;
        } while (iVar3 < param_1);
        goto LAB_00010cec;
      }
    }
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);
    puVar4 = (undefined *)0x1f;
  }
  else {
    if (iVar3 - 0x3fU < 0x3c) {
                    /* WARNING: Could not emulate address calculation at 0x00010b94 */
                    /* WARNING: Treating indirect jump as call */
      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();
      return puVar4;
    }
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);
    puVar7 = puVar6;
LAB_00010cec:
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);
    puVar4 = (undefined *)0x1;
  }
  while (local_2c != *(int *)puVar2) {
    (*(code *)PTR___stack_chk_fail_0002217c)();
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);
    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);
    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);
    if (iVar3 < 0) {
      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);
      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);
    }
    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);
    if (iVar3 == 0) {
      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);
    }
    puVar4 = puVar1;
    if ((int)puVar1 < 0) {
      puVar4 = (undefined *)0x63;
    }
  }
  return puVar4;
}


lui gp,0x2
addiu gp,gp,-0x69d0
addu gp,gp,t9
addiu sp,sp,-0x130
lw v1,-0x7fac(gp)
sw s6,0x120(sp)
sw s2,0x110(sp)
sw s1,0x10c(sp)
sw s0,0x108(sp)
lw s6,-0x7f58(gp)
lw s1,-0x7fd8(gp)
lw s0,-0x7fcc(gp)
lw s2,-0x7fcc(gp)
lw v0,0x0(s6)
addiu s1,s1,0x2010
sw s8,0x128(sp)
addiu s0,s0,0x1764
sw s7,0x124(sp)
or s8,zero,zero
sw s5,0x11c(sp)
or s7,zero,zero
addiu s5,sp,0x58
sw s4,0x118(sp)
addiu s2,s2,0x1e20
sw s3,0x114(sp)
sw gp,0x20(sp)
or s3,a0,zero
sw ra,0x12c(sp)
or s4,a1,zero
sw zero,0x50(sp)
sw zero,0x54(sp)
sw zero,0x4c(sp)
sw v1,0x2c(sp)
sw zero,0x38(sp)
sw zero,0x34(sp)
sw zero,0x44(sp)
sw v0,0x104(sp)
sw zero,0x40(sp)
sw zero,0x30(sp)
sw zero,0x3c(sp)
sw zero,0x48(sp)
lw t9,-0x7f70(gp)
or a0,s3,zero
or a3,s1,zero
sw s5,0x10(sp)
or a2,s0,zero
sw zero,0x58(sp)
jalr t9
_or a1,s4,zero
li a0,-0x1
lw gp,0x20(sp)
beq v0,a0,0x00010d18
_or v1,v0,zero
addiu v0,v0,-0x3f
sltiu a0,v0,0x3c
beq a0,zero,0x00010cd0
_sll v0,v0,0x2
addu v0,s2,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
lw a0,0x104(sp)
or v0,v1,zero
lw v1,0x0(s6)
bne a0,v1,0x00011298
_lw ra,0x12c(sp)
lw s8,0x128(sp)
lw s7,0x124(sp)
lw s6,0x120(sp)
lw s5,0x11c(sp)
lw s4,0x118(sp)
lw s3,0x114(sp)
lw s2,0x110(sp)
lw s1,0x10c(sp)
lw s0,0x108(sp)
jr ra
_addiu sp,sp,0x130
lw a0,-0x7fcc(gp)
or a1,v1,zero
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1b7c
lw gp,0x20(sp)
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x17b4
lw gp,0x20(sp)
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1860
li v1,0x1
b 0x00010c48
_lw gp,0x20(sp)
lw s0,-0x7f60(gp)
lw v0,0x0(s0)
slt a0,v0,s3
bne a0,zero,0x00010f1c
_sll a0,v0,0x2
or s1,zero,zero
lw v0,0x34(sp)
bne v0,zero,0x00010f74
_lw v0,0x38(sp)
bne v0,zero,0x00010f94
_lw a1,-0x7fcc(gp)
lw v0,0x3c(sp)
lw a0,0x30(sp)
addu s2,v0,a0
lw a0,0x40(sp)
li v0,0x1
addu s2,s2,a0
lw a0,0x44(sp)
addu s2,s2,a0
bne s2,v0,0x00010ff4
_lw t9,-0x7f68(gp)
beq s1,zero,0x00011070
_lw t0,-0x7fd8(gp)
sll v0,s7,0x2
lw t9,-0x7fa8(gp)
or a1,zero,zero
sw v1,0x2c(sp)
or a2,s8,zero
addiu t0,t0,0x1fbc
or a0,s1,zero
addu v0,v0,t0
lw v0,0x0(v0)
jalr t9
_sw v0,0x30(sp)
lw gp,0x20(sp)
or s0,v0,zero
bltz v0,0x00010fd4
_lw v1,0x2c(sp)
li v0,-0x6c
lw a2,0x54(sp)
lw a1,0x50(sp)
sb v0,0x64(sp)
addiu v0,sp,0x66
sh zero,0x6e(sp)
sb s7,0x65(sp)
sh zero,0x72(sp)
sw a1,0x58(sp)
sw a2,0x5c(sp)
swl a1,0x66(sp)
swr a1,0x3(v0)
swl a2,0x4(v0)
swr a2,0x7(v0)
lw v0,0x4c(sp)
sh v0,0x70(sp)
lw v0,0x48(sp)
beq v0,zero,0x00010e00
_lw t9,-0x7f98(gp)
sb s2,0x72(sp)
addiu s4,sp,0xb4
li a3,0x40
sw v1,0x2c(sp)
li a2,-0x1
sw s4,0x10(sp)
li a0,0x94
jalr t9
_or a1,s7,zero
lw gp,0x20(sp)
bne s8,zero,0x000110a4
_lw v1,0x2c(sp)
lw t9,-0x7f54(gp)
jalr t9
_sw v1,0x2c(sp)
lw gp,0x20(sp)
beq v0,zero,0x000112a4
_or s2,v0,zero
lw t9,-0x7fb0(gp)
li a2,0x10
addiu a1,sp,0x64
jalr t9
_or a0,v0,zero
addiu s3,sp,0x74
lw gp,0x20(sp)
li a2,0x40
or a1,s3,zero
lw t9,-0x7f8c(gp)
jalr t9
_or a0,s2,zero
li a2,0x3c
lw gp,0x20(sp)
or a3,s8,zero
or a1,s0,zero
lw t9,-0x7f7c(gp)
jalr t9
_or a0,s2,zero
or a3,zero,zero
lw gp,0x20(sp)
or a2,v0,zero
li v0,0x1
sw s5,0x1c(sp)
or a0,s2,zero
sw s8,0x18(sp)
sw v0,0x14(sp)
sw s3,0x10(sp)
lw a1,-0x7fcc(gp)
lw t9,-0x7f94(gp)
jalr t9
_addiu a1,a1,0x1cc0
li v1,-0x1
beq v0,v1,0x00011210
_lw gp,0x20(sp)
li v1,-0x2
beq v0,v1,0x00011118
_lw v1,0x58(sp)
lw t9,-0x7f80(gp)
jalr t9
_or a0,s2,zero
lw gp,0x20(sp)
lw t9,-0x7f5c(gp)
jalr t9
_or a0,s0,zero
bltz v0,0x00011254
_lw gp,0x20(sp)
or v1,zero,zero
beq s8,zero,0x00011034
_lw a0,-0x7fcc(gp)
bgez v1,0x00010c48
_nop
b 0x00010c48
_li v1,0x63
addiu v0,v0,0x1
addu a0,s4,a0
slt a1,v0,s3
lw s1,0x0(a0)
beq a1,zero,0x00010d30
_sw v0,0x0(s0)
lw s1,-0x7fcc(gp)
addiu s1,s1,0x1ba0
sll v0,v0,0x2
lw t9,-0x7f68(gp)
or a0,s1,zero
addu v0,s4,v0
jalr t9
_lw a1,0x0(v0)
lw v0,0x0(s0)
lw gp,0x20(sp)
addiu v0,v0,0x1
slt v1,v0,s3
bne v1,zero,0x00010f3c
_sw v0,0x0(s0)
b 0x00010cec
_lw a0,-0x7fcc(gp)
beq v0,zero,0x00010d48
_lw v0,0x3c(sp)
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1bc0
lw gp,0x20(sp)
lw a1,-0x7fcc(gp)
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
addiu a1,a1,0x1bf4
jalr t9
_addiu a0,a0,0x1c04
or v1,zero,zero
b 0x00010c48
_lw gp,0x20(sp)
bne s8,zero,0x000111e0
_subu s0,zero,v0
lw t9,-0x7f88(gp)
jalr t9
_or a0,s0,zero
lw gp,0x20(sp)
b 0x00010f04
_or v1,v0,zero
lw a0,-0x7fcc(gp)
jalr t9
_addiu a0,a0,0x1c14
lw gp,0x20(sp)
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x17b4
lw gp,0x20(sp)
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1860
li v1,0x1f
b 0x00010c48
_lw gp,0x20(sp)
or a1,v1,zero
lw t9,-0x7f78(gp)
sw v1,0x2c(sp)
jalr t9
_addiu a0,a0,0x1d14
lw gp,0x20(sp)
bne v0,zero,0x00010f0c
_lw v1,0x2c(sp)
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1d28
lw gp,0x20(sp)
b 0x00010f0c
_lw v1,0x2c(sp)
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1c68
b 0x00010ce8
_lw gp,0x20(sp)
lw a0,-0x7fcc(gp)
or a1,s4,zero
lw t9,-0x7f68(gp)
addiu s7,sp,0x64
or s1,zero,zero
addiu a0,a0,0x1c94
jalr t9
_li s3,0x10
lw gp,0x20(sp)
lw v1,0x2c(sp)
lw s2,-0x7fcc(gp)
addiu s2,s2,0x1ca4
addu v0,s7,s1
lw t9,-0x7f68(gp)
addiu s1,s1,0x1
sw v1,0x2c(sp)
or a0,s2,zero
jalr t9
_lbu a1,0x0(v0)
lw gp,0x20(sp)
bne s1,s3,0x000110d4
_lw v1,0x2c(sp)
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1c7c
lw gp,0x20(sp)
b 0x00010e2c
_lw v1,0x2c(sp)
addiu v0,v1,-0x14
sltiu v0,v0,0x2
bne v0,zero,0x00010ee0
_lw t9,-0x7f80(gp)
lw t9,-0x7f80(gp)
or a0,s2,zero
jalr t9
_sw v1,0x2c(sp)
lw v1,0x2c(sp)
beq v1,zero,0x00010eec
_lw gp,0x20(sp)
li v0,0x9
beq v1,v0,0x00011238
_lw t9,-0x7f68(gp)
lw t9,-0x7f9c(gp)
li a1,0x50
or a0,v1,zero
sw v1,0x2c(sp)
or a2,s4,zero
jalr t9
_or a3,s8,zero
or a2,s4,zero
lw gp,0x20(sp)
lw a1,0x30(sp)
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1cf0
lw gp,0x20(sp)
lw v1,0x2c(sp)
lw t9,-0x7f5c(gp)
or a0,s0,zero
jalr t9
_sw v1,0x2c(sp)
lw gp,0x20(sp)
bgez v0,0x00010f04
_lw v1,0x2c(sp)
lw t9,-0x7f90(gp)
subu a0,zero,v0
jalr t9
_sw v1,0x2c(sp)
lw gp,0x20(sp)
or a1,v0,zero
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1d00
lw gp,0x20(sp)
b 0x00010f04
_lw v1,0x2c(sp)
lw t9,-0x7f90(gp)
jalr t9
_or a0,s0,zero
or a1,s1,zero
lw gp,0x20(sp)
or a2,v0,zero
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1c80
b 0x00010fdc
_lw gp,0x20(sp)
lw t9,-0x7f48(gp)
jalr t9
_or a0,s2,zero
lw gp,0x20(sp)
lw t9,-0x7f88(gp)
jalr t9
_or a0,v0,zero
lw gp,0x20(sp)
b 0x00011128
_or v1,v0,zero
lw a0,-0x7fcc(gp)
lw a1,0x30(sp)
jalr t9
_addiu a0,a0,0x1cd4
lw gp,0x20(sp)
b 0x00011190
_lw v1,0x2c(sp)
lw t9,-0x7f90(gp)
subu s0,zero,v0
jalr t9
_or a0,s0,zero
lw gp,0x20(sp)
or a1,v0,zero
lw a0,-0x7fcc(gp)
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1d00
lw gp,0x20(sp)
lw t9,-0x7f88(gp)
jalr t9
_or a0,s0,zero
lw gp,0x20(sp)
b 0x00010f04
_or v1,v0,zero
lw t9,-0x7f64(gp)
jalr t9
_nop
lw a0,-0x7fcc(gp)
or a1,s4,zero
lw t9,-0x7f68(gp)
jalr t9
_addiu a0,a0,0x1cac
lw gp,0x20(sp)
b 0x00011150
_lw v1,0x2c(sp)
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000111e0) */\n/* WARNING: Removing unreachable block (ram,0x000110a4) */\n/* WARNING: Removing unreachable block (ram,0x000110d4) */\n/* WARNING: Removing unreachable block (ram,0x000110fc) */\n/* WARNING: Removing unreachable block (ram,0x00010d6c) */\n/* WARNING: Removing unreachable block (ram,0x00011070) */\n/* WARNING: Removing unreachable block (ram,0x00010d74) */\n/* WARNING: Removing unreachable block (ram,0x00010fd4) */\n/* WARNING: Removing unreachable block (ram,0x00010db0) */\n/* WARNING: Removing unreachable block (ram,0x00010dfc) */\n/* WARNING: Removing unreachable block (ram,0x00010e00) */\n/* WARNING: Removing unreachable block (ram,0x00010e2c) */\n/* WARNING: Removing unreachable block (ram,0x00010e44) */\n/* WARNING: Removing unreachable block (ram,0x00011210) */\n/* WARNING: Removing unreachable block (ram,0x00010ed0) */\n/* WARNING: Removing unreachable block (ram,0x00011118) */\n/* WARNING: Removing unreachable block (ram,0x00011128) */\n/* WARNING: Removing unreachable block (ram,0x00011144) */\n/* WARNING: Removing unreachable block (ram,0x00011238) */\n/* WARNING: Removing unreachable block (ram,0x00010edc) */\n/* WARNING: Removing unreachable block (ram,0x00010ee0) */\n/* WARNING: Removing unreachable block (ram,0x00010eec) */\n/* WARNING: Removing unreachable block (ram,0x00011254) */\n/* WARNING: Removing unreachable block (ram,0x00010f00) */\n/* WARNING: Removing unreachable block (ram,0x00010f74) */\n/* WARNING: Removing unreachable block (ram,0x00010f7c) */\n/* WARNING: Removing unreachable block (ram,0x00010f94) */\n\nundefined * main(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined4 local_d8 [43];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar4 = PTR_00022114;\n  local_2c = *(int *)PTR___stack_chk_guard_00022188;\n  puVar6 = PTR_00022114 + 0x1764;\n  local_d8[0] = 0;\n  iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);\n  puVar7 = PTR_optind_00022180;\n  if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }\n  while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }\n  return puVar4;\n}\n\n" comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment (function_definition "undefined * main(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined4 local_d8 [43];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar4 = PTR_00022114;\n  local_2c = *(int *)PTR___stack_chk_guard_00022188;\n  puVar6 = PTR_00022114 + 0x1764;\n  local_d8[0] = 0;\n  iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);\n  puVar7 = PTR_optind_00022180;\n  if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }\n  while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }\n  return puVar4;\n}" type_identifier (pointer_declarator "* main(int param_1,int param_2)" * (function_declarator "main(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined4 local_d8 [43];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar4 = PTR_00022114;\n  local_2c = *(int *)PTR___stack_chk_guard_00022188;\n  puVar6 = PTR_00022114 + 0x1764;\n  local_d8[0] = 0;\n  iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);\n  puVar7 = PTR_optind_00022180;\n  if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }\n  while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }\n  return puVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 local_d8 [43];" type_identifier (array_declarator "local_d8 [43]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_00022188;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00022188" identifier = identifier) ;) (expression_statement "puVar1 = PTR_optarg_00022134;" (assignment_expression "puVar1 = PTR_optarg_00022134" identifier = identifier) ;) (expression_statement "puVar4 = PTR_00022114;" (assignment_expression "puVar4 = PTR_00022114" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00022188;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00022188" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00022188" * (cast_expression "(int *)PTR___stack_chk_guard_00022188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar6 = PTR_00022114 + 0x1764;" (assignment_expression "puVar6 = PTR_00022114 + 0x1764" identifier = (binary_expression "PTR_00022114 + 0x1764" identifier + number_literal)) ;) (expression_statement "local_d8[0] = 0;" (assignment_expression "local_d8[0] = 0" (subscript_expression "local_d8[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);" (assignment_expression "iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8)" identifier = (call_expression "(*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8)" (parenthesized_expression "(*(code *)PTR_getopt_long_00022170)" ( (pointer_expression "*(code *)PTR_getopt_long_00022170" * (cast_expression "(code *)PTR_getopt_long_00022170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8)" ( identifier , identifier , identifier , (binary_expression "PTR_DAT_00022108 + 0x2010" identifier + number_literal) , identifier )))) ;) (expression_statement "puVar7 = PTR_optind_00022180;" (assignment_expression "puVar7 = PTR_optind_00022180" identifier = identifier) ;) (if_statement "if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }" { (if_statement "if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }" if (parenthesized_expression "(*(int *)PTR_optind_00022180 < param_1)" ( (binary_expression "*(int *)PTR_optind_00022180 < param_1" (pointer_expression "*(int *)PTR_optind_00022180" * (cast_expression "(int *)PTR_optind_00022180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) )) (compound_statement "{\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }" { (expression_statement "iVar3 = *(int *)PTR_optind_00022180 + 1;" (assignment_expression "iVar3 = *(int *)PTR_optind_00022180 + 1" identifier = (binary_expression "*(int *)PTR_optind_00022180 + 1" (pointer_expression "*(int *)PTR_optind_00022180" * (cast_expression "(int *)PTR_optind_00022180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "*(int *)PTR_optind_00022180 = iVar3;" (assignment_expression "*(int *)PTR_optind_00022180 = iVar3" (pointer_expression "*(int *)PTR_optind_00022180" * (cast_expression "(int *)PTR_optind_00022180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }" if (parenthesized_expression "(iVar3 < param_1)" ( (binary_expression "iVar3 < param_1" identifier < identifier) )) (compound_statement "{\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }" { (expression_statement "puVar4 = PTR_00022114 + 0x1ba0;" (assignment_expression "puVar4 = PTR_00022114 + 0x1ba0" identifier = (binary_expression "PTR_00022114 + 0x1ba0" identifier + number_literal)) ;) (do_statement "do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);" do (compound_statement "{\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        }" { (expression_statement "(*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));" (call_expression "(*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4))" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,*(undefined4 *)(param_2 + iVar3 * 4))" ( identifier , (pointer_expression "*(undefined4 *)(param_2 + iVar3 * 4)" * (cast_expression "(undefined4 *)(param_2 + iVar3 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar3 * 4)" ( (binary_expression "param_2 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) ))) ;) (expression_statement "iVar3 = *(int *)puVar7 + 1;" (assignment_expression "iVar3 = *(int *)puVar7 + 1" identifier = (binary_expression "*(int *)puVar7 + 1" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "*(int *)puVar7 = iVar3;" (assignment_expression "*(int *)puVar7 = iVar3" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }) while (parenthesized_expression "(iVar3 < param_1)" ( (binary_expression "iVar3 < param_1" identifier < identifier) )) ;) (goto_statement "goto LAB_00010cec;" goto statement_identifier ;) })) })) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1c14)" ( (binary_expression "PTR_00022114 + 0x1c14" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x17b4)" ( (binary_expression "PTR_00022114 + 0x17b4" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1860)" ( (binary_expression "PTR_00022114 + 0x1860" identifier + number_literal) ))) ;) (expression_statement "puVar4 = (undefined *)0x1f;" (assignment_expression "puVar4 = (undefined *)0x1f" identifier = (cast_expression "(undefined *)0x1f" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }" else (compound_statement "{\n    if (iVar3 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }" { (if_statement "if (iVar3 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }" if (parenthesized_expression "(iVar3 - 0x3fU < 0x3c)" ( (binary_expression "iVar3 - 0x3fU < 0x3c" (binary_expression "iVar3 - 0x3fU" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }" { comment comment (expression_statement "puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();" (assignment_expression "puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))()" identifier = (cast_expression "(undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))()" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20))" ( (binary_expression "&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" * (cast_expression "(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" ( (binary_expression "puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20" (binary_expression "puVar4 + (iVar3 - 0x3fU) * 4" identifier + (binary_expression "(iVar3 - 0x3fU) * 4" (parenthesized_expression "(iVar3 - 0x3fU)" ( (binary_expression "iVar3 - 0x3fU" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar4;" return identifier ;) })) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1b7c,iVar3)" ( (binary_expression "PTR_00022114 + 0x1b7c" identifier + number_literal) , identifier ))) ;) (expression_statement "puVar7 = puVar6;" (assignment_expression "puVar7 = puVar6" identifier = identifier) ;) (labeled_statement "LAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" statement_identifier : (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x17b4)" ( (binary_expression "PTR_00022114 + 0x17b4" identifier + number_literal) ))) ;)) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1860)" ( (binary_expression "PTR_00022114 + 0x1860" identifier + number_literal) ))) ;) (expression_statement "puVar4 = (undefined *)0x1;" (assignment_expression "puVar4 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (while_statement "while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }" while (parenthesized_expression "(local_2c != *(int *)puVar2)" ( (binary_expression "local_2c != *(int *)puVar2" identifier != (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }" { (expression_statement "(*(code *)PTR___stack_chk_fail_0002217c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002217c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002217c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002217c" * (cast_expression "(code *)PTR___stack_chk_fail_0002217c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1cac,param_2)" ( (binary_expression "PTR_00022114 + 0x1cac" identifier + number_literal) , identifier ))) ;) (expression_statement "(*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);" (call_expression "(*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0)" (parenthesized_expression "(*(code *)PTR_sg_get_category_sense_str_00022144)" ( (pointer_expression "*(code *)PTR_sg_get_category_sense_str_00022144" * (cast_expression "(code *)PTR_sg_get_category_sense_str_00022144" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1,0x50,param_2,0)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1cf0,0,param_2)" ( (binary_expression "PTR_00022114 + 0x1cf0" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);" (assignment_expression "iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7)" identifier = (call_expression "(*(code *)PTR_sg_cmds_close_device_00022184)(puVar7)" (parenthesized_expression "(*(code *)PTR_sg_cmds_close_device_00022184)" ( (pointer_expression "*(code *)PTR_sg_cmds_close_device_00022184" * (cast_expression "(code *)PTR_sg_cmds_close_device_00022184" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }" { (expression_statement "uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);" (assignment_expression "uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3)" identifier = (call_expression "(*(code *)PTR_safe_strerror_00022150)(-iVar3)" (parenthesized_expression "(*(code *)PTR_safe_strerror_00022150)" ( (pointer_expression "*(code *)PTR_safe_strerror_00022150" * (cast_expression "(code *)PTR_safe_strerror_00022150" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(-iVar3)" ( (unary_expression "-iVar3" - identifier) )))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1d00,uVar5)" ( (binary_expression "PTR_00022114 + 0x1d00" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);" (assignment_expression "iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1)" identifier = (call_expression "(*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1)" (parenthesized_expression "(*(code *)PTR_sg_if_can2stderr_00022168)" ( (pointer_expression "*(code *)PTR_sg_if_can2stderr_00022168" * (cast_expression "(code *)PTR_sg_if_can2stderr_00022168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1d14,puVar1)" ( (binary_expression "PTR_00022114 + 0x1d14" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1d28)" ( (binary_expression "PTR_00022114 + 0x1d28" identifier + number_literal) ))) ;) })) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (if_statement "if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }" if (parenthesized_expression "((int)puVar1 < 0)" ( (binary_expression "(int)puVar1 < 0" (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      puVar4 = (undefined *)0x63;\n    }" { (expression_statement "puVar4 = (undefined *)0x63;" (assignment_expression "puVar4 = (undefined *)0x63" identifier = (cast_expression "(undefined *)0x63" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (return_statement "return puVar4;" return identifier ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000111e0) */\n/* WARNING: Removing unreachable block (ram,0x000110a4) */\n/* WARNING: Removing unreachable block (ram,0x000110d4) */\n/* WARNING: Removing unreachable block (ram,0x000110fc) */\n/* WARNING: Removing unreachable block (ram,0x00010d6c) */\n/* WARNING: Removing unreachable block (ram,0x00011070) */\n/* WARNING: Removing unreachable block (ram,0x00010d74) */\n/* WARNING: Removing unreachable block (ram,0x00010fd4) */\n/* WARNING: Removing unreachable block (ram,0x00010db0) */\n/* WARNING: Removing unreachable block (ram,0x00010dfc) */\n/* WARNING: Removing unreachable block (ram,0x00010e00) */\n/* WARNING: Removing unreachable block (ram,0x00010e2c) */\n/* WARNING: Removing unreachable block (ram,0x00010e44) */\n/* WARNING: Removing unreachable block (ram,0x00011210) */\n/* WARNING: Removing unreachable block (ram,0x00010ed0) */\n/* WARNING: Removing unreachable block (ram,0x00011118) */\n/* WARNING: Removing unreachable block (ram,0x00011128) */\n/* WARNING: Removing unreachable block (ram,0x00011144) */\n/* WARNING: Removing unreachable block (ram,0x00011238) */\n/* WARNING: Removing unreachable block (ram,0x00010edc) */\n/* WARNING: Removing unreachable block (ram,0x00010ee0) */\n/* WARNING: Removing unreachable block (ram,0x00010eec) */\n/* WARNING: Removing unreachable block (ram,0x00011254) */\n/* WARNING: Removing unreachable block (ram,0x00010f00) */\n/* WARNING: Removing unreachable block (ram,0x00010f74) */\n/* WARNING: Removing unreachable block (ram,0x00010f7c) */\n/* WARNING: Removing unreachable block (ram,0x00010f94) */\n\nint main(int argc,char **argv)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int option_index;\n  uint8_t zo_cdb [16];\n  uint8_t sense_b [64];\n  char b [80];\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar6 = PTR_00022114;\n  iVar3 = *(int *)PTR___stack_chk_guard_00022188;\n  puVar7 = PTR_00022114 + 0x1764;\n  option_index = 0;\n  iVar4 = (*(code *)PTR_getopt_long_00022170)\n                    (argc,argv,puVar7,PTR_DAT_00022108 + 0x2010,&option_index);\n  puVar8 = PTR_optind_00022180;\n  if (iVar4 == -1) {\n    if (*(int *)PTR_optind_00022180 < argc) {\n      iVar4 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar4;\n      if (iVar4 < argc) {\n        puVar6 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        } while (iVar4 < argc);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar4 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))();\n      return iVar3;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar4);\n    puVar8 = puVar7;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1;\n  }\n  while (iVar3 != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,argv);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,argv,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,argv);\n    iVar4 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar8);\n    if (iVar4 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar4);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar4 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar4 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar6 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar6 = (undefined *)0x63;\n    }\n  }\n  return (int)puVar6;\n}\n\n" comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment (function_definition "int main(int argc,char **argv)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int option_index;\n  uint8_t zo_cdb [16];\n  uint8_t sense_b [64];\n  char b [80];\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar6 = PTR_00022114;\n  iVar3 = *(int *)PTR___stack_chk_guard_00022188;\n  puVar7 = PTR_00022114 + 0x1764;\n  option_index = 0;\n  iVar4 = (*(code *)PTR_getopt_long_00022170)\n                    (argc,argv,puVar7,PTR_DAT_00022108 + 0x2010,&option_index);\n  puVar8 = PTR_optind_00022180;\n  if (iVar4 == -1) {\n    if (*(int *)PTR_optind_00022180 < argc) {\n      iVar4 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar4;\n      if (iVar4 < argc) {\n        puVar6 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        } while (iVar4 < argc);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar4 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))();\n      return iVar3;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar4);\n    puVar8 = puVar7;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1;\n  }\n  while (iVar3 != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,argv);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,argv,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,argv);\n    iVar4 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar8);\n    if (iVar4 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar4);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar4 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar4 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar6 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar6 = (undefined *)0x63;\n    }\n  }\n  return (int)puVar6;\n}" primitive_type (function_declarator "main(int argc,char **argv)" identifier (parameter_list "(int argc,char **argv)" ( (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int option_index;\n  uint8_t zo_cdb [16];\n  uint8_t sense_b [64];\n  char b [80];\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar6 = PTR_00022114;\n  iVar3 = *(int *)PTR___stack_chk_guard_00022188;\n  puVar7 = PTR_00022114 + 0x1764;\n  option_index = 0;\n  iVar4 = (*(code *)PTR_getopt_long_00022170)\n                    (argc,argv,puVar7,PTR_DAT_00022108 + 0x2010,&option_index);\n  puVar8 = PTR_optind_00022180;\n  if (iVar4 == -1) {\n    if (*(int *)PTR_optind_00022180 < argc) {\n      iVar4 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar4;\n      if (iVar4 < argc) {\n        puVar6 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        } while (iVar4 < argc);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar4 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))();\n      return iVar3;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar4);\n    puVar8 = puVar7;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1;\n  }\n  while (iVar3 != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,argv);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,argv,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,argv);\n    iVar4 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar8);\n    if (iVar4 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar4);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar4 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar4 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar6 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar6 = (undefined *)0x63;\n    }\n  }\n  return (int)puVar6;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int option_index;" primitive_type identifier ;) (declaration "uint8_t zo_cdb [16];" primitive_type (array_declarator "zo_cdb [16]" identifier [ number_literal ]) ;) (declaration "uint8_t sense_b [64];" primitive_type (array_declarator "sense_b [64]" identifier [ number_literal ]) ;) (declaration "char b [80];" primitive_type (array_declarator "b [80]" identifier [ number_literal ]) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_00022188;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00022188" identifier = identifier) ;) (expression_statement "puVar1 = PTR_optarg_00022134;" (assignment_expression "puVar1 = PTR_optarg_00022134" identifier = identifier) ;) (expression_statement "puVar6 = PTR_00022114;" (assignment_expression "puVar6 = PTR_00022114" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_00022188;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_00022188" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00022188" * (cast_expression "(int *)PTR___stack_chk_guard_00022188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar7 = PTR_00022114 + 0x1764;" (assignment_expression "puVar7 = PTR_00022114 + 0x1764" identifier = (binary_expression "PTR_00022114 + 0x1764" identifier + number_literal)) ;) (expression_statement "option_index = 0;" (assignment_expression "option_index = 0" identifier = number_literal) ;) (expression_statement "iVar4 = (*(code *)PTR_getopt_long_00022170)\n                    (argc,argv,puVar7,PTR_DAT_00022108 + 0x2010,&option_index);" (assignment_expression "iVar4 = (*(code *)PTR_getopt_long_00022170)\n                    (argc,argv,puVar7,PTR_DAT_00022108 + 0x2010,&option_index)" identifier = (call_expression "(*(code *)PTR_getopt_long_00022170)\n                    (argc,argv,puVar7,PTR_DAT_00022108 + 0x2010,&option_index)" (parenthesized_expression "(*(code *)PTR_getopt_long_00022170)" ( (pointer_expression "*(code *)PTR_getopt_long_00022170" * (cast_expression "(code *)PTR_getopt_long_00022170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(argc,argv,puVar7,PTR_DAT_00022108 + 0x2010,&option_index)" ( identifier , identifier , identifier , (binary_expression "PTR_DAT_00022108 + 0x2010" identifier + number_literal) , (pointer_expression "&option_index" & identifier) )))) ;) (expression_statement "puVar8 = PTR_optind_00022180;" (assignment_expression "puVar8 = PTR_optind_00022180" identifier = identifier) ;) (if_statement "if (iVar4 == -1) {\n    if (*(int *)PTR_optind_00022180 < argc) {\n      iVar4 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar4;\n      if (iVar4 < argc) {\n        puVar6 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        } while (iVar4 < argc);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar4 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))();\n      return iVar3;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar4);\n    puVar8 = puVar7;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1;\n  }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)PTR_optind_00022180 < argc) {\n      iVar4 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar4;\n      if (iVar4 < argc) {\n        puVar6 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        } while (iVar4 < argc);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1f;\n  }" { (if_statement "if (*(int *)PTR_optind_00022180 < argc) {\n      iVar4 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar4;\n      if (iVar4 < argc) {\n        puVar6 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        } while (iVar4 < argc);\n        goto LAB_00010cec;\n      }\n    }" if (parenthesized_expression "(*(int *)PTR_optind_00022180 < argc)" ( (binary_expression "*(int *)PTR_optind_00022180 < argc" (pointer_expression "*(int *)PTR_optind_00022180" * (cast_expression "(int *)PTR_optind_00022180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) )) (compound_statement "{\n      iVar4 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar4;\n      if (iVar4 < argc) {\n        puVar6 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        } while (iVar4 < argc);\n        goto LAB_00010cec;\n      }\n    }" { (expression_statement "iVar4 = *(int *)PTR_optind_00022180 + 1;" (assignment_expression "iVar4 = *(int *)PTR_optind_00022180 + 1" identifier = (binary_expression "*(int *)PTR_optind_00022180 + 1" (pointer_expression "*(int *)PTR_optind_00022180" * (cast_expression "(int *)PTR_optind_00022180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "*(int *)PTR_optind_00022180 = iVar4;" (assignment_expression "*(int *)PTR_optind_00022180 = iVar4" (pointer_expression "*(int *)PTR_optind_00022180" * (cast_expression "(int *)PTR_optind_00022180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar4 < argc) {\n        puVar6 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        } while (iVar4 < argc);\n        goto LAB_00010cec;\n      }" if (parenthesized_expression "(iVar4 < argc)" ( (binary_expression "iVar4 < argc" identifier < identifier) )) (compound_statement "{\n        puVar6 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        } while (iVar4 < argc);\n        goto LAB_00010cec;\n      }" { (expression_statement "puVar6 = PTR_00022114 + 0x1ba0;" (assignment_expression "puVar6 = PTR_00022114 + 0x1ba0" identifier = (binary_expression "PTR_00022114 + 0x1ba0" identifier + number_literal)) ;) (do_statement "do {\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        } while (iVar4 < argc);" do (compound_statement "{\n          (*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);\n          iVar4 = *(int *)puVar8 + 1;\n          *(int *)puVar8 = iVar4;\n        }" { (expression_statement "(*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4]);" (call_expression "(*(code *)PTR_pr2serr_00022178)(puVar6,argv[iVar4])" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,argv[iVar4])" ( identifier , (subscript_expression "argv[iVar4]" identifier [ identifier ]) ))) ;) (expression_statement "iVar4 = *(int *)puVar8 + 1;" (assignment_expression "iVar4 = *(int *)puVar8 + 1" identifier = (binary_expression "*(int *)puVar8 + 1" (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "*(int *)puVar8 = iVar4;" (assignment_expression "*(int *)puVar8 = iVar4" (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }) while (parenthesized_expression "(iVar4 < argc)" ( (binary_expression "iVar4 < argc" identifier < identifier) )) ;) (goto_statement "goto LAB_00010cec;" goto statement_identifier ;) })) })) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1c14)" ( (binary_expression "PTR_00022114 + 0x1c14" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x17b4)" ( (binary_expression "PTR_00022114 + 0x17b4" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1860)" ( (binary_expression "PTR_00022114 + 0x1860" identifier + number_literal) ))) ;) (expression_statement "puVar6 = (undefined *)0x1f;" (assignment_expression "puVar6 = (undefined *)0x1f" identifier = (cast_expression "(undefined *)0x1f" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (iVar4 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))();\n      return iVar3;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar4);\n    puVar8 = puVar7;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1;\n  }" else (compound_statement "{\n    if (iVar4 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))();\n      return iVar3;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar4);\n    puVar8 = puVar7;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar6 = (undefined *)0x1;\n  }" { (if_statement "if (iVar4 - 0x3fU < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))();\n      return iVar3;\n    }" if (parenthesized_expression "(iVar4 - 0x3fU < 0x3c)" ( (binary_expression "iVar4 - 0x3fU < 0x3c" (binary_expression "iVar4 - 0x3fU" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00010b94 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))();\n      return iVar3;\n    }" { comment comment (expression_statement "iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))();" (assignment_expression "iVar3 = (*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20))" * (cast_expression "(code *)(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20))" ( (binary_expression "&_gp + *(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)" * (cast_expression "(int *)(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20)" ( (binary_expression "puVar6 + (iVar4 - 0x3fU) * 4 + 0x1e20" (binary_expression "puVar6 + (iVar4 - 0x3fU) * 4" identifier + (binary_expression "(iVar4 - 0x3fU) * 4" (parenthesized_expression "(iVar4 - 0x3fU)" ( (binary_expression "iVar4 - 0x3fU" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar4);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar4)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1b7c,iVar4)" ( (binary_expression "PTR_00022114 + 0x1b7c" identifier + number_literal) , identifier ))) ;) (expression_statement "puVar8 = puVar7;" (assignment_expression "puVar8 = puVar7" identifier = identifier) ;) (labeled_statement "LAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" statement_identifier : (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x17b4)" ( (binary_expression "PTR_00022114 + 0x17b4" identifier + number_literal) ))) ;)) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1860)" ( (binary_expression "PTR_00022114 + 0x1860" identifier + number_literal) ))) ;) (expression_statement "puVar6 = (undefined *)0x1;" (assignment_expression "puVar6 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (while_statement "while (iVar3 != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,argv);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,argv,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,argv);\n    iVar4 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar8);\n    if (iVar4 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar4);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar4 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar4 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar6 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar6 = (undefined *)0x63;\n    }\n  }" while (parenthesized_expression "(iVar3 != *(int *)puVar2)" ( (binary_expression "iVar3 != *(int *)puVar2" identifier != (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,argv);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,argv,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,argv);\n    iVar4 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar8);\n    if (iVar4 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar4);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar4 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar4 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar6 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar6 = (undefined *)0x63;\n    }\n  }" { (expression_statement "(*(code *)PTR___stack_chk_fail_0002217c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002217c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002217c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002217c" * (cast_expression "(code *)PTR___stack_chk_fail_0002217c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,argv);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,argv)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1cac,argv)" ( (binary_expression "PTR_00022114 + 0x1cac" identifier + number_literal) , identifier ))) ;) (expression_statement "(*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,argv,0);" (call_expression "(*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,argv,0)" (parenthesized_expression "(*(code *)PTR_sg_get_category_sense_str_00022144)" ( (pointer_expression "*(code *)PTR_sg_get_category_sense_str_00022144" * (cast_expression "(code *)PTR_sg_get_category_sense_str_00022144" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1,0x50,argv,0)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,argv);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,argv)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1cf0,0,argv)" ( (binary_expression "PTR_00022114 + 0x1cf0" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "iVar4 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar8);" (assignment_expression "iVar4 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar8)" identifier = (call_expression "(*(code *)PTR_sg_cmds_close_device_00022184)(puVar8)" (parenthesized_expression "(*(code *)PTR_sg_cmds_close_device_00022184)" ( (pointer_expression "*(code *)PTR_sg_cmds_close_device_00022184" * (cast_expression "(code *)PTR_sg_cmds_close_device_00022184" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (if_statement "if (iVar4 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar4);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar4);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }" { (expression_statement "uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar4);" (assignment_expression "uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar4)" identifier = (call_expression "(*(code *)PTR_safe_strerror_00022150)(-iVar4)" (parenthesized_expression "(*(code *)PTR_safe_strerror_00022150)" ( (pointer_expression "*(code *)PTR_safe_strerror_00022150" * (cast_expression "(code *)PTR_safe_strerror_00022150" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(-iVar4)" ( (unary_expression "-iVar4" - identifier) )))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1d00,uVar5)" ( (binary_expression "PTR_00022114 + 0x1d00" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar4 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);" (assignment_expression "iVar4 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1)" identifier = (call_expression "(*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1)" (parenthesized_expression "(*(code *)PTR_sg_if_can2stderr_00022168)" ( (pointer_expression "*(code *)PTR_sg_if_can2stderr_00022168" * (cast_expression "(code *)PTR_sg_if_can2stderr_00022168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1d14,puVar1)" ( (binary_expression "PTR_00022114 + 0x1d14" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1d28)" ( (binary_expression "PTR_00022114 + 0x1d28" identifier + number_literal) ))) ;) })) (expression_statement "puVar6 = puVar1;" (assignment_expression "puVar6 = puVar1" identifier = identifier) ;) (if_statement "if ((int)puVar1 < 0) {\n      puVar6 = (undefined *)0x63;\n    }" if (parenthesized_expression "((int)puVar1 < 0)" ( (binary_expression "(int)puVar1 < 0" (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      puVar6 = (undefined *)0x63;\n    }" { (expression_statement "puVar6 = (undefined *)0x63;" (assignment_expression "puVar6 = (undefined *)0x63" identifier = (cast_expression "(undefined *)0x63" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (return_statement "return (int)puVar6;" return (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) ;) })))
(translation_unit "undefined * main(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined4 local_d8 [43];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar4 = PTR_00022114;\n  local_2c = *(int *)PTR___stack_chk_guard_00022188;\n  puVar6 = PTR_00022114 + 0x1764;\n  local_d8[0] = 0;\n  iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);\n  puVar7 = PTR_optind_00022180;\n  if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }\n  while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }\n  return puVar4;\n}\n\n" (function_definition "undefined * main(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined4 local_d8 [43];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar4 = PTR_00022114;\n  local_2c = *(int *)PTR___stack_chk_guard_00022188;\n  puVar6 = PTR_00022114 + 0x1764;\n  local_d8[0] = 0;\n  iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);\n  puVar7 = PTR_optind_00022180;\n  if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }\n  while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }\n  return puVar4;\n}" type_identifier (pointer_declarator "* main(int param_1,int param_2)" * (function_declarator "main(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined4 local_d8 [43];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar4 = PTR_00022114;\n  local_2c = *(int *)PTR___stack_chk_guard_00022188;\n  puVar6 = PTR_00022114 + 0x1764;\n  local_d8[0] = 0;\n  iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);\n  puVar7 = PTR_optind_00022180;\n  if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }\n  while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }\n  return puVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 local_d8 [43];" type_identifier (array_declarator "local_d8 [43]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_00022188;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00022188" identifier = identifier) ;) (expression_statement "puVar1 = PTR_optarg_00022134;" (assignment_expression "puVar1 = PTR_optarg_00022134" identifier = identifier) ;) (expression_statement "puVar4 = PTR_00022114;" (assignment_expression "puVar4 = PTR_00022114" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00022188;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00022188" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00022188" * (cast_expression "(int *)PTR___stack_chk_guard_00022188" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar6 = PTR_00022114 + 0x1764;" (assignment_expression "puVar6 = PTR_00022114 + 0x1764" identifier = (binary_expression "PTR_00022114 + 0x1764" identifier + number_literal)) ;) (expression_statement "local_d8[0] = 0;" (assignment_expression "local_d8[0] = 0" (subscript_expression "local_d8[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);" (assignment_expression "iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8)" identifier = (call_expression "(*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8)" (parenthesized_expression "(*(code *)PTR_getopt_long_00022170)" ( (pointer_expression "*(code *)PTR_getopt_long_00022170" * (cast_expression "(code *)PTR_getopt_long_00022170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8)" ( identifier , identifier , identifier , (binary_expression "PTR_DAT_00022108 + 0x2010" identifier + number_literal) , identifier )))) ;) (expression_statement "puVar7 = PTR_optind_00022180;" (assignment_expression "puVar7 = PTR_optind_00022180" identifier = identifier) ;) (if_statement "if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }" { (if_statement "if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }" if (parenthesized_expression "(*(int *)PTR_optind_00022180 < param_1)" ( (binary_expression "*(int *)PTR_optind_00022180 < param_1" (pointer_expression "*(int *)PTR_optind_00022180" * (cast_expression "(int *)PTR_optind_00022180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) )) (compound_statement "{\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }" { (expression_statement "iVar3 = *(int *)PTR_optind_00022180 + 1;" (assignment_expression "iVar3 = *(int *)PTR_optind_00022180 + 1" identifier = (binary_expression "*(int *)PTR_optind_00022180 + 1" (pointer_expression "*(int *)PTR_optind_00022180" * (cast_expression "(int *)PTR_optind_00022180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "*(int *)PTR_optind_00022180 = iVar3;" (assignment_expression "*(int *)PTR_optind_00022180 = iVar3" (pointer_expression "*(int *)PTR_optind_00022180" * (cast_expression "(int *)PTR_optind_00022180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }" if (parenthesized_expression "(iVar3 < param_1)" ( (binary_expression "iVar3 < param_1" identifier < identifier) )) (compound_statement "{\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }" { (expression_statement "puVar4 = PTR_00022114 + 0x1ba0;" (assignment_expression "puVar4 = PTR_00022114 + 0x1ba0" identifier = (binary_expression "PTR_00022114 + 0x1ba0" identifier + number_literal)) ;) (do_statement "do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);" do (compound_statement "{\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        }" { (expression_statement "(*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));" (call_expression "(*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4))" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,*(undefined4 *)(param_2 + iVar3 * 4))" ( identifier , (pointer_expression "*(undefined4 *)(param_2 + iVar3 * 4)" * (cast_expression "(undefined4 *)(param_2 + iVar3 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar3 * 4)" ( (binary_expression "param_2 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) ))) ;) (expression_statement "iVar3 = *(int *)puVar7 + 1;" (assignment_expression "iVar3 = *(int *)puVar7 + 1" identifier = (binary_expression "*(int *)puVar7 + 1" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "*(int *)puVar7 = iVar3;" (assignment_expression "*(int *)puVar7 = iVar3" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }) while (parenthesized_expression "(iVar3 < param_1)" ( (binary_expression "iVar3 < param_1" identifier < identifier) )) ;) (goto_statement "goto LAB_00010cec;" goto statement_identifier ;) })) })) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1c14)" ( (binary_expression "PTR_00022114 + 0x1c14" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x17b4)" ( (binary_expression "PTR_00022114 + 0x17b4" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1860)" ( (binary_expression "PTR_00022114 + 0x1860" identifier + number_literal) ))) ;) (expression_statement "puVar4 = (undefined *)0x1f;" (assignment_expression "puVar4 = (undefined *)0x1f" identifier = (cast_expression "(undefined *)0x1f" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }" else (compound_statement "{\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }" { (if_statement "if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }" if (parenthesized_expression "(iVar3 - 0x3fU < 0x3c)" ( (binary_expression "iVar3 - 0x3fU < 0x3c" (binary_expression "iVar3 - 0x3fU" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }" { (expression_statement "puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();" (assignment_expression "puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))()" identifier = (cast_expression "(undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))()" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20))" ( (binary_expression "&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" * (cast_expression "(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" ( (binary_expression "puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20" (binary_expression "puVar4 + (iVar3 - 0x3fU) * 4" identifier + (binary_expression "(iVar3 - 0x3fU) * 4" (parenthesized_expression "(iVar3 - 0x3fU)" ( (binary_expression "iVar3 - 0x3fU" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar4;" return identifier ;) })) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1b7c,iVar3)" ( (binary_expression "PTR_00022114 + 0x1b7c" identifier + number_literal) , identifier ))) ;) (expression_statement "puVar7 = puVar6;" (assignment_expression "puVar7 = puVar6" identifier = identifier) ;) (labeled_statement "LAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" statement_identifier : (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x17b4)" ( (binary_expression "PTR_00022114 + 0x17b4" identifier + number_literal) ))) ;)) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1860)" ( (binary_expression "PTR_00022114 + 0x1860" identifier + number_literal) ))) ;) (expression_statement "puVar4 = (undefined *)0x1;" (assignment_expression "puVar4 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (while_statement "while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }" while (parenthesized_expression "(local_2c != *(int *)puVar2)" ( (binary_expression "local_2c != *(int *)puVar2" identifier != (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }" { (expression_statement "(*(code *)PTR___stack_chk_fail_0002217c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002217c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002217c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002217c" * (cast_expression "(code *)PTR___stack_chk_fail_0002217c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1cac,param_2)" ( (binary_expression "PTR_00022114 + 0x1cac" identifier + number_literal) , identifier ))) ;) (expression_statement "(*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);" (call_expression "(*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0)" (parenthesized_expression "(*(code *)PTR_sg_get_category_sense_str_00022144)" ( (pointer_expression "*(code *)PTR_sg_get_category_sense_str_00022144" * (cast_expression "(code *)PTR_sg_get_category_sense_str_00022144" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1,0x50,param_2,0)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1cf0,0,param_2)" ( (binary_expression "PTR_00022114 + 0x1cf0" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);" (assignment_expression "iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7)" identifier = (call_expression "(*(code *)PTR_sg_cmds_close_device_00022184)(puVar7)" (parenthesized_expression "(*(code *)PTR_sg_cmds_close_device_00022184)" ( (pointer_expression "*(code *)PTR_sg_cmds_close_device_00022184" * (cast_expression "(code *)PTR_sg_cmds_close_device_00022184" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }" { (expression_statement "uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);" (assignment_expression "uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3)" identifier = (call_expression "(*(code *)PTR_safe_strerror_00022150)(-iVar3)" (parenthesized_expression "(*(code *)PTR_safe_strerror_00022150)" ( (pointer_expression "*(code *)PTR_safe_strerror_00022150" * (cast_expression "(code *)PTR_safe_strerror_00022150" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(-iVar3)" ( (unary_expression "-iVar3" - identifier) )))) ;) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1d00,uVar5)" ( (binary_expression "PTR_00022114 + 0x1d00" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);" (assignment_expression "iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1)" identifier = (call_expression "(*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1)" (parenthesized_expression "(*(code *)PTR_sg_if_can2stderr_00022168)" ( (pointer_expression "*(code *)PTR_sg_if_can2stderr_00022168" * (cast_expression "(code *)PTR_sg_if_can2stderr_00022168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1d14,puVar1)" ( (binary_expression "PTR_00022114 + 0x1d14" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" ( (pointer_expression "*(code *)PTR_pr2serr_00022178" * (cast_expression "(code *)PTR_pr2serr_00022178" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_00022114 + 0x1d28)" ( (binary_expression "PTR_00022114 + 0x1d28" identifier + number_literal) ))) ;) })) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (if_statement "if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }" if (parenthesized_expression "((int)puVar1 < 0)" ( (binary_expression "(int)puVar1 < 0" (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      puVar4 = (undefined *)0x63;\n    }" { (expression_statement "puVar4 = (undefined *)0x63;" (assignment_expression "puVar4 = (undefined *)0x63" identifier = (cast_expression "(undefined *)0x63" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (return_statement "return puVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) + LIT) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (unary_expression - IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) (return_statement return IDENT ;) })))
(function_definition "undefined * main(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined4 local_d8 [43];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar4 = PTR_00022114;\n  local_2c = *(int *)PTR___stack_chk_guard_00022188;\n  puVar6 = PTR_00022114 + 0x1764;\n  local_d8[0] = 0;\n  iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);\n  puVar7 = PTR_optind_00022180;\n  if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }\n  while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }\n  return puVar4;\n}" (type_identifier "undefined") (pointer_declarator "* main(int param_1,int param_2)" (* "*") (function_declarator "main(int param_1,int param_2)" (identifier "main") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined4 local_d8 [43];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00022188;\n  puVar1 = PTR_optarg_00022134;\n  puVar4 = PTR_00022114;\n  local_2c = *(int *)PTR___stack_chk_guard_00022188;\n  puVar6 = PTR_00022114 + 0x1764;\n  local_d8[0] = 0;\n  iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);\n  puVar7 = PTR_optind_00022180;\n  if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }\n  while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }\n  return puVar4;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 local_d8 [43];" (type_identifier "undefined4") (array_declarator "local_d8 [43]" (identifier "local_d8") ([ "[") (number_literal "43") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_00022188;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00022188" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_00022188")) (; ";")) (expression_statement "puVar1 = PTR_optarg_00022134;" (assignment_expression "puVar1 = PTR_optarg_00022134" (identifier "puVar1") (= "=") (identifier "PTR_optarg_00022134")) (; ";")) (expression_statement "puVar4 = PTR_00022114;" (assignment_expression "puVar4 = PTR_00022114" (identifier "puVar4") (= "=") (identifier "PTR_00022114")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00022188;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00022188" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00022188" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00022188" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00022188")))) (; ";")) (expression_statement "puVar6 = PTR_00022114 + 0x1764;" (assignment_expression "puVar6 = PTR_00022114 + 0x1764" (identifier "puVar6") (= "=") (binary_expression "PTR_00022114 + 0x1764" (identifier "PTR_00022114") (+ "+") (number_literal "0x1764"))) (; ";")) (expression_statement "local_d8[0] = 0;" (assignment_expression "local_d8[0] = 0" (subscript_expression "local_d8[0]" (identifier "local_d8") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);" (assignment_expression "iVar3 = (*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_getopt_long_00022170)\n                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8)" (parenthesized_expression "(*(code *)PTR_getopt_long_00022170)" (( "(") (pointer_expression "*(code *)PTR_getopt_long_00022170" (* "*") (cast_expression "(code *)PTR_getopt_long_00022170" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getopt_long_00022170"))) () ")")) (argument_list "(param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "puVar6") (, ",") (binary_expression "PTR_DAT_00022108 + 0x2010" (identifier "PTR_DAT_00022108") (+ "+") (number_literal "0x2010")) (, ",") (identifier "local_d8") () ")")))) (; ";")) (expression_statement "puVar7 = PTR_optind_00022180;" (assignment_expression "puVar7 = PTR_optind_00022180" (identifier "puVar7") (= "=") (identifier "PTR_optind_00022180")) (; ";")) (if_statement "if (iVar3 == -1) {\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }\n  else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1f;\n  }" ({ "{") (if_statement "if (*(int *)PTR_optind_00022180 < param_1) {\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)PTR_optind_00022180 < param_1)" (( "(") (binary_expression "*(int *)PTR_optind_00022180 < param_1" (pointer_expression "*(int *)PTR_optind_00022180" (* "*") (cast_expression "(int *)PTR_optind_00022180" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optind_00022180"))) (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n      iVar3 = *(int *)PTR_optind_00022180 + 1;\n      *(int *)PTR_optind_00022180 = iVar3;\n      if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }\n    }" ({ "{") (expression_statement "iVar3 = *(int *)PTR_optind_00022180 + 1;" (assignment_expression "iVar3 = *(int *)PTR_optind_00022180 + 1" (identifier "iVar3") (= "=") (binary_expression "*(int *)PTR_optind_00022180 + 1" (pointer_expression "*(int *)PTR_optind_00022180" (* "*") (cast_expression "(int *)PTR_optind_00022180" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optind_00022180"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)PTR_optind_00022180 = iVar3;" (assignment_expression "*(int *)PTR_optind_00022180 = iVar3" (pointer_expression "*(int *)PTR_optind_00022180" (* "*") (cast_expression "(int *)PTR_optind_00022180" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optind_00022180"))) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 < param_1) {\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }" (if "if") (parenthesized_expression "(iVar3 < param_1)" (( "(") (binary_expression "iVar3 < param_1" (identifier "iVar3") (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n        puVar4 = PTR_00022114 + 0x1ba0;\n        do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);\n        goto LAB_00010cec;\n      }" ({ "{") (expression_statement "puVar4 = PTR_00022114 + 0x1ba0;" (assignment_expression "puVar4 = PTR_00022114 + 0x1ba0" (identifier "puVar4") (= "=") (binary_expression "PTR_00022114 + 0x1ba0" (identifier "PTR_00022114") (+ "+") (number_literal "0x1ba0"))) (; ";")) (do_statement "do {\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        } while (iVar3 < param_1);" (do "do") (compound_statement "{\n          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));\n          iVar3 = *(int *)puVar7 + 1;\n          *(int *)puVar7 = iVar3;\n        }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));" (call_expression "(*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4))" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(puVar4,*(undefined4 *)(param_2 + iVar3 * 4))" (( "(") (identifier "puVar4") (, ",") (pointer_expression "*(undefined4 *)(param_2 + iVar3 * 4)" (* "*") (cast_expression "(undefined4 *)(param_2 + iVar3 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar3 * 4)" (( "(") (binary_expression "param_2 + iVar3 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar3 * 4" (identifier "iVar3") (* "*") (number_literal "4"))) () ")")))) () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)puVar7 + 1;" (assignment_expression "iVar3 = *(int *)puVar7 + 1" (identifier "iVar3") (= "=") (binary_expression "*(int *)puVar7 + 1" (pointer_expression "*(int *)puVar7" (* "*") (cast_expression "(int *)puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)puVar7 = iVar3;" (assignment_expression "*(int *)puVar7 = iVar3" (pointer_expression "*(int *)puVar7" (* "*") (cast_expression "(int *)puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (= "=") (identifier "iVar3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 < param_1)" (( "(") (binary_expression "iVar3 < param_1" (identifier "iVar3") (< "<") (identifier "param_1")) () ")")) (; ";")) (goto_statement "goto LAB_00010cec;" (goto "goto") (statement_identifier "LAB_00010cec") (; ";")) (} "}"))) (} "}"))) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(PTR_00022114 + 0x1c14)" (( "(") (binary_expression "PTR_00022114 + 0x1c14" (identifier "PTR_00022114") (+ "+") (number_literal "0x1c14")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(PTR_00022114 + 0x17b4)" (( "(") (binary_expression "PTR_00022114 + 0x17b4" (identifier "PTR_00022114") (+ "+") (number_literal "0x17b4")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(PTR_00022114 + 0x1860)" (( "(") (binary_expression "PTR_00022114 + 0x1860" (identifier "PTR_00022114") (+ "+") (number_literal "0x1860")) () ")"))) (; ";")) (expression_statement "puVar4 = (undefined *)0x1f;" (assignment_expression "puVar4 = (undefined *)0x1f" (identifier "puVar4") (= "=") (cast_expression "(undefined *)0x1f" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f"))) (; ";")) (} "}")) (else_clause "else {\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }" (else "else") (compound_statement "{\n    if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);\n    puVar7 = puVar6;\nLAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);\n    puVar4 = (undefined *)0x1;\n  }" ({ "{") (if_statement "if (iVar3 - 0x3fU < 0x3c) {\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }" (if "if") (parenthesized_expression "(iVar3 - 0x3fU < 0x3c)" (( "(") (binary_expression "iVar3 - 0x3fU < 0x3c" (binary_expression "iVar3 - 0x3fU" (identifier "iVar3") (- "-") (number_literal "0x3fU")) (< "<") (number_literal "0x3c")) () ")")) (compound_statement "{\n                    \n                    \n      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();\n      return puVar4;\n    }" ({ "{") (expression_statement "puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();" (assignment_expression "puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))()" (identifier "puVar4") (= "=") (cast_expression "(undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))()" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20))" (( "(") (binary_expression "&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" (* "*") (cast_expression "(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)" (( "(") (binary_expression "puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20" (binary_expression "puVar4 + (iVar3 - 0x3fU) * 4" (identifier "puVar4") (+ "+") (binary_expression "(iVar3 - 0x3fU) * 4" (parenthesized_expression "(iVar3 - 0x3fU)" (( "(") (binary_expression "iVar3 - 0x3fU" (identifier "iVar3") (- "-") (number_literal "0x3fU")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x1e20")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar4;" (return "return") (identifier "puVar4") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(PTR_00022114 + 0x1b7c,iVar3)" (( "(") (binary_expression "PTR_00022114 + 0x1b7c" (identifier "PTR_00022114") (+ "+") (number_literal "0x1b7c")) (, ",") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "puVar7 = puVar6;" (assignment_expression "puVar7 = puVar6" (identifier "puVar7") (= "=") (identifier "puVar6")) (; ";")) (labeled_statement "LAB_00010cec:\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" (statement_identifier "LAB_00010cec") (: ":") (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(PTR_00022114 + 0x17b4)" (( "(") (binary_expression "PTR_00022114 + 0x17b4" (identifier "PTR_00022114") (+ "+") (number_literal "0x17b4")) () ")"))) (; ";"))) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(PTR_00022114 + 0x1860)" (( "(") (binary_expression "PTR_00022114 + 0x1860" (identifier "PTR_00022114") (+ "+") (number_literal "0x1860")) () ")"))) (; ";")) (expression_statement "puVar4 = (undefined *)0x1;" (assignment_expression "puVar4 = (undefined *)0x1" (identifier "puVar4") (= "=") (cast_expression "(undefined *)0x1" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")))) (while_statement "while (local_2c != *(int *)puVar2) {\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }" (while "while") (parenthesized_expression "(local_2c != *(int *)puVar2)" (( "(") (binary_expression "local_2c != *(int *)puVar2" (identifier "local_2c") (!= "!=") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_0002217c)();\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);\n    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);\n    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);\n    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);\n    if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }\n    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);\n    if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }\n    puVar4 = puVar1;\n    if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }\n  }" ({ "{") (expression_statement "(*(code *)PTR___stack_chk_fail_0002217c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002217c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002217c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0002217c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0002217c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0002217c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(PTR_00022114 + 0x1cac,param_2)" (( "(") (binary_expression "PTR_00022114 + 0x1cac" (identifier "PTR_00022114") (+ "+") (number_literal "0x1cac")) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);" (call_expression "(*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0)" (parenthesized_expression "(*(code *)PTR_sg_get_category_sense_str_00022144)" (( "(") (pointer_expression "*(code *)PTR_sg_get_category_sense_str_00022144" (* "*") (cast_expression "(code *)PTR_sg_get_category_sense_str_00022144" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_get_category_sense_str_00022144"))) () ")")) (argument_list "(puVar1,0x50,param_2,0)" (( "(") (identifier "puVar1") (, ",") (number_literal "0x50") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(PTR_00022114 + 0x1cf0,0,param_2)" (( "(") (binary_expression "PTR_00022114 + 0x1cf0" (identifier "PTR_00022114") (+ "+") (number_literal "0x1cf0")) (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);" (assignment_expression "iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_sg_cmds_close_device_00022184)(puVar7)" (parenthesized_expression "(*(code *)PTR_sg_cmds_close_device_00022184)" (( "(") (pointer_expression "*(code *)PTR_sg_cmds_close_device_00022184" (* "*") (cast_expression "(code *)PTR_sg_cmds_close_device_00022184" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_cmds_close_device_00022184"))) () ")")) (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);\n    }" ({ "{") (expression_statement "uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);" (assignment_expression "uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_safe_strerror_00022150)(-iVar3)" (parenthesized_expression "(*(code *)PTR_safe_strerror_00022150)" (( "(") (pointer_expression "*(code *)PTR_safe_strerror_00022150" (* "*") (cast_expression "(code *)PTR_safe_strerror_00022150" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safe_strerror_00022150"))) () ")")) (argument_list "(-iVar3)" (( "(") (unary_expression "-iVar3" (- "-") (identifier "iVar3")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(PTR_00022114 + 0x1d00,uVar5)" (( "(") (binary_expression "PTR_00022114 + 0x1d00" (identifier "PTR_00022114") (+ "+") (number_literal "0x1d00")) (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);" (assignment_expression "iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1)" (parenthesized_expression "(*(code *)PTR_sg_if_can2stderr_00022168)" (( "(") (pointer_expression "*(code *)PTR_sg_if_can2stderr_00022168" (* "*") (cast_expression "(code *)PTR_sg_if_can2stderr_00022168" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_if_can2stderr_00022168"))) () ")")) (argument_list "(PTR_00022114 + 0x1d14,puVar1)" (( "(") (binary_expression "PTR_00022114 + 0x1d14" (identifier "PTR_00022114") (+ "+") (number_literal "0x1d14")) (, ",") (identifier "puVar1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);\n    }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);" (call_expression "(*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28)" (parenthesized_expression "(*(code *)PTR_pr2serr_00022178)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_00022178" (* "*") (cast_expression "(code *)PTR_pr2serr_00022178" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_00022178"))) () ")")) (argument_list "(PTR_00022114 + 0x1d28)" (( "(") (binary_expression "PTR_00022114 + 0x1d28" (identifier "PTR_00022114") (+ "+") (number_literal "0x1d28")) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" (identifier "puVar4") (= "=") (identifier "puVar1")) (; ";")) (if_statement "if ((int)puVar1 < 0) {\n      puVar4 = (undefined *)0x63;\n    }" (if "if") (parenthesized_expression "((int)puVar1 < 0)" (( "(") (binary_expression "(int)puVar1 < 0" (cast_expression "(int)puVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      puVar4 = (undefined *)0x63;\n    }" ({ "{") (expression_statement "puVar4 = (undefined *)0x63;" (assignment_expression "puVar4 = (undefined *)0x63" (identifier "puVar4") (= "=") (cast_expression "(undefined *)0x63" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x63"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return puVar4;" (return "return") (identifier "puVar4") (; ";")) (} "}")))

/* WARNING: Removing unreachable block (ram,0x000111e0) */
/* WARNING: Removing unreachable block (ram,0x000110a4) */
/* WARNING: Removing unreachable block (ram,0x000110d4) */
/* WARNING: Removing unreachable block (ram,0x000110fc) */
/* WARNING: Removing unreachable block (ram,0x00010d6c) */
/* WARNING: Removing unreachable block (ram,0x00011070) */
/* WARNING: Removing unreachable block (ram,0x00010d74) */
/* WARNING: Removing unreachable block (ram,0x00010fd4) */
/* WARNING: Removing unreachable block (ram,0x00010db0) */
/* WARNING: Removing unreachable block (ram,0x00010dfc) */
/* WARNING: Removing unreachable block (ram,0x00010e00) */
/* WARNING: Removing unreachable block (ram,0x00010e2c) */
/* WARNING: Removing unreachable block (ram,0x00010e44) */
/* WARNING: Removing unreachable block (ram,0x00011210) */
/* WARNING: Removing unreachable block (ram,0x00010ed0) */
/* WARNING: Removing unreachable block (ram,0x00011118) */
/* WARNING: Removing unreachable block (ram,0x00011128) */
/* WARNING: Removing unreachable block (ram,0x00011144) */
/* WARNING: Removing unreachable block (ram,0x00011238) */
/* WARNING: Removing unreachable block (ram,0x00010edc) */
/* WARNING: Removing unreachable block (ram,0x00010ee0) */
/* WARNING: Removing unreachable block (ram,0x00010eec) */
/* WARNING: Removing unreachable block (ram,0x00011254) */
/* WARNING: Removing unreachable block (ram,0x00010f00) */
/* WARNING: Removing unreachable block (ram,0x00010f74) */
/* WARNING: Removing unreachable block (ram,0x00010f7c) */
/* WARNING: Removing unreachable block (ram,0x00010f94) */

int function_1(int var_4,char **argv)

{
  type_1 *puVar1;
  type_1 *puVar2;
  int var_6;
  int var_3;
  type_2 uVar5;
  type_1 *var_5;
  type_1 *puVar7;
  type_1 *puVar8;
  int option_index;
  uint8_t zo_cdb [16];
  uint8_t sense_b [64];
  char b [80];
  
  puVar2 = PTR___stack_chk_guard_00022188;
  puVar1 = PTR_optarg_00022134;
  var_5 = var_1;
  var_6 = *(int *)PTR___stack_chk_guard_00022188;
  puVar7 = var_1 + 0x1764;
  option_index = 0;
  var_3 = (*(type_3 *)PTR_getopt_long_00022170)
                    (var_4,argv,puVar7,var_2 + 0x2010,&option_index);
  puVar8 = PTR_optind_00022180;
  if (var_3 == -1) {
    if (*(int *)PTR_optind_00022180 < var_4) {
      var_3 = *(int *)PTR_optind_00022180 + 1;
      *(int *)PTR_optind_00022180 = var_3;
      if (var_3 < var_4) {
        var_5 = var_1 + 0x1ba0;
        do {
          (*(type_3 *)PTR_pr2serr_00022178)(var_5,argv[var_3]);
          var_3 = *(int *)puVar8 + 1;
          *(int *)puVar8 = var_3;
        } while (var_3 < var_4);
        goto LAB_00010cec;
      }
    }
    (*(type_3 *)PTR_pr2serr_00022178)(var_1 + 0x1c14);
    (*(type_3 *)PTR_pr2serr_00022178)(var_1 + 0x17b4);
    (*(type_3 *)PTR_pr2serr_00022178)(var_1 + 0x1860);
    var_5 = (type_1 *)0x1f;
  }
  else {
    if (var_3 - 0x3fU < 0x3c) {
                    /* WARNING: Could not emulate address calculation at 0x00010b94 */
                    /* WARNING: Treating indirect jump as call */
      var_6 = (*(type_3 *)(&_gp + *(int *)(var_5 + (var_3 - 0x3fU) * 4 + 0x1e20)))();
      return var_6;
    }
    (*(type_3 *)PTR_pr2serr_00022178)(var_1 + 0x1b7c,var_3);
    puVar8 = puVar7;
LAB_00010cec:
    (*(type_3 *)PTR_pr2serr_00022178)(var_1 + 0x17b4);
    (*(type_3 *)PTR_pr2serr_00022178)(var_1 + 0x1860);
    var_5 = (type_1 *)0x1;
  }
  while (var_6 != *(int *)puVar2) {
    (*(type_3 *)PTR___stack_chk_fail_0002217c)();
    (*(type_3 *)PTR_pr2serr_00022178)(var_1 + 0x1cac,argv);
    (*(type_3 *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,argv,0);
    (*(type_3 *)PTR_pr2serr_00022178)(var_1 + 0x1cf0,0,argv);
    var_3 = (*(type_3 *)PTR_sg_cmds_close_device_00022184)(puVar8);
    if (var_3 < 0) {
      uVar5 = (*(type_3 *)PTR_safe_strerror_00022150)(-var_3);
      (*(type_3 *)PTR_pr2serr_00022178)(var_1 + 0x1d00,uVar5);
    }
    var_3 = (*(type_3 *)PTR_sg_if_can2stderr_00022168)(var_1 + 0x1d14,puVar1);
    if (var_3 == 0) {
      (*(type_3 *)PTR_pr2serr_00022178)(var_1 + 0x1d28);
    }
    var_5 = puVar1;
    if ((int)puVar1 < 0) {
      var_5 = (type_1 *)0x63;
    }
  }
  return (int)var_5;
}


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

/* WARNING: Removing unreachable block (ram,0x000111e0) */
/* WARNING: Removing unreachable block (ram,0x000110a4) */
/* WARNING: Removing unreachable block (ram,0x000110d4) */
/* WARNING: Removing unreachable block (ram,0x000110fc) */
/* WARNING: Removing unreachable block (ram,0x00010d6c) */
/* WARNING: Removing unreachable block (ram,0x00011070) */
/* WARNING: Removing unreachable block (ram,0x00010d74) */
/* WARNING: Removing unreachable block (ram,0x00010fd4) */
/* WARNING: Removing unreachable block (ram,0x00010db0) */
/* WARNING: Removing unreachable block (ram,0x00010dfc) */
/* WARNING: Removing unreachable block (ram,0x00010e00) */
/* WARNING: Removing unreachable block (ram,0x00010e2c) */
/* WARNING: Removing unreachable block (ram,0x00010e44) */
/* WARNING: Removing unreachable block (ram,0x00011210) */
/* WARNING: Removing unreachable block (ram,0x00010ed0) */
/* WARNING: Removing unreachable block (ram,0x00011118) */
/* WARNING: Removing unreachable block (ram,0x00011128) */
/* WARNING: Removing unreachable block (ram,0x00011144) */
/* WARNING: Removing unreachable block (ram,0x00011238) */
/* WARNING: Removing unreachable block (ram,0x00010edc) */
/* WARNING: Removing unreachable block (ram,0x00010ee0) */
/* WARNING: Removing unreachable block (ram,0x00010eec) */
/* WARNING: Removing unreachable block (ram,0x00011254) */
/* WARNING: Removing unreachable block (ram,0x00010f00) */
/* WARNING: Removing unreachable block (ram,0x00010f74) */
/* WARNING: Removing unreachable block (ram,0x00010f7c) */
/* WARNING: Removing unreachable block (ram,0x00010f94) */

undefined * MASKED(int param_1,int param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  undefined *puVar4;
  undefined4 uVar5;
  undefined *puVar6;
  undefined *puVar7;
  undefined4 local_d8 [43];
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_00022188;
  puVar1 = PTR_optarg_00022134;
  puVar4 = PTR_00022114;
  local_2c = *(int *)PTR___stack_chk_guard_00022188;
  puVar6 = PTR_00022114 + 0x1764;
  local_d8[0] = 0;
  iVar3 = (*(code *)PTR_getopt_long_00022170)
                    (param_1,param_2,puVar6,PTR_DAT_00022108 + 0x2010,local_d8);
  puVar7 = PTR_optind_00022180;
  if (iVar3 == -1) {
    if (*(int *)PTR_optind_00022180 < param_1) {
      iVar3 = *(int *)PTR_optind_00022180 + 1;
      *(int *)PTR_optind_00022180 = iVar3;
      if (iVar3 < param_1) {
        puVar4 = PTR_00022114 + 0x1ba0;
        do {
          (*(code *)PTR_pr2serr_00022178)(puVar4,*(undefined4 *)(param_2 + iVar3 * 4));
          iVar3 = *(int *)puVar7 + 1;
          *(int *)puVar7 = iVar3;
        } while (iVar3 < param_1);
        goto LAB_00010cec;
      }
    }
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1c14);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);
    puVar4 = (undefined *)0x1f;
  }
  else {
    if (iVar3 - 0x3fU < 0x3c) {
                    /* WARNING: Could not emulate address calculation at 0x00010b94 */
                    /* WARNING: Treating indirect jump as call */
      puVar4 = (undefined *)(*(code *)(&_gp_1 + *(int *)(puVar4 + (iVar3 - 0x3fU) * 4 + 0x1e20)))();
      return puVar4;
    }
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1b7c,iVar3);
    puVar7 = puVar6;
LAB_00010cec:
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x17b4);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1860);
    puVar4 = (undefined *)0x1;
  }
  while (local_2c != *(int *)puVar2) {
    (*(code *)PTR___stack_chk_fail_0002217c)();
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cac,param_2);
    (*(code *)PTR_sg_get_category_sense_str_00022144)(puVar1,0x50,param_2,0);
    (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1cf0,0,param_2);
    iVar3 = (*(code *)PTR_sg_cmds_close_device_00022184)(puVar7);
    if (iVar3 < 0) {
      uVar5 = (*(code *)PTR_safe_strerror_00022150)(-iVar3);
      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d00,uVar5);
    }
    iVar3 = (*(code *)PTR_sg_if_can2stderr_00022168)(PTR_00022114 + 0x1d14,puVar1);
    if (iVar3 == 0) {
      (*(code *)PTR_pr2serr_00022178)(PTR_00022114 + 0x1d28);
    }
    puVar4 = puVar1;
    if ((int)puVar1 < 0) {
      puVar4 = (undefined *)0x63;
    }
  }
  return puVar4;
}

