
int main(int argc,char **argv)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined3 extraout_var;
  int iVar3;
  VALUE *v;
  _Bool _Var6;
  undefined4 uVar4;
  char *pcVar5;
  undefined1 *puVar7;
  int *piVar8;
  
  puVar1 = PTR_DAT_0003e0f8;
  set_program_name(*argv);
  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);
  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);
  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);
  puVar1 = PTR_close_stdout_0003e140;
  *(undefined4 *)PTR_exit_failure_0003e138 = 3;
  atexit((__func *)puVar1);
  parse_long_options(argc,argv,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,
                     PTR_DAT_0003e0f8 + -0x45b4,(_func_void_int *)PTR_usage_0003e148,
                     PTR_DAT_0003e0f8 + -0x45c0,PTR_DAT_0003e0f8 + -0x45d0,
                     PTR_DAT_0003e0f8 + -0x45dc,0);
  if (1 < (uint)argc) {
    iVar3 = (*(code *)PTR_strcmp_0003e328)(argv[1],PTR_DAT_0003e0f8 + -0x45ac);
    puVar1 = PTR_DAT_0003e0e8;
    if ((iVar3 != 0) || (argv = argv + 1, argc != 2)) {
      *(char ***)(PTR_DAT_0003e0e8 + -0x1ca0) = argv + 1;
      v = eval(true);
      puVar2 = PTR_stdout_0003e250;
      piVar8 = *(int **)(puVar1 + -0x1ca0);
      if (*piVar8 == 0) {
        if (v->type == integer) {
          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);
          iVar3 = *(int *)puVar2;
          puVar7 = *(undefined1 **)(iVar3 + 0x14);
          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {
            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;
            *puVar7 = 10;
          }
          else {
            (*(code *)PTR___overflow_0003e230)(iVar3,10);
          }
        }
        else {
          if (v->type != string) {
            iVar3 = (*(code *)PTR_abort_0003e200)();
            return iVar3;
          }
          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);
        }
        _Var6 = null(v);
        return CONCAT31(extraout_var,_Var6);
      }
      uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);
      pcVar5 = quotearg_n_style(0,locale_quoting_style,(char *)*piVar8);
      (*(code *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5);
    }
  }
  uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);
  (*(code *)PTR_error_0003e2a4)(0,0,uVar4);
                    /* WARNING: Subroutine does not return */
  usage(2);
}



void main(uint param_1,undefined4 *param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int *piVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined1 *puVar7;
  int *piVar8;
  
  puVar1 = PTR_DAT_0003e0f8;
  set_program_name(*param_2);
  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);
  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);
  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);
  puVar1 = PTR_close_stdout_0003e140;
  *(undefined4 *)PTR_exit_failure_0003e138 = 3;
  FUN_0002aa00(puVar1);
  parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,
                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,
                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);
  if (1 < param_1) {
    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);
    puVar1 = PTR_DAT_0003e0e8;
    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {
      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;
      piVar4 = (int *)FUN_000143dc(1);
      puVar2 = PTR_stdout_0003e250;
      piVar8 = *(int **)(puVar1 + -0x1ca0);
      if (*piVar8 == 0) {
        if (*piVar4 == 0) {
          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);
          iVar3 = *(int *)puVar2;
          puVar7 = *(undefined1 **)(iVar3 + 0x14);
          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {
            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;
            *puVar7 = 10;
          }
          else {
            (*(code *)PTR___overflow_0003e230)(iVar3,10);
          }
LAB_00011c38:
          FUN_00012114(piVar4);
          return;
        }
        if (*piVar4 == 1) {
          (*(code *)PTR_puts_0003e290)(piVar4[1]);
          goto LAB_00011c38;
        }
        goto LAB_00011d4c;
      }
      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);
      uVar6 = quotearg_n_style(0,8,*piVar8);
      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);
    }
  }
  uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);
  (*(code *)PTR_error_0003e2a4)(0,0,uVar5);
  usage(2);
LAB_00011d4c:
  (*(code *)PTR_abort_0003e200)();
  return;
}


lui gp,0x3
addiu gp,gp,0x4610
addu gp,gp,t9
addiu sp,sp,-0x40
lw t9,-0x7f8c(gp)
sw s1,0x34(sp)
or s1,a0,zero
sw ra,0x3c(sp)
sw gp,0x28(sp)
sw s2,0x38(sp)
sw s0,0x30(sp)
or s0,a1,zero
lw s2,-0x7fc8(gp)
bal 0x00014ef0
_lw a0,0x0(a1)
li a0,0x6
lw gp,0x28(sp)
lw a1,-0x7fc8(gp)
lw t9,-0x7e88(gp)
jalr t9
_addiu a1,a1,-0x3878
addiu a0,s2,-0x4860
lw gp,0x28(sp)
lw a1,-0x7fc8(gp)
lw t9,-0x7eb0(gp)
jalr t9
_addiu a1,a1,-0x45f0
lw gp,0x28(sp)
lw t9,-0x7df8(gp)
jalr t9
_addiu a0,s2,-0x4860
li v1,0x3
lw gp,0x28(sp)
lw v0,-0x7f88(gp)
lw t9,-0x7f84(gp)
lw a0,-0x7f80(gp)
sw v1,0x0(v0)
bal 0x0002aa00
_nop
or a1,s0,zero
lw gp,0x28(sp)
or a0,s1,zero
sw zero,0x24(sp)
lw v0,-0x7fc8(gp)
lw a3,-0x7fc8(gp)
lw a2,-0x7fc8(gp)
addiu v0,v0,-0x45dc
lw t9,-0x7f7c(gp)
addiu a3,a3,-0x4864
sw v0,0x20(sp)
addiu a2,a2,-0x5090
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x45d0
sw v0,0x1c(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x45c0
sw v0,0x18(sp)
lw v0,-0x7f78(gp)
sw v0,0x14(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x45b4
bal 0x000146c0
_sw v0,0x10(sp)
sltiu v0,s1,0x2
bne v0,zero,0x00011d0c
_lw gp,0x28(sp)
lw a1,-0x7fc8(gp)
lw t9,-0x7d98(gp)
lw a0,0x4(s0)
jalr t9
_addiu a1,a1,-0x45ac
addiu v1,s0,0x4
bne v0,zero,0x00011ca0
_lw gp,0x28(sp)
li v0,0x2
beq s1,v0,0x00011d10
_lw a1,-0x7fc8(gp)
lw s0,-0x7fd8(gp)
addiu v0,v1,0x4
lw t9,-0x7fcc(gp)
li a0,0x1
addiu t9,t9,0x43dc
bal 0x000143dc
_sw v0,-0x1ca0(s0)
lw s1,-0x1ca0(s0)
or s0,v0,zero
lw v0,0x0(s1)
bne v0,zero,0x00011cbc
_lw gp,0x28(sp)
lw v0,0x0(s0)
beq v0,zero,0x00011c60
_addiu a2,s0,0x4
li v1,0x1
bne v0,v1,0x00011d4c
_lw t9,-0x7e30(gp)
jalr t9
_lw a0,0x4(s0)
lw gp,0x28(sp)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x2114
bal 0x00012114
_or a0,s0,zero
lw ra,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x40
lw s1,-0x7e70(gp)
lw t9,-0x7dfc(gp)
li a1,0xa
jalr t9
_lw a0,0x0(s1)
lw a0,0x0(s1)
lw v1,0x14(a0)
lw v0,0x18(a0)
sltu v0,v1,v0
beq v0,zero,0x00011ca8
_lw gp,0x28(sp)
addiu v0,v1,0x1
sw v0,0x14(a0)
li v0,0xa
b 0x00011c38
_sb v0,0x0(v1)
b 0x00011be4
_or v1,s0,zero
lw t9,-0x7e90(gp)
jalr t9
_li a1,0xa
b 0x00011c38
_lw gp,0x28(sp)
lw a1,-0x7fc8(gp)
li a2,0x5
lw t9,-0x7de4(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,-0x4598
li a1,0x8
lw gp,0x28(sp)
or a0,zero,zero
lw a2,0x0(s1)
lw t9,-0x7fbc(gp)
bal 0x00016e3c
_or s0,v0,zero
or a1,zero,zero
lw gp,0x28(sp)
li a0,0x2
or a3,v0,zero
lw t9,-0x7e1c(gp)
jalr t9
_or a2,s0,zero
lw a1,-0x7fc8(gp)
li a2,0x5
lw t9,-0x7de4(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,-0x45a8
or a0,zero,zero
lw gp,0x28(sp)
or a1,zero,zero
lw t9,-0x7e1c(gp)
jalr t9
_or a2,v0,zero
lw gp,0x28(sp)
lw t9,-0x7f78(gp)
bal 0x00012358
_li a0,0x2
lw t9,-0x7ec0(gp)
jalr t9
_nop
(translation_unit "void main(uint param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*param_2);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  FUN_0002aa00(puVar1);\n  parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }\n  uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar5);\n  usage(2);\nLAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();\n  return;\n}\n\n" (function_definition "void main(uint param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*param_2);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  FUN_0002aa00(puVar1);\n  parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }\n  uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar5);\n  usage(2);\nLAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();\n  return;\n}" primitive_type (function_declarator "main(uint param_1,undefined4 *param_2)" identifier (parameter_list "(uint param_1,undefined4 *param_2)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*param_2);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  FUN_0002aa00(puVar1);\n  parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }\n  uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar5);\n  usage(2);\nLAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();\n  return;\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 *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (expression_statement "puVar1 = PTR_DAT_0003e0f8;" (assignment_expression "puVar1 = PTR_DAT_0003e0f8" identifier = identifier) ;) (expression_statement "set_program_name(*param_2);" (call_expression "set_program_name(*param_2)" identifier (argument_list "(*param_2)" ( (pointer_expression "*param_2" * identifier) ))) ;) (expression_statement "(*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);" (call_expression "(*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878)" (parenthesized_expression "(*(code *)PTR_setlocale_0003e238)" ( (pointer_expression "*(code *)PTR_setlocale_0003e238" * (cast_expression "(code *)PTR_setlocale_0003e238" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(6,PTR_DAT_0003e0f8 + -0x3878)" ( number_literal , (binary_expression "PTR_DAT_0003e0f8 + -0x3878" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);" (call_expression "(*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0)" (parenthesized_expression "(*(code *)PTR_bindtextdomain_0003e210)" ( (pointer_expression "*(code *)PTR_bindtextdomain_0003e210" * (cast_expression "(code *)PTR_bindtextdomain_0003e210" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0)" ( (binary_expression "puVar1 + -0x4860" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45f0" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);" (call_expression "(*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860)" (parenthesized_expression "(*(code *)PTR_textdomain_0003e2c8)" ( (pointer_expression "*(code *)PTR_textdomain_0003e2c8" * (cast_expression "(code *)PTR_textdomain_0003e2c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1 + -0x4860)" ( (binary_expression "puVar1 + -0x4860" identifier + number_literal) ))) ;) (expression_statement "puVar1 = PTR_close_stdout_0003e140;" (assignment_expression "puVar1 = PTR_close_stdout_0003e140" identifier = identifier) ;) (expression_statement "*(undefined4 *)PTR_exit_failure_0003e138 = 3;" (assignment_expression "*(undefined4 *)PTR_exit_failure_0003e138 = 3" (pointer_expression "*(undefined4 *)PTR_exit_failure_0003e138" * (cast_expression "(undefined4 *)PTR_exit_failure_0003e138" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "FUN_0002aa00(puVar1);" (call_expression "FUN_0002aa00(puVar1)" identifier (argument_list "(puVar1)" ( identifier ))) ;) (expression_statement "parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);" (call_expression "parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0)" identifier (argument_list "(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0)" ( identifier , identifier , (binary_expression "PTR_DAT_0003e0f8 + -0x5090" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x4864" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45b4" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003e0f8 + -0x45c0" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45d0" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45dc" identifier + number_literal) , number_literal ))) ;) (if_statement "if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }" if (parenthesized_expression "(1 < param_1)" ( (binary_expression "1 < param_1" number_literal < identifier) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac)" identifier = (call_expression "(*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac)" (parenthesized_expression "(*(code *)PTR_strcmp_0003e328)" ( (pointer_expression "*(code *)PTR_strcmp_0003e328" * (cast_expression "(code *)PTR_strcmp_0003e328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2[1],PTR_DAT_0003e0f8 + -0x45ac)" ( (subscript_expression "param_2[1]" identifier [ number_literal ]) , (binary_expression "PTR_DAT_0003e0f8 + -0x45ac" identifier + number_literal) )))) ;) (expression_statement "puVar1 = PTR_DAT_0003e0e8;" (assignment_expression "puVar1 = PTR_DAT_0003e0e8" identifier = identifier) ;) (if_statement "if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }" if (parenthesized_expression "((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2))" ( (binary_expression "(iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(param_2 = param_2 + 1, param_1 != 2)" ( (comma_expression "param_2 = param_2 + 1, param_1 != 2" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) , (binary_expression "param_1 != 2" identifier != number_literal)) ))) )) (compound_statement "{\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }" { (expression_statement "*(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;" (assignment_expression "*(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1" (pointer_expression "*(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0)" * (cast_expression "(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e0e8 + -0x1ca0)" ( (binary_expression "PTR_DAT_0003e0e8 + -0x1ca0" identifier + number_literal) )))) = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "piVar4 = (int *)FUN_000143dc(1);" (assignment_expression "piVar4 = (int *)FUN_000143dc(1)" identifier = (cast_expression "(int *)FUN_000143dc(1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000143dc(1)" identifier (argument_list "(1)" ( number_literal ))))) ;) (expression_statement "puVar2 = PTR_stdout_0003e250;" (assignment_expression "puVar2 = PTR_stdout_0003e250" identifier = identifier) ;) (expression_statement "piVar8 = *(int **)(puVar1 + -0x1ca0);" (assignment_expression "piVar8 = *(int **)(puVar1 + -0x1ca0)" identifier = (pointer_expression "*(int **)(puVar1 + -0x1ca0)" * (cast_expression "(int **)(puVar1 + -0x1ca0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x1ca0)" ( (binary_expression "puVar1 + -0x1ca0" identifier + number_literal) ))))) ;) (if_statement "if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }" if (parenthesized_expression "(*piVar8 == 0)" ( (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" * identifier) == number_literal) )) (compound_statement "{\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }" { (if_statement "if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }" if (parenthesized_expression "(*piVar4 == 0)" ( (binary_expression "*piVar4 == 0" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }" { (expression_statement "(*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);" (call_expression "(*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1)" (parenthesized_expression "(*(code *)PTR___gmpz_out_str_0003e2c4)" ( (pointer_expression "*(code *)PTR___gmpz_out_str_0003e2c4" * (cast_expression "(code *)PTR___gmpz_out_str_0003e2c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1)" ( (pointer_expression "*(undefined4 *)PTR_stdout_0003e250" * (cast_expression "(undefined4 *)PTR_stdout_0003e250" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (binary_expression "piVar4 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar3 = *(int *)puVar2;" (assignment_expression "iVar3 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar7 = *(undefined1 **)(iVar3 + 0x14);" (assignment_expression "puVar7 = *(undefined1 **)(iVar3 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar3 + 0x14)" * (cast_expression "(undefined1 **)(iVar3 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" if (parenthesized_expression "(puVar7 < *(undefined1 **)(iVar3 + 0x18))" ( (binary_expression "puVar7 < *(undefined1 **)(iVar3 + 0x18)" identifier < (pointer_expression "*(undefined1 **)(iVar3 + 0x18)" * (cast_expression "(undefined1 **)(iVar3 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }" { (expression_statement "*(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;" (assignment_expression "*(undefined1 **)(iVar3 + 0x14) = puVar7 + 1" (pointer_expression "*(undefined1 **)(iVar3 + 0x14)" * (cast_expression "(undefined1 **)(iVar3 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = 10;" (assignment_expression "*puVar7 = 10" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" else (compound_statement "{\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" { (expression_statement "(*(code *)PTR___overflow_0003e230)(iVar3,10);" (call_expression "(*(code *)PTR___overflow_0003e230)(iVar3,10)" (parenthesized_expression "(*(code *)PTR___overflow_0003e230)" ( (pointer_expression "*(code *)PTR___overflow_0003e230" * (cast_expression "(code *)PTR___overflow_0003e230" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,10)" ( identifier , number_literal ))) ;) }))) (labeled_statement "LAB_00011c38:\n          FUN_00012114(piVar4);" statement_identifier : (expression_statement "FUN_00012114(piVar4);" (call_expression "FUN_00012114(piVar4)" identifier (argument_list "(piVar4)" ( identifier ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }" if (parenthesized_expression "(*piVar4 == 1)" ( (binary_expression "*piVar4 == 1" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }" { (expression_statement "(*(code *)PTR_puts_0003e290)(piVar4[1]);" (call_expression "(*(code *)PTR_puts_0003e290)(piVar4[1])" (parenthesized_expression "(*(code *)PTR_puts_0003e290)" ( (pointer_expression "*(code *)PTR_puts_0003e290" * (cast_expression "(code *)PTR_puts_0003e290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4[1])" ( (subscript_expression "piVar4[1]" identifier [ number_literal ]) ))) ;) (goto_statement "goto LAB_00011c38;" goto statement_identifier ;) })) (goto_statement "goto LAB_00011d4c;" goto statement_identifier ;) })) (expression_statement "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0003e2dc)" ( (pointer_expression "*(code *)PTR_dcgettext_0003e2dc" * (cast_expression "(code *)PTR_dcgettext_0003e2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_DAT_0003e0f8 + -0x4598,5)" ( number_literal , (binary_expression "PTR_DAT_0003e0f8 + -0x4598" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar6 = quotearg_n_style(0,8,*piVar8);" (assignment_expression "uVar6 = quotearg_n_style(0,8,*piVar8)" identifier = (call_expression "quotearg_n_style(0,8,*piVar8)" identifier (argument_list "(0,8,*piVar8)" ( number_literal , number_literal , (pointer_expression "*piVar8" * identifier) )))) ;) (expression_statement "(*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);" (call_expression "(*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6)" (parenthesized_expression "(*(code *)PTR_error_0003e2a4)" ( (pointer_expression "*(code *)PTR_error_0003e2a4" * (cast_expression "(code *)PTR_error_0003e2a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,0,uVar5,uVar6)" ( number_literal , number_literal , identifier , identifier ))) ;) })) })) (expression_statement "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0003e2dc)" ( (pointer_expression "*(code *)PTR_dcgettext_0003e2dc" * (cast_expression "(code *)PTR_dcgettext_0003e2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_DAT_0003e0f8 + -0x45a8,5)" ( number_literal , (binary_expression "PTR_DAT_0003e0f8 + -0x45a8" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_0003e2a4)(0,0,uVar5);" (call_expression "(*(code *)PTR_error_0003e2a4)(0,0,uVar5)" (parenthesized_expression "(*(code *)PTR_error_0003e2a4)" ( (pointer_expression "*(code *)PTR_error_0003e2a4" * (cast_expression "(code *)PTR_error_0003e2a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0,uVar5)" ( number_literal , number_literal , identifier ))) ;) (expression_statement "usage(2);" (call_expression "usage(2)" identifier (argument_list "(2)" ( number_literal ))) ;) (labeled_statement "LAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();" statement_identifier : (expression_statement "(*(code *)PTR_abort_0003e200)();" (call_expression "(*(code *)PTR_abort_0003e200)()" (parenthesized_expression "(*(code *)PTR_abort_0003e200)" ( (pointer_expression "*(code *)PTR_abort_0003e200" * (cast_expression "(code *)PTR_abort_0003e200" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "int main(int argc,char **argv)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined3 extraout_var;\n  int iVar3;\n  VALUE *v;\n  _Bool _Var6;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*argv);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  atexit((__func *)puVar1);\n  parse_long_options(argc,argv,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,(_func_void_int *)PTR_usage_0003e148,\n                     PTR_DAT_0003e0f8 + -0x45c0,PTR_DAT_0003e0f8 + -0x45d0,\n                     PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < (uint)argc) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(argv[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (argv = argv + 1, argc != 2)) {\n      *(char ***)(PTR_DAT_0003e0e8 + -0x1ca0) = argv + 1;\n      v = eval(true);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (v->type == integer) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }\n        else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }\n        _Var6 = null(v);\n        return CONCAT31(extraout_var,_Var6);\n      }\n      uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      pcVar5 = quotearg_n_style(0,locale_quoting_style,(char *)*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5);\n    }\n  }\n  uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar4);\n                    /* WARNING: Subroutine does not return */\n  usage(2);\n}\n\n" (function_definition "int main(int argc,char **argv)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined3 extraout_var;\n  int iVar3;\n  VALUE *v;\n  _Bool _Var6;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*argv);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  atexit((__func *)puVar1);\n  parse_long_options(argc,argv,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,(_func_void_int *)PTR_usage_0003e148,\n                     PTR_DAT_0003e0f8 + -0x45c0,PTR_DAT_0003e0f8 + -0x45d0,\n                     PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < (uint)argc) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(argv[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (argv = argv + 1, argc != 2)) {\n      *(char ***)(PTR_DAT_0003e0e8 + -0x1ca0) = argv + 1;\n      v = eval(true);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (v->type == integer) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }\n        else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }\n        _Var6 = null(v);\n        return CONCAT31(extraout_var,_Var6);\n      }\n      uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      pcVar5 = quotearg_n_style(0,locale_quoting_style,(char *)*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5);\n    }\n  }\n  uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar4);\n                    /* WARNING: Subroutine does not return */\n  usage(2);\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  undefined3 extraout_var;\n  int iVar3;\n  VALUE *v;\n  _Bool _Var6;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*argv);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  atexit((__func *)puVar1);\n  parse_long_options(argc,argv,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,(_func_void_int *)PTR_usage_0003e148,\n                     PTR_DAT_0003e0f8 + -0x45c0,PTR_DAT_0003e0f8 + -0x45d0,\n                     PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < (uint)argc) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(argv[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (argv = argv + 1, argc != 2)) {\n      *(char ***)(PTR_DAT_0003e0e8 + -0x1ca0) = argv + 1;\n      v = eval(true);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (v->type == integer) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }\n        else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }\n        _Var6 = null(v);\n        return CONCAT31(extraout_var,_Var6);\n      }\n      uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      pcVar5 = quotearg_n_style(0,locale_quoting_style,(char *)*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5);\n    }\n  }\n  uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar4);\n                    /* WARNING: Subroutine does not return */\n  usage(2);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "VALUE *v;" type_identifier (pointer_declarator "*v" * identifier) ;) (declaration "_Bool _Var6;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (expression_statement "puVar1 = PTR_DAT_0003e0f8;" (assignment_expression "puVar1 = PTR_DAT_0003e0f8" identifier = identifier) ;) (expression_statement "set_program_name(*argv);" (call_expression "set_program_name(*argv)" identifier (argument_list "(*argv)" ( (pointer_expression "*argv" * identifier) ))) ;) (expression_statement "(*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);" (call_expression "(*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878)" (parenthesized_expression "(*(code *)PTR_setlocale_0003e238)" ( (pointer_expression "*(code *)PTR_setlocale_0003e238" * (cast_expression "(code *)PTR_setlocale_0003e238" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(6,PTR_DAT_0003e0f8 + -0x3878)" ( number_literal , (binary_expression "PTR_DAT_0003e0f8 + -0x3878" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);" (call_expression "(*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0)" (parenthesized_expression "(*(code *)PTR_bindtextdomain_0003e210)" ( (pointer_expression "*(code *)PTR_bindtextdomain_0003e210" * (cast_expression "(code *)PTR_bindtextdomain_0003e210" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0)" ( (binary_expression "puVar1 + -0x4860" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45f0" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);" (call_expression "(*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860)" (parenthesized_expression "(*(code *)PTR_textdomain_0003e2c8)" ( (pointer_expression "*(code *)PTR_textdomain_0003e2c8" * (cast_expression "(code *)PTR_textdomain_0003e2c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1 + -0x4860)" ( (binary_expression "puVar1 + -0x4860" identifier + number_literal) ))) ;) (expression_statement "puVar1 = PTR_close_stdout_0003e140;" (assignment_expression "puVar1 = PTR_close_stdout_0003e140" identifier = identifier) ;) (expression_statement "*(undefined4 *)PTR_exit_failure_0003e138 = 3;" (assignment_expression "*(undefined4 *)PTR_exit_failure_0003e138 = 3" (pointer_expression "*(undefined4 *)PTR_exit_failure_0003e138" * (cast_expression "(undefined4 *)PTR_exit_failure_0003e138" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "atexit((__func *)puVar1);" (call_expression "atexit((__func *)puVar1)" identifier (argument_list "((__func *)puVar1)" ( (cast_expression "(__func *)puVar1" ( (type_descriptor "__func *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "parse_long_options(argc,argv,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,(_func_void_int *)PTR_usage_0003e148,\n                     PTR_DAT_0003e0f8 + -0x45c0,PTR_DAT_0003e0f8 + -0x45d0,\n                     PTR_DAT_0003e0f8 + -0x45dc,0);" (call_expression "parse_long_options(argc,argv,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,(_func_void_int *)PTR_usage_0003e148,\n                     PTR_DAT_0003e0f8 + -0x45c0,PTR_DAT_0003e0f8 + -0x45d0,\n                     PTR_DAT_0003e0f8 + -0x45dc,0)" identifier (argument_list "(argc,argv,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,(_func_void_int *)PTR_usage_0003e148,\n                     PTR_DAT_0003e0f8 + -0x45c0,PTR_DAT_0003e0f8 + -0x45d0,\n                     PTR_DAT_0003e0f8 + -0x45dc,0)" ( identifier , identifier , (binary_expression "PTR_DAT_0003e0f8 + -0x5090" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x4864" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45b4" identifier + number_literal) , (cast_expression "(_func_void_int *)PTR_usage_0003e148" ( (type_descriptor "_func_void_int *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "PTR_DAT_0003e0f8 + -0x45c0" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45d0" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45dc" identifier + number_literal) , number_literal ))) ;) (if_statement "if (1 < (uint)argc) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(argv[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (argv = argv + 1, argc != 2)) {\n      *(char ***)(PTR_DAT_0003e0e8 + -0x1ca0) = argv + 1;\n      v = eval(true);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (v->type == integer) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }\n        else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }\n        _Var6 = null(v);\n        return CONCAT31(extraout_var,_Var6);\n      }\n      uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      pcVar5 = quotearg_n_style(0,locale_quoting_style,(char *)*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5);\n    }\n  }" if (parenthesized_expression "(1 < (uint)argc)" ( (binary_expression "1 < (uint)argc" number_literal < (cast_expression "(uint)argc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(argv[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (argv = argv + 1, argc != 2)) {\n      *(char ***)(PTR_DAT_0003e0e8 + -0x1ca0) = argv + 1;\n      v = eval(true);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (v->type == integer) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }\n        else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }\n        _Var6 = null(v);\n        return CONCAT31(extraout_var,_Var6);\n      }\n      uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      pcVar5 = quotearg_n_style(0,locale_quoting_style,(char *)*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5);\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strcmp_0003e328)(argv[1],PTR_DAT_0003e0f8 + -0x45ac);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_0003e328)(argv[1],PTR_DAT_0003e0f8 + -0x45ac)" identifier = (call_expression "(*(code *)PTR_strcmp_0003e328)(argv[1],PTR_DAT_0003e0f8 + -0x45ac)" (parenthesized_expression "(*(code *)PTR_strcmp_0003e328)" ( (pointer_expression "*(code *)PTR_strcmp_0003e328" * (cast_expression "(code *)PTR_strcmp_0003e328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(argv[1],PTR_DAT_0003e0f8 + -0x45ac)" ( (subscript_expression "argv[1]" identifier [ number_literal ]) , (binary_expression "PTR_DAT_0003e0f8 + -0x45ac" identifier + number_literal) )))) ;) (expression_statement "puVar1 = PTR_DAT_0003e0e8;" (assignment_expression "puVar1 = PTR_DAT_0003e0e8" identifier = identifier) ;) (if_statement "if ((iVar3 != 0) || (argv = argv + 1, argc != 2)) {\n      *(char ***)(PTR_DAT_0003e0e8 + -0x1ca0) = argv + 1;\n      v = eval(true);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (v->type == integer) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }\n        else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }\n        _Var6 = null(v);\n        return CONCAT31(extraout_var,_Var6);\n      }\n      uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      pcVar5 = quotearg_n_style(0,locale_quoting_style,(char *)*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5);\n    }" if (parenthesized_expression "((iVar3 != 0) || (argv = argv + 1, argc != 2))" ( (binary_expression "(iVar3 != 0) || (argv = argv + 1, argc != 2)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(argv = argv + 1, argc != 2)" ( (comma_expression "argv = argv + 1, argc != 2" (assignment_expression "argv = argv + 1" identifier = (binary_expression "argv + 1" identifier + number_literal)) , (binary_expression "argc != 2" identifier != number_literal)) ))) )) (compound_statement "{\n      *(char ***)(PTR_DAT_0003e0e8 + -0x1ca0) = argv + 1;\n      v = eval(true);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (v->type == integer) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }\n        else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }\n        _Var6 = null(v);\n        return CONCAT31(extraout_var,_Var6);\n      }\n      uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      pcVar5 = quotearg_n_style(0,locale_quoting_style,(char *)*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5);\n    }" { (expression_statement "*(char ***)(PTR_DAT_0003e0e8 + -0x1ca0) = argv + 1;" (assignment_expression "*(char ***)(PTR_DAT_0003e0e8 + -0x1ca0) = argv + 1" (pointer_expression "*(char ***)(PTR_DAT_0003e0e8 + -0x1ca0)" * (cast_expression "(char ***)(PTR_DAT_0003e0e8 + -0x1ca0)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(PTR_DAT_0003e0e8 + -0x1ca0)" ( (binary_expression "PTR_DAT_0003e0e8 + -0x1ca0" identifier + number_literal) )))) = (binary_expression "argv + 1" identifier + number_literal)) ;) (expression_statement "v = eval(true);" (assignment_expression "v = eval(true)" identifier = (call_expression "eval(true)" identifier (argument_list "(true)" ( true )))) ;) (expression_statement "puVar2 = PTR_stdout_0003e250;" (assignment_expression "puVar2 = PTR_stdout_0003e250" identifier = identifier) ;) (expression_statement "piVar8 = *(int **)(puVar1 + -0x1ca0);" (assignment_expression "piVar8 = *(int **)(puVar1 + -0x1ca0)" identifier = (pointer_expression "*(int **)(puVar1 + -0x1ca0)" * (cast_expression "(int **)(puVar1 + -0x1ca0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x1ca0)" ( (binary_expression "puVar1 + -0x1ca0" identifier + number_literal) ))))) ;) (if_statement "if (*piVar8 == 0) {\n        if (v->type == integer) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }\n        else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }\n        _Var6 = null(v);\n        return CONCAT31(extraout_var,_Var6);\n      }" if (parenthesized_expression "(*piVar8 == 0)" ( (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" * identifier) == number_literal) )) (compound_statement "{\n        if (v->type == integer) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }\n        else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }\n        _Var6 = null(v);\n        return CONCAT31(extraout_var,_Var6);\n      }" { (if_statement "if (v->type == integer) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }\n        else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }" if (parenthesized_expression "(v->type == integer)" ( (binary_expression "v->type == integer" (field_expression "v->type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\n        }" { (expression_statement "(*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u);" (call_expression "(*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,&v->u)" (parenthesized_expression "(*(code *)PTR___gmpz_out_str_0003e2c4)" ( (pointer_expression "*(code *)PTR___gmpz_out_str_0003e2c4" * (cast_expression "(code *)PTR___gmpz_out_str_0003e2c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_stdout_0003e250,10,&v->u)" ( (pointer_expression "*(undefined4 *)PTR_stdout_0003e250" * (cast_expression "(undefined4 *)PTR_stdout_0003e250" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (pointer_expression "&v->u" & (field_expression "v->u" identifier -> field_identifier)) ))) ;) (expression_statement "iVar3 = *(int *)puVar2;" (assignment_expression "iVar3 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar7 = *(undefined1 **)(iVar3 + 0x14);" (assignment_expression "puVar7 = *(undefined1 **)(iVar3 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar3 + 0x14)" * (cast_expression "(undefined1 **)(iVar3 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" if (parenthesized_expression "(puVar7 < *(undefined1 **)(iVar3 + 0x18))" ( (binary_expression "puVar7 < *(undefined1 **)(iVar3 + 0x18)" identifier < (pointer_expression "*(undefined1 **)(iVar3 + 0x18)" * (cast_expression "(undefined1 **)(iVar3 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }" { (expression_statement "*(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;" (assignment_expression "*(undefined1 **)(iVar3 + 0x14) = puVar7 + 1" (pointer_expression "*(undefined1 **)(iVar3 + 0x14)" * (cast_expression "(undefined1 **)(iVar3 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = 10;" (assignment_expression "*puVar7 = 10" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" else (compound_statement "{\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" { (expression_statement "(*(code *)PTR___overflow_0003e230)(iVar3,10);" (call_expression "(*(code *)PTR___overflow_0003e230)(iVar3,10)" (parenthesized_expression "(*(code *)PTR___overflow_0003e230)" ( (pointer_expression "*(code *)PTR___overflow_0003e230" * (cast_expression "(code *)PTR___overflow_0003e230" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,10)" ( identifier , number_literal ))) ;) }))) }) (else_clause "else {\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }" else (compound_statement "{\n          if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }\n          (*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);\n        }" { (if_statement "if (v->type != string) {\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }" if (parenthesized_expression "(v->type != string)" ( (binary_expression "v->type != string" (field_expression "v->type" identifier -> field_identifier) != identifier) )) (compound_statement "{\n            iVar3 = (*(code *)PTR_abort_0003e200)();\n            return iVar3;\n          }" { (expression_statement "iVar3 = (*(code *)PTR_abort_0003e200)();" (assignment_expression "iVar3 = (*(code *)PTR_abort_0003e200)()" identifier = (call_expression "(*(code *)PTR_abort_0003e200)()" (parenthesized_expression "(*(code *)PTR_abort_0003e200)" ( (pointer_expression "*(code *)PTR_abort_0003e200" * (cast_expression "(code *)PTR_abort_0003e200" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "(*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);" (call_expression "(*(code *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc)" (parenthesized_expression "(*(code *)PTR_puts_0003e290)" ( (pointer_expression "*(code *)PTR_puts_0003e290" * (cast_expression "(code *)PTR_puts_0003e290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((v->u).i[0]._mp_alloc)" ( (field_expression "(v->u).i[0]._mp_alloc" (subscript_expression "(v->u).i[0]" (field_expression "(v->u).i" (parenthesized_expression "(v->u)" ( (field_expression "v->u" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier) ))) ;) }))) (expression_statement "_Var6 = null(v);" (assignment_expression "_Var6 = null(v)" identifier = (call_expression "null(v)" identifier (argument_list "(v)" ( identifier )))) ;) (return_statement "return CONCAT31(extraout_var,_Var6);" return (call_expression "CONCAT31(extraout_var,_Var6)" identifier (argument_list "(extraout_var,_Var6)" ( identifier , identifier ))) ;) })) (expression_statement "uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0003e2dc)" ( (pointer_expression "*(code *)PTR_dcgettext_0003e2dc" * (cast_expression "(code *)PTR_dcgettext_0003e2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_DAT_0003e0f8 + -0x4598,5)" ( number_literal , (binary_expression "PTR_DAT_0003e0f8 + -0x4598" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar5 = quotearg_n_style(0,locale_quoting_style,(char *)*piVar8);" (assignment_expression "pcVar5 = quotearg_n_style(0,locale_quoting_style,(char *)*piVar8)" identifier = (call_expression "quotearg_n_style(0,locale_quoting_style,(char *)*piVar8)" identifier (argument_list "(0,locale_quoting_style,(char *)*piVar8)" ( number_literal , identifier , (cast_expression "(char *)*piVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier)) )))) ;) (expression_statement "(*(code *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5);" (call_expression "(*(code *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5)" (parenthesized_expression "(*(code *)PTR_error_0003e2a4)" ( (pointer_expression "*(code *)PTR_error_0003e2a4" * (cast_expression "(code *)PTR_error_0003e2a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,0,uVar4,pcVar5)" ( number_literal , number_literal , identifier , identifier ))) ;) })) })) (expression_statement "uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0003e2dc)" ( (pointer_expression "*(code *)PTR_dcgettext_0003e2dc" * (cast_expression "(code *)PTR_dcgettext_0003e2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_DAT_0003e0f8 + -0x45a8,5)" ( number_literal , (binary_expression "PTR_DAT_0003e0f8 + -0x45a8" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_0003e2a4)(0,0,uVar4);" (call_expression "(*(code *)PTR_error_0003e2a4)(0,0,uVar4)" (parenthesized_expression "(*(code *)PTR_error_0003e2a4)" ( (pointer_expression "*(code *)PTR_error_0003e2a4" * (cast_expression "(code *)PTR_error_0003e2a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0,uVar4)" ( number_literal , number_literal , identifier ))) ;) comment (expression_statement "usage(2);" (call_expression "usage(2)" identifier (argument_list "(2)" ( number_literal ))) ;) })))
(translation_unit "void main(uint param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*param_2);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  FUN_0002aa00(puVar1);\n  parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }\n  uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar5);\n  usage(2);\nLAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();\n  return;\n}\n\n" (function_definition "void main(uint param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*param_2);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  FUN_0002aa00(puVar1);\n  parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }\n  uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar5);\n  usage(2);\nLAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();\n  return;\n}" primitive_type (function_declarator "main(uint param_1,undefined4 *param_2)" identifier (parameter_list "(uint param_1,undefined4 *param_2)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*param_2);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  FUN_0002aa00(puVar1);\n  parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }\n  uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar5);\n  usage(2);\nLAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();\n  return;\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 *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (expression_statement "puVar1 = PTR_DAT_0003e0f8;" (assignment_expression "puVar1 = PTR_DAT_0003e0f8" identifier = identifier) ;) (expression_statement "set_program_name(*param_2);" (call_expression "set_program_name(*param_2)" identifier (argument_list "(*param_2)" ( (pointer_expression "*param_2" * identifier) ))) ;) (expression_statement "(*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);" (call_expression "(*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878)" (parenthesized_expression "(*(code *)PTR_setlocale_0003e238)" ( (pointer_expression "*(code *)PTR_setlocale_0003e238" * (cast_expression "(code *)PTR_setlocale_0003e238" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(6,PTR_DAT_0003e0f8 + -0x3878)" ( number_literal , (binary_expression "PTR_DAT_0003e0f8 + -0x3878" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);" (call_expression "(*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0)" (parenthesized_expression "(*(code *)PTR_bindtextdomain_0003e210)" ( (pointer_expression "*(code *)PTR_bindtextdomain_0003e210" * (cast_expression "(code *)PTR_bindtextdomain_0003e210" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0)" ( (binary_expression "puVar1 + -0x4860" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45f0" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);" (call_expression "(*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860)" (parenthesized_expression "(*(code *)PTR_textdomain_0003e2c8)" ( (pointer_expression "*(code *)PTR_textdomain_0003e2c8" * (cast_expression "(code *)PTR_textdomain_0003e2c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar1 + -0x4860)" ( (binary_expression "puVar1 + -0x4860" identifier + number_literal) ))) ;) (expression_statement "puVar1 = PTR_close_stdout_0003e140;" (assignment_expression "puVar1 = PTR_close_stdout_0003e140" identifier = identifier) ;) (expression_statement "*(undefined4 *)PTR_exit_failure_0003e138 = 3;" (assignment_expression "*(undefined4 *)PTR_exit_failure_0003e138 = 3" (pointer_expression "*(undefined4 *)PTR_exit_failure_0003e138" * (cast_expression "(undefined4 *)PTR_exit_failure_0003e138" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "FUN_0002aa00(puVar1);" (call_expression "FUN_0002aa00(puVar1)" identifier (argument_list "(puVar1)" ( identifier ))) ;) (expression_statement "parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);" (call_expression "parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0)" identifier (argument_list "(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0)" ( identifier , identifier , (binary_expression "PTR_DAT_0003e0f8 + -0x5090" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x4864" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45b4" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003e0f8 + -0x45c0" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45d0" identifier + number_literal) , (binary_expression "PTR_DAT_0003e0f8 + -0x45dc" identifier + number_literal) , number_literal ))) ;) (if_statement "if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }" if (parenthesized_expression "(1 < param_1)" ( (binary_expression "1 < param_1" number_literal < identifier) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac)" identifier = (call_expression "(*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac)" (parenthesized_expression "(*(code *)PTR_strcmp_0003e328)" ( (pointer_expression "*(code *)PTR_strcmp_0003e328" * (cast_expression "(code *)PTR_strcmp_0003e328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2[1],PTR_DAT_0003e0f8 + -0x45ac)" ( (subscript_expression "param_2[1]" identifier [ number_literal ]) , (binary_expression "PTR_DAT_0003e0f8 + -0x45ac" identifier + number_literal) )))) ;) (expression_statement "puVar1 = PTR_DAT_0003e0e8;" (assignment_expression "puVar1 = PTR_DAT_0003e0e8" identifier = identifier) ;) (if_statement "if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }" if (parenthesized_expression "((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2))" ( (binary_expression "(iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(param_2 = param_2 + 1, param_1 != 2)" ( (comma_expression "param_2 = param_2 + 1, param_1 != 2" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) , (binary_expression "param_1 != 2" identifier != number_literal)) ))) )) (compound_statement "{\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }" { (expression_statement "*(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;" (assignment_expression "*(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1" (pointer_expression "*(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0)" * (cast_expression "(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e0e8 + -0x1ca0)" ( (binary_expression "PTR_DAT_0003e0e8 + -0x1ca0" identifier + number_literal) )))) = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "piVar4 = (int *)FUN_000143dc(1);" (assignment_expression "piVar4 = (int *)FUN_000143dc(1)" identifier = (cast_expression "(int *)FUN_000143dc(1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000143dc(1)" identifier (argument_list "(1)" ( number_literal ))))) ;) (expression_statement "puVar2 = PTR_stdout_0003e250;" (assignment_expression "puVar2 = PTR_stdout_0003e250" identifier = identifier) ;) (expression_statement "piVar8 = *(int **)(puVar1 + -0x1ca0);" (assignment_expression "piVar8 = *(int **)(puVar1 + -0x1ca0)" identifier = (pointer_expression "*(int **)(puVar1 + -0x1ca0)" * (cast_expression "(int **)(puVar1 + -0x1ca0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x1ca0)" ( (binary_expression "puVar1 + -0x1ca0" identifier + number_literal) ))))) ;) (if_statement "if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }" if (parenthesized_expression "(*piVar8 == 0)" ( (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" * identifier) == number_literal) )) (compound_statement "{\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }" { (if_statement "if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }" if (parenthesized_expression "(*piVar4 == 0)" ( (binary_expression "*piVar4 == 0" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }" { (expression_statement "(*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);" (call_expression "(*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1)" (parenthesized_expression "(*(code *)PTR___gmpz_out_str_0003e2c4)" ( (pointer_expression "*(code *)PTR___gmpz_out_str_0003e2c4" * (cast_expression "(code *)PTR___gmpz_out_str_0003e2c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1)" ( (pointer_expression "*(undefined4 *)PTR_stdout_0003e250" * (cast_expression "(undefined4 *)PTR_stdout_0003e250" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (binary_expression "piVar4 + 1" identifier + number_literal) ))) ;) (expression_statement "iVar3 = *(int *)puVar2;" (assignment_expression "iVar3 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar7 = *(undefined1 **)(iVar3 + 0x14);" (assignment_expression "puVar7 = *(undefined1 **)(iVar3 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar3 + 0x14)" * (cast_expression "(undefined1 **)(iVar3 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" if (parenthesized_expression "(puVar7 < *(undefined1 **)(iVar3 + 0x18))" ( (binary_expression "puVar7 < *(undefined1 **)(iVar3 + 0x18)" identifier < (pointer_expression "*(undefined1 **)(iVar3 + 0x18)" * (cast_expression "(undefined1 **)(iVar3 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }" { (expression_statement "*(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;" (assignment_expression "*(undefined1 **)(iVar3 + 0x14) = puVar7 + 1" (pointer_expression "*(undefined1 **)(iVar3 + 0x14)" * (cast_expression "(undefined1 **)(iVar3 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = 10;" (assignment_expression "*puVar7 = 10" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" else (compound_statement "{\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" { (expression_statement "(*(code *)PTR___overflow_0003e230)(iVar3,10);" (call_expression "(*(code *)PTR___overflow_0003e230)(iVar3,10)" (parenthesized_expression "(*(code *)PTR___overflow_0003e230)" ( (pointer_expression "*(code *)PTR___overflow_0003e230" * (cast_expression "(code *)PTR___overflow_0003e230" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,10)" ( identifier , number_literal ))) ;) }))) (labeled_statement "LAB_00011c38:\n          FUN_00012114(piVar4);" statement_identifier : (expression_statement "FUN_00012114(piVar4);" (call_expression "FUN_00012114(piVar4)" identifier (argument_list "(piVar4)" ( identifier ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }" if (parenthesized_expression "(*piVar4 == 1)" ( (binary_expression "*piVar4 == 1" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }" { (expression_statement "(*(code *)PTR_puts_0003e290)(piVar4[1]);" (call_expression "(*(code *)PTR_puts_0003e290)(piVar4[1])" (parenthesized_expression "(*(code *)PTR_puts_0003e290)" ( (pointer_expression "*(code *)PTR_puts_0003e290" * (cast_expression "(code *)PTR_puts_0003e290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4[1])" ( (subscript_expression "piVar4[1]" identifier [ number_literal ]) ))) ;) (goto_statement "goto LAB_00011c38;" goto statement_identifier ;) })) (goto_statement "goto LAB_00011d4c;" goto statement_identifier ;) })) (expression_statement "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0003e2dc)" ( (pointer_expression "*(code *)PTR_dcgettext_0003e2dc" * (cast_expression "(code *)PTR_dcgettext_0003e2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_DAT_0003e0f8 + -0x4598,5)" ( number_literal , (binary_expression "PTR_DAT_0003e0f8 + -0x4598" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar6 = quotearg_n_style(0,8,*piVar8);" (assignment_expression "uVar6 = quotearg_n_style(0,8,*piVar8)" identifier = (call_expression "quotearg_n_style(0,8,*piVar8)" identifier (argument_list "(0,8,*piVar8)" ( number_literal , number_literal , (pointer_expression "*piVar8" * identifier) )))) ;) (expression_statement "(*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);" (call_expression "(*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6)" (parenthesized_expression "(*(code *)PTR_error_0003e2a4)" ( (pointer_expression "*(code *)PTR_error_0003e2a4" * (cast_expression "(code *)PTR_error_0003e2a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,0,uVar5,uVar6)" ( number_literal , number_literal , identifier , identifier ))) ;) })) })) (expression_statement "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0003e2dc)" ( (pointer_expression "*(code *)PTR_dcgettext_0003e2dc" * (cast_expression "(code *)PTR_dcgettext_0003e2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_DAT_0003e0f8 + -0x45a8,5)" ( number_literal , (binary_expression "PTR_DAT_0003e0f8 + -0x45a8" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_0003e2a4)(0,0,uVar5);" (call_expression "(*(code *)PTR_error_0003e2a4)(0,0,uVar5)" (parenthesized_expression "(*(code *)PTR_error_0003e2a4)" ( (pointer_expression "*(code *)PTR_error_0003e2a4" * (cast_expression "(code *)PTR_error_0003e2a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0,uVar5)" ( number_literal , number_literal , identifier ))) ;) (expression_statement "usage(2);" (call_expression "usage(2)" identifier (argument_list "(2)" ( number_literal ))) ;) (labeled_statement "LAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();" statement_identifier : (expression_statement "(*(code *)PTR_abort_0003e200)();" (call_expression "(*(code *)PTR_abort_0003e200)()" (parenthesized_expression "(*(code *)PTR_abort_0003e200)" ( (pointer_expression "*(code *)PTR_abort_0003e200" * (cast_expression "(code *)PTR_abort_0003e200" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (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) , (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 = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT , IDENT , IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;)) (return_statement return ;) })))
(function_definition "void main(uint param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*param_2);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  FUN_0002aa00(puVar1);\n  parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }\n  uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar5);\n  usage(2);\nLAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();\n  return;\n}" (primitive_type "void") (function_declarator "main(uint param_1,undefined4 *param_2)" (identifier "main") (parameter_list "(uint param_1,undefined4 *param_2)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  \n  puVar1 = PTR_DAT_0003e0f8;\n  set_program_name(*param_2);\n  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);\n  (*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);\n  (*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);\n  puVar1 = PTR_close_stdout_0003e140;\n  *(undefined4 *)PTR_exit_failure_0003e138 = 3;\n  FUN_0002aa00(puVar1);\n  parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);\n  if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }\n  uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);\n  (*(code *)PTR_error_0003e2a4)(0,0,uVar5);\n  usage(2);\nLAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();\n  return;\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 "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined1 *puVar7;" (type_identifier "undefined1") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (expression_statement "puVar1 = PTR_DAT_0003e0f8;" (assignment_expression "puVar1 = PTR_DAT_0003e0f8" (identifier "puVar1") (= "=") (identifier "PTR_DAT_0003e0f8")) (; ";")) (expression_statement "set_program_name(*param_2);" (call_expression "set_program_name(*param_2)" (identifier "set_program_name") (argument_list "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);" (call_expression "(*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878)" (parenthesized_expression "(*(code *)PTR_setlocale_0003e238)" (( "(") (pointer_expression "*(code *)PTR_setlocale_0003e238" (* "*") (cast_expression "(code *)PTR_setlocale_0003e238" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_setlocale_0003e238"))) () ")")) (argument_list "(6,PTR_DAT_0003e0f8 + -0x3878)" (( "(") (number_literal "6") (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x3878" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x3878")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);" (call_expression "(*(code *)PTR_bindtextdomain_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0)" (parenthesized_expression "(*(code *)PTR_bindtextdomain_0003e210)" (( "(") (pointer_expression "*(code *)PTR_bindtextdomain_0003e210" (* "*") (cast_expression "(code *)PTR_bindtextdomain_0003e210" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_bindtextdomain_0003e210"))) () ")")) (argument_list "(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0)" (( "(") (binary_expression "puVar1 + -0x4860" (identifier "puVar1") (+ "+") (number_literal "-0x4860")) (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x45f0" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x45f0")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860);" (call_expression "(*(code *)PTR_textdomain_0003e2c8)(puVar1 + -0x4860)" (parenthesized_expression "(*(code *)PTR_textdomain_0003e2c8)" (( "(") (pointer_expression "*(code *)PTR_textdomain_0003e2c8" (* "*") (cast_expression "(code *)PTR_textdomain_0003e2c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_textdomain_0003e2c8"))) () ")")) (argument_list "(puVar1 + -0x4860)" (( "(") (binary_expression "puVar1 + -0x4860" (identifier "puVar1") (+ "+") (number_literal "-0x4860")) () ")"))) (; ";")) (expression_statement "puVar1 = PTR_close_stdout_0003e140;" (assignment_expression "puVar1 = PTR_close_stdout_0003e140" (identifier "puVar1") (= "=") (identifier "PTR_close_stdout_0003e140")) (; ";")) (expression_statement "*(undefined4 *)PTR_exit_failure_0003e138 = 3;" (assignment_expression "*(undefined4 *)PTR_exit_failure_0003e138 = 3" (pointer_expression "*(undefined4 *)PTR_exit_failure_0003e138" (* "*") (cast_expression "(undefined4 *)PTR_exit_failure_0003e138" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_exit_failure_0003e138"))) (= "=") (number_literal "3")) (; ";")) (expression_statement "FUN_0002aa00(puVar1);" (call_expression "FUN_0002aa00(puVar1)" (identifier "FUN_0002aa00") (argument_list "(puVar1)" (( "(") (identifier "puVar1") () ")"))) (; ";")) (expression_statement "parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);" (call_expression "parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0)" (identifier "parse_long_options") (argument_list "(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,\n                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,\n                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x5090" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x5090")) (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x4864" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x4864")) (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x45b4" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x45b4")) (, ",") (identifier "PTR_usage_0003e148") (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x45c0" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x45c0")) (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x45d0" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x45d0")) (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x45dc" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x45dc")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (1 < param_1) {\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }" (if "if") (parenthesized_expression "(1 < param_1)" (( "(") (binary_expression "1 < param_1" (number_literal "1") (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);\n    puVar1 = PTR_DAT_0003e0e8;\n    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }\n  }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac)" (parenthesized_expression "(*(code *)PTR_strcmp_0003e328)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003e328" (* "*") (cast_expression "(code *)PTR_strcmp_0003e328" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003e328"))) () ")")) (argument_list "(param_2[1],PTR_DAT_0003e0f8 + -0x45ac)" (( "(") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x45ac" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x45ac")) () ")")))) (; ";")) (expression_statement "puVar1 = PTR_DAT_0003e0e8;" (assignment_expression "puVar1 = PTR_DAT_0003e0e8" (identifier "puVar1") (= "=") (identifier "PTR_DAT_0003e0e8")) (; ";")) (if_statement "if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }" (if "if") (parenthesized_expression "((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2))" (( "(") (binary_expression "(iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_2 = param_2 + 1, param_1 != 2)" (( "(") (comma_expression "param_2 = param_2 + 1, param_1 != 2" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (, ",") (binary_expression "param_1 != 2" (identifier "param_1") (!= "!=") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\n      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;\n      piVar4 = (int *)FUN_000143dc(1);\n      puVar2 = PTR_stdout_0003e250;\n      piVar8 = *(int **)(puVar1 + -0x1ca0);\n      if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }\n      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);\n      uVar6 = quotearg_n_style(0,8,*piVar8);\n      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);\n    }" ({ "{") (expression_statement "*(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;" (assignment_expression "*(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1" (pointer_expression "*(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0)" (* "*") (cast_expression "(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0003e0e8 + -0x1ca0)" (( "(") (binary_expression "PTR_DAT_0003e0e8 + -0x1ca0" (identifier "PTR_DAT_0003e0e8") (+ "+") (number_literal "-0x1ca0")) () ")")))) (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar4 = (int *)FUN_000143dc(1);" (assignment_expression "piVar4 = (int *)FUN_000143dc(1)" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_000143dc(1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000143dc(1)" (identifier "FUN_000143dc") (argument_list "(1)" (( "(") (number_literal "1") () ")"))))) (; ";")) (expression_statement "puVar2 = PTR_stdout_0003e250;" (assignment_expression "puVar2 = PTR_stdout_0003e250" (identifier "puVar2") (= "=") (identifier "PTR_stdout_0003e250")) (; ";")) (expression_statement "piVar8 = *(int **)(puVar1 + -0x1ca0);" (assignment_expression "piVar8 = *(int **)(puVar1 + -0x1ca0)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(puVar1 + -0x1ca0)" (* "*") (cast_expression "(int **)(puVar1 + -0x1ca0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + -0x1ca0)" (( "(") (binary_expression "puVar1 + -0x1ca0" (identifier "puVar1") (+ "+") (number_literal "-0x1ca0")) () ")"))))) (; ";")) (if_statement "if (*piVar8 == 0) {\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }" (if "if") (parenthesized_expression "(*piVar8 == 0)" (( "(") (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }\n        if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }\n        goto LAB_00011d4c;\n      }" ({ "{") (if_statement "if (*piVar4 == 0) {\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }" (if "if") (parenthesized_expression "(*piVar4 == 0)" (( "(") (binary_expression "*piVar4 == 0" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);\n          iVar3 = *(int *)puVar2;\n          puVar7 = *(undefined1 **)(iVar3 + 0x14);\n          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }\nLAB_00011c38:\n          FUN_00012114(piVar4);\n          return;\n        }" ({ "{") (expression_statement "(*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);" (call_expression "(*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1)" (parenthesized_expression "(*(code *)PTR___gmpz_out_str_0003e2c4)" (( "(") (pointer_expression "*(code *)PTR___gmpz_out_str_0003e2c4" (* "*") (cast_expression "(code *)PTR___gmpz_out_str_0003e2c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_out_str_0003e2c4"))) () ")")) (argument_list "(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1)" (( "(") (pointer_expression "*(undefined4 *)PTR_stdout_0003e250" (* "*") (cast_expression "(undefined4 *)PTR_stdout_0003e250" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_0003e250"))) (, ",") (number_literal "10") (, ",") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)puVar2;" (assignment_expression "iVar3 = *(int *)puVar2" (identifier "iVar3") (= "=") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "puVar7 = *(undefined1 **)(iVar3 + 0x14);" (assignment_expression "puVar7 = *(undefined1 **)(iVar3 + 0x14)" (identifier "puVar7") (= "=") (pointer_expression "*(undefined1 **)(iVar3 + 0x14)" (* "*") (cast_expression "(undefined1 **)(iVar3 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }\n          else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" (if "if") (parenthesized_expression "(puVar7 < *(undefined1 **)(iVar3 + 0x18))" (( "(") (binary_expression "puVar7 < *(undefined1 **)(iVar3 + 0x18)" (identifier "puVar7") (< "<") (pointer_expression "*(undefined1 **)(iVar3 + 0x18)" (* "*") (cast_expression "(undefined1 **)(iVar3 + 0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;\n            *puVar7 = 10;\n          }" ({ "{") (expression_statement "*(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;" (assignment_expression "*(undefined1 **)(iVar3 + 0x14) = puVar7 + 1" (pointer_expression "*(undefined1 **)(iVar3 + 0x14)" (* "*") (cast_expression "(undefined1 **)(iVar3 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar7 = 10;" (assignment_expression "*puVar7 = 10" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "10")) (; ";")) (} "}")) (else_clause "else {\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" (else "else") (compound_statement "{\n            (*(code *)PTR___overflow_0003e230)(iVar3,10);\n          }" ({ "{") (expression_statement "(*(code *)PTR___overflow_0003e230)(iVar3,10);" (call_expression "(*(code *)PTR___overflow_0003e230)(iVar3,10)" (parenthesized_expression "(*(code *)PTR___overflow_0003e230)" (( "(") (pointer_expression "*(code *)PTR___overflow_0003e230" (* "*") (cast_expression "(code *)PTR___overflow_0003e230" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___overflow_0003e230"))) () ")")) (argument_list "(iVar3,10)" (( "(") (identifier "iVar3") (, ",") (number_literal "10") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_00011c38:\n          FUN_00012114(piVar4);" (statement_identifier "LAB_00011c38") (: ":") (expression_statement "FUN_00012114(piVar4);" (call_expression "FUN_00012114(piVar4)" (identifier "FUN_00012114") (argument_list "(piVar4)" (( "(") (identifier "piVar4") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*piVar4 == 1) {\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }" (if "if") (parenthesized_expression "(*piVar4 == 1)" (( "(") (binary_expression "*piVar4 == 1" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          (*(code *)PTR_puts_0003e290)(piVar4[1]);\n          goto LAB_00011c38;\n        }" ({ "{") (expression_statement "(*(code *)PTR_puts_0003e290)(piVar4[1]);" (call_expression "(*(code *)PTR_puts_0003e290)(piVar4[1])" (parenthesized_expression "(*(code *)PTR_puts_0003e290)" (( "(") (pointer_expression "*(code *)PTR_puts_0003e290" (* "*") (cast_expression "(code *)PTR_puts_0003e290" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_puts_0003e290"))) () ")")) (argument_list "(piVar4[1])" (( "(") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (goto_statement "goto LAB_00011c38;" (goto "goto") (statement_identifier "LAB_00011c38") (; ";")) (} "}"))) (goto_statement "goto LAB_00011d4c;" (goto "goto") (statement_identifier "LAB_00011d4c") (; ";")) (} "}"))) (expression_statement "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0003e2dc)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_0003e2dc" (* "*") (cast_expression "(code *)PTR_dcgettext_0003e2dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_0003e2dc"))) () ")")) (argument_list "(0,PTR_DAT_0003e0f8 + -0x4598,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x4598" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x4598")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar6 = quotearg_n_style(0,8,*piVar8);" (assignment_expression "uVar6 = quotearg_n_style(0,8,*piVar8)" (identifier "uVar6") (= "=") (call_expression "quotearg_n_style(0,8,*piVar8)" (identifier "quotearg_n_style") (argument_list "(0,8,*piVar8)" (( "(") (number_literal "0") (, ",") (number_literal "8") (, ",") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);" (call_expression "(*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6)" (parenthesized_expression "(*(code *)PTR_error_0003e2a4)" (( "(") (pointer_expression "*(code *)PTR_error_0003e2a4" (* "*") (cast_expression "(code *)PTR_error_0003e2a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_error_0003e2a4"))) () ")")) (argument_list "(2,0,uVar5,uVar6)" (( "(") (number_literal "2") (, ",") (number_literal "0") (, ",") (identifier "uVar5") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_0003e2dc)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_0003e2dc" (* "*") (cast_expression "(code *)PTR_dcgettext_0003e2dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_0003e2dc"))) () ")")) (argument_list "(0,PTR_DAT_0003e0f8 + -0x45a8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_DAT_0003e0f8 + -0x45a8" (identifier "PTR_DAT_0003e0f8") (+ "+") (number_literal "-0x45a8")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_error_0003e2a4)(0,0,uVar5);" (call_expression "(*(code *)PTR_error_0003e2a4)(0,0,uVar5)" (parenthesized_expression "(*(code *)PTR_error_0003e2a4)" (( "(") (pointer_expression "*(code *)PTR_error_0003e2a4" (* "*") (cast_expression "(code *)PTR_error_0003e2a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_error_0003e2a4"))) () ")")) (argument_list "(0,0,uVar5)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "usage(2);" (call_expression "usage(2)" (identifier "usage") (argument_list "(2)" (( "(") (number_literal "2") () ")"))) (; ";")) (labeled_statement "LAB_00011d4c:\n  (*(code *)PTR_abort_0003e200)();" (statement_identifier "LAB_00011d4c") (: ":") (expression_statement "(*(code *)PTR_abort_0003e200)();" (call_expression "(*(code *)PTR_abort_0003e200)()" (parenthesized_expression "(*(code *)PTR_abort_0003e200)" (( "(") (pointer_expression "*(code *)PTR_abort_0003e200" (* "*") (cast_expression "(code *)PTR_abort_0003e200" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abort_0003e200"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

int function_1(int var_8,char **var_7)

{
  type_1 *var_3;
  type_1 *puVar2;
  type_2 extraout_var;
  int var_6;
  type_3 *v;
  type_4 _Var6;
  type_5 uVar4;
  char *pcVar5;
  type_6 *var_12;
  int *piVar8;
  
  var_3 = var_2;
  var_1(*var_7);
  (*(type_7 *)PTR_setlocale_0003e238)(6,var_2 + -0x3878);
  (*(type_7 *)PTR_bindtextdomain_0003e210)(var_3 + -0x4860,var_2 + -0x45f0);
  (*(type_7 *)PTR_textdomain_0003e2c8)(var_3 + -0x4860);
  var_3 = PTR_close_stdout_0003e140;
  *(type_5 *)PTR_exit_failure_0003e138 = 3;
  var_4((type_8 *)var_3);
  var_5(var_8,var_7,var_2 + -0x5090,var_2 + -0x4864,
                     var_2 + -0x45b4,(type_9 *)PTR_usage_0003e148,
                     var_2 + -0x45c0,var_2 + -0x45d0,
                     var_2 + -0x45dc,0);
  if (1 < (type_10)var_8) {
    var_6 = (*(type_7 *)PTR_strcmp_0003e328)(var_7[1],var_2 + -0x45ac);
    var_3 = var_9;
    if ((var_6 != 0) || (var_7 = var_7 + 1, var_8 != 2)) {
      *(char ***)(var_9 + -0x1ca0) = var_7 + 1;
      v = var_10(true);
      puVar2 = PTR_stdout_0003e250;
      piVar8 = *(int **)(var_3 + -0x1ca0);
      if (*piVar8 == 0) {
        if (v->type == var_11) {
          (*(type_7 *)PTR___gmpz_out_str_0003e2c4)(*(type_5 *)PTR_stdout_0003e250,10,&v->u);
          var_6 = *(int *)puVar2;
          var_12 = *(type_6 **)(var_6 + 0x14);
          if (var_12 < *(type_6 **)(var_6 + 0x18)) {
            *(type_6 **)(var_6 + 0x14) = var_12 + 1;
            *var_12 = 10;
          }
          else {
            (*(type_7 *)PTR___overflow_0003e230)(var_6,10);
          }
        }
        else {
          if (v->type != var_13) {
            var_6 = (*(type_7 *)PTR_abort_0003e200)();
            return var_6;
          }
          (*(type_7 *)PTR_puts_0003e290)((v->u).i[0]._mp_alloc);
        }
        _Var6 = var_14(v);
        return var_15(extraout_var,_Var6);
      }
      uVar4 = (*(type_7 *)PTR_dcgettext_0003e2dc)(0,var_2 + -0x4598,5);
      pcVar5 = var_16(0,locale_quoting_style,(char *)*piVar8);
      (*(type_7 *)PTR_error_0003e2a4)(2,0,uVar4,pcVar5);
    }
  }
  uVar4 = (*(type_7 *)PTR_dcgettext_0003e2dc)(0,var_2 + -0x45a8,5);
  (*(type_7 *)PTR_error_0003e2a4)(0,0,uVar4);
                    /* WARNING: Subroutine does not return */
  var_17(2);
}


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

void MASKED(uint param_1,undefined4 *param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int *piVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined1 *puVar7;
  int *piVar8;
  
  puVar1 = PTR_DAT_0003e0f8;
  set_program_name(*param_2);
  (*(code *)PTR_setlocale_0003e238)(6,PTR_DAT_0003e0f8 + -0x3878);
  (*(code *)PTR_bindtextdoMASKED_0003e210)(puVar1 + -0x4860,PTR_DAT_0003e0f8 + -0x45f0);
  (*(code *)PTR_textdoMASKED_0003e2c8)(puVar1 + -0x4860);
  puVar1 = PTR_close_stdout_0003e140;
  *(undefined4 *)PTR_exit_failure_0003e138 = 3;
  FUN_0002aa00(puVar1);
  parse_long_options(param_1,param_2,PTR_DAT_0003e0f8 + -0x5090,PTR_DAT_0003e0f8 + -0x4864,
                     PTR_DAT_0003e0f8 + -0x45b4,PTR_usage_0003e148,PTR_DAT_0003e0f8 + -0x45c0,
                     PTR_DAT_0003e0f8 + -0x45d0,PTR_DAT_0003e0f8 + -0x45dc,0);
  if (1 < param_1) {
    iVar3 = (*(code *)PTR_strcmp_0003e328)(param_2[1],PTR_DAT_0003e0f8 + -0x45ac);
    puVar1 = PTR_DAT_0003e0e8;
    if ((iVar3 != 0) || (param_2 = param_2 + 1, param_1 != 2)) {
      *(undefined4 **)(PTR_DAT_0003e0e8 + -0x1ca0) = param_2 + 1;
      piVar4 = (int *)FUN_000143dc(1);
      puVar2 = PTR_stdout_0003e250;
      piVar8 = *(int **)(puVar1 + -0x1ca0);
      if (*piVar8 == 0) {
        if (*piVar4 == 0) {
          (*(code *)PTR___gmpz_out_str_0003e2c4)(*(undefined4 *)PTR_stdout_0003e250,10,piVar4 + 1);
          iVar3 = *(int *)puVar2;
          puVar7 = *(undefined1 **)(iVar3 + 0x14);
          if (puVar7 < *(undefined1 **)(iVar3 + 0x18)) {
            *(undefined1 **)(iVar3 + 0x14) = puVar7 + 1;
            *puVar7 = 10;
          }
          else {
            (*(code *)PTR___overflow_0003e230)(iVar3,10);
          }
LAB_00011c38:
          FUN_00012114(piVar4);
          return;
        }
        if (*piVar4 == 1) {
          (*(code *)PTR_puts_0003e290)(piVar4[1]);
          goto LAB_00011c38;
        }
        goto LAB_00011d4c;
      }
      uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x4598,5);
      uVar6 = quotearg_n_style(0,8,*piVar8);
      (*(code *)PTR_error_0003e2a4)(2,0,uVar5,uVar6);
    }
  }
  uVar5 = (*(code *)PTR_dcgettext_0003e2dc)(0,PTR_DAT_0003e0f8 + -0x45a8,5);
  (*(code *)PTR_error_0003e2a4)(0,0,uVar5);
  usage(2);
LAB_00011d4c:
  (*(code *)PTR_abort_0003e200)();
  return;
}

